我已經連接到我的SQL Server 2005 - 並已成功地列出所有服務器上的數據庫。現在我想對每個數據庫進行檢查,看看我是否有權查看該數據庫..
我該如何解決這個問題?
非常感謝, 喬爾
我已經連接到我的SQL Server 2005 - 並已成功地列出所有服務器上的數據庫。現在我想對每個數據庫進行檢查,看看我是否有權查看該數據庫..
我該如何解決這個問題?
非常感謝, 喬爾
首先,你需要找出所有的名字在你的數據庫服務器:
SELECT [name]
FROM sys.databases;
然後,您必須爲每個數據庫運行以下命令才能獲得權限:
USE databaseName;
SELECT *
FROM fn_my_permissions(null, 'DATABASE')
你是什麼意思視圖的數據庫?
您可以使用下面的查詢列出當前數據庫中的所有權限:
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
是這就是我想要做的 - 但也許對於沒有連接到的數據庫?那可能嗎? – 2010-05-27 07:48:19
我想你想看看sys.database_permissions
,我認爲你可以查詢這些信息。
這裏看到更多的信息:
http://msdn.microsoft.com/en-us/library/ms188367.aspx
由於neslekkiM在一個不同的答案的評論已經指出的那樣,你可以使用這個在線找出數據庫列表時:
SELECT name, has_dbaccess(name)
FROM sys.databases
你好 - 這似乎很好 - 但是,我會用什麼替換@dbname? – 2010-05-27 08:18:12
@J哈利:我不好。我忘了把它改成'數據庫'。 – 2010-05-27 08:31:45
完美的工作正常 - 歡呼:) – 2010-05-27 08:37:44