VIEW ANY DATABASE 權限
VIEW ANY DATABASE 權限是新的伺服器層級權限。授與此權限的登入可以看到描述所有資料庫的中繼資料,不論該登入是否擁有特定資料庫或是否可實際使用特定資料庫。
VIEW ANY DATABASE 權限會管制在 sys.databases 與 sys.sysdatabases 檢視以及 sp_helpdb 系統預存程序內中繼資料的公開。
依預設,會授與 public 角色 VIEW ANY DATABASE 權限。因此每個連接到 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
描述 master 和 tempdb 資料庫的中繼資料永遠對 public 為可見。
系統管理員 (sysadmin) 固定伺服器角色的成員,可以永遠看到所有的資料庫中繼資料。
資料庫擁有者對於他們所擁有的資料庫可以永遠看到 sys.databases 中的資料列。
授與登入 CREATE DATABASE 和 ALTER ANY DATABASE 權限,將授予資料庫中繼資料的存取權。
附註: |
---|
CREATE DATABASE 權限是資料庫建立者 (dbcreator) 固定伺服器角色的隱含權限。 |
附註: |
---|
如果您授與登入 CREATE DATABASE 和 ALTER ANY DATABASE 權限,但未對該登入拒絕 VIEW ANY DATABASE,該登入將可看到 sys.databases 中的所有資料列。 |
若要限制資料庫中繼資料的可見性,請拒絕登入的 VIEW ANY DATABASE 權限。在拒絕此權限後,登入就只能看到 master、tempdb 以及登入所擁有之資料庫的中繼資料。
請參閱
概念
中繼資料可見性組態
VIEW DEFINITION 權限
檢視物件定義