VIEW ANY DATABASE 权限

VIEW ANY DATABASE 权限是新的、服务器级别权限。获得此权限的登录帐户可以查看描述所有数据库的元数据,不管该登录帐户是否拥有特定的数据库或实际上是否可以使用该数据库。

VIEW ANY DATABASE 权限控制是否显示 sys.databasessys.sysdatabases 视图以及 sp_helpdb 系统存储过程中的元数据。

默认情况下,VIEW ANY DATABASE 权限被授予 public 角色。因此,默认情况下,每个连接到 SQL Server 2005 实例的用户都可查看该实例中的所有数据库。若要验证此行为,请运行以下查询:

SELECT l.name as grantee_name, p.state_desc, p.permission_name 
FROM sys.server_permissions AS p JOIN sys.server_principals AS l 
ON   p.grantee_principal_id = l.principal_id
WHERE permission_name = 'VIEW ANY DATABASE' ;
GO

描述 mastertempdb 数据库的元数据对 public 始终是可见的。

sysadmin 固定服务器角色的成员始终可以查看所有数据库元数据。

数据库所有者始终可以查看所拥有的数据库的 sys.databases 中的行。

为某个登录帐户授予 CREATE DATABASE 和 ALTER ANY DATABASE 权限将允许该帐户访问数据库元数据。

ms189077.note(zh-cn,SQL.90).gif注意:
CREATE DATABASE 权限对于 dbcreator 固定服务器角色是隐式的。
ms189077.note(zh-cn,SQL.90).gif注意:
如果为某个登录帐户授予 CREATE DATABASE 和 ALTER ANY DATABASE 权限并且未取消其 VIEW ANY DATABASE 权限,则该登录帐户可以查看 sys.databases 中的所有行。

若要限制数据库元数据的可见性,请取消登录帐户的 VIEW ANY DATABASE 权限。取消此权限之后,登录帐户只能查看 mastertempdb 以及所拥有的数据库的元数据。

请参阅

概念

元数据可见性配置
VIEW DEFINITION 权限
查看对象定义

帮助和信息

获取 SQL Server 2005 帮助