2010-05-27 50 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 
相关问题