VIEW ANY DATABASE-Berechtigung
Die VIEW ANY DATABASE-Berechtigung ist eine neue, auf der Serverebene erteilte Berechtigung. Ein Anmeldename, dem diese Berechtigung erteilt wird, kann Metadaten sehen, die alle Datenbanken beschreiben, und zwar unabhängig davon, ob der Anmeldename eine bestimmte Datenbank besitzt oder tatsächlich verwenden kann.
Mit der VIEW ANY DATABASE-Berechtigung wird die Offenlegung von Metadaten in den sys.databases- und sys.sysdatabases-Sichten sowie in der gespeicherten Systemprozedur sp_helpdb gesteuert.
Standardmäßig wird die VIEW ANY DATABASE-Berechtigung der public-Rolle erteilt. Daher kann standardmäßig jeder Benutzer, der eine Verbindung mit einer Instanz von SQL Server 2005 herstellt, alle Datenbanken in der Instanz anzeigen. Führen Sie die folgende Abfrage aus, um dieses Verhalten zu überprüfen:
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
Die Metadaten, die die master- und tempdb-Datenbanken beschreiben, sind für public immer sichtbar.
Mitglieder der festen Serverrolle sysadmin können immer sämtliche Datenbankmetadaten sehen.
Datenbankbesitzer können immer die Zeilen in sys.databases für die Datenbanken sehen, deren Besitzer sie sind.
Wenn einem Anmeldenamen die Berechtigungen CREATE DATABASE und ALTER ANY DATABASE erteilt werden, erhält dieser Anmeldename Zugriff auf die Datenbankmetadaten.
Hinweis: |
---|
Die CREATE DATABASE-Berechtigung gilt implizit für die feste Serverrolle dbcreator. |
Hinweis: |
---|
Wenn Sie die Berechtigungen CREATE DATABASE und ALTER ANY DATABASE einem Anmeldenamen erteilen und diesem Anmeldenamen die Berechtigung VIEW ANY DATABASE nicht verweigern, dann kann dieser Anmeldename alle Zeilen in sys.databases sehen. |
Um die Sichtbarkeit auf Datenbankmetadaten einzuschränken, verweigern Sie einem Anmeldenamen die VIEW ANY DATABASE-Berechtigung. Nachdem diese Berechtigung verweigert wurde, kann ein Anmeldename nur die Metadaten für die Datenbanken master und tempdb sowie für die Datenbanken sehen, die der Anmeldename besitzt.
Siehe auch
Konzepte
Konfigurieren der Sichtbarkeit von Metadaten
VIEW DEFINITION-Berechtigung
Anzeigen von Objektdefinitionen