2010-05-27 74 views
0

早安,SQL Server的檢查,如果你有訪問數據庫

我已經連接到我的SQL Server 2005 - 並已成功地列出所有服務器上的數據庫。現在我想對每個數據庫進行檢查,看看我是否有權查看該數據庫..

我該如何解決這個問題?

非常感謝, 喬爾

回答

0

首先,你需要找出所有的名字在你的數據庫服務器:

SELECT [name] 
    FROM sys.databases; 

然後,您必須爲每個數據庫運行以下命令才能獲得權限:

USE databaseName; 

SELECT * 
    FROM fn_my_permissions(null, 'DATABASE') 
+0

你好 - 這似乎很好 - 但是,我會用什麼替換@dbname? – 2010-05-27 08:18:12

+0

@J哈利:我不好。我忘了把它改成'數據庫'。 – 2010-05-27 08:31:45

+0

完美的工作正常 - 歡呼:) – 2010-05-27 08:37:44

1

你是什麼意思視圖的數據庫?

您可以使用下面的查詢列出當前數據庫中的所有權限:

SELECT * FROM fn_my_permissions (NULL, 'DATABASE'); 
+0

是這就是我想要做的 - 但也許對於沒有連接到的數據庫?那可能嗎? – 2010-05-27 07:48:19

0

由於neslekkiM在一個不同的答案的評論已經指出的那樣,你可以使用這個在線找出數據庫列表時:

SELECT name, has_dbaccess(name) 
FROM sys.databases 
相關問題