我有一個數據庫,我想讓某個角色有權限查詢sys.databaseprincipals中的所有信息並查看其他用戶名。我怎樣才能做到這一點?讓用戶查看sys.databaseprincipals的所有信息
謝謝。
我有一個數據庫,我想讓某個角色有權限查詢sys.databaseprincipals中的所有信息並查看其他用戶名。我怎樣才能做到這一點?讓用戶查看sys.databaseprincipals的所有信息
謝謝。
將調用包裝在存儲的proc或表值函數中,並使用EXECUTE AS OWNER(假設爲dbo.nameofcodeobject)。
否則,您必須關掉MetaData Visibility保護整個服務器
你不能使用EXECUTE AS的意見這將是這裏有用...
編輯,基於註釋。
在SQL Server 2005及更高版本, 中 目錄視圖中的元數據的可見度被限制到用戶擁有或在其 用戶已被授予安全對象 一些 權限。有關更多信息,請參閱 元數據可見性配置。
梅比它只是我和我的服務器設置,但我能查詢sys.database_principals,只要我有連接權限即可。我也能夠看到用戶名。
您可以通過執行GRANT CONNECT:
GRANT CONNECT TO [USER]
的問題是,我需要爲DBO看到它通過一個視圖訪問的sys.database_principals。 – 2009-03-05 15:57:16
dbo無論如何都可以看到所有數據...對於其他用戶/角色,您需要將其包裝。 – gbn 2009-03-05 16:04:30