Veritabanı izinleri görüntüleme

VIEW any database izni yeni, sunucu düzey izni yok.Bu izin verilen oturum açma oturum açma sahibi veya belirli bir veritabanı kullanmak aslında ne olursa olsun tüm veritabanları açıklar meta veriler görebilirsiniz.

VIEW any database iznine meta verilerinde Pozlama ülkeyse sys.databases ve sys.sysdatabases , görünümleri ve sp_helpdb sistem saklı yordamı.

Varsayılan olarak, Görünüm any database izni public rolü.Bu nedenle, varsayılan değer olarak, her kullanıcı bağlayan bir örneğine SQL Server görebilir tüm veritabanlarında örnek.Bu davranış doğrulamak için aşağıdaki sorguyu çalıştırın:

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

Belirli bir oturum VIEW any database izni vermek için aşağıdaki sorguyu çalıştırın:

GRANT VIEW ANY DATABASE TO <login>; 

Tanımlayan meta veriler master ve tempdb veritabanları için her zaman görünür public.

Üyeleri sysadmin sabit sunucu rolü her zaman görebilir tüm veritabanı meta veriler.

Veritabanı sahipleri her zaman satırları görmek sys.databases sahip oldukları veritabanları için.

Bir oturum açma için create database ve alter any database izinleri verme veritabanı meta veriler erişim confers.

Not

create database iznine için örtülü dbcreator sabit sunucu rolü.

Not

create database ve alter any database bir oturum açma izinleri ve herhangi veritabanını GÖRÜNTÜLE için oturum açmayı reddet, oturum açma tüm satırları görebilirsiniz sys.databases.

meta veriler veritabanı için görünürlük sınırlamak için VIEW any database iznine bir oturum açmayı reddet.Bu izni sonra yalnızca meta veriler için bir oturum açma görebilirsiniz master, tempdb, oturum açma sahibi olan veritabanlarını ve.Daha fazla bilgi için bkz: Sunucusu izinlerini (Transact-sql) deny.