共用方式為


VIEW ANY DATABASE 權限

VIEW ANY DATABASE 權限是新的伺服器層級權限。授與此權限的登入可以看到描述所有資料庫的中繼資料,不論該登入是否擁有特定資料庫或是否可實際使用特定資料庫。

VIEW ANY DATABASE 權限會管制在 sys.databasessys.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

描述 mastertempdb 資料庫的中繼資料永遠對 public 為可見。

系統管理員 (sysadmin) 固定伺服器角色的成員,可以永遠看到所有的資料庫中繼資料。

資料庫擁有者對於他們所擁有的資料庫可以永遠看到 sys.databases 中的資料列。

授與登入 CREATE DATABASE 和 ALTER ANY DATABASE 權限,將授予資料庫中繼資料的存取權。

ms189077.note(zh-tw,SQL.90).gif附註:
CREATE DATABASE 權限是資料庫建立者 (dbcreator) 固定伺服器角色的隱含權限。
ms189077.note(zh-tw,SQL.90).gif附註:
如果您授與登入 CREATE DATABASE 和 ALTER ANY DATABASE 權限,但未對該登入拒絕 VIEW ANY DATABASE,該登入將可看到 sys.databases 中的所有資料列。

若要限制資料庫中繼資料的可見性,請拒絕登入的 VIEW ANY DATABASE 權限。在拒絕此權限後,登入就只能看到 mastertempdb 以及登入所擁有之資料庫的中繼資料。

請參閱

概念

中繼資料可見性組態
VIEW DEFINITION 權限
檢視物件定義

說明及資訊

取得 SQL Server 2005 協助