sp_table_privileges (Transact-SQL)

Gibt eine Liste der Tabellenberechtigungen (z. B. INSERT, DELETE, UPDATE, SELECT, REFERENCES) für die angegebene Tabelle oder Tabellen zurück.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_table_privileges [ @table_name = ] 'table_name'        [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [@fUsePattern =] 'fUsePattern']

Argumente

[ @table_name =] 'table_name'

Ist die Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. table_name ist vom Datentyp nvarchar(384) und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

[ @table_owner = ] 'table_owner'

Ist der Tabellenbesitzer der Tabelle, mit der Kataloginformationen zurückgegeben werden. table_owner ist vom Datentyp nvarchar(384); der Standard ist NULL. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn der Besitzer nicht angegeben ist, werden die Standardregeln für die Sichtbarkeit von Tabellen des zugrunde liegenden DBMS angewendet.

In SQL Server 2005 werden die Spalten einer Tabelle zurückgegeben, wenn der aktuelle Benutzer diese Tabelle mit dem angegebenen Namen besitzt. Falls owner nicht angegeben ist und der aktuelle Benutzer keine Tabelle mit dem angegebenen name besitzt, wird nach einer Tabelle mit dem angegebenen Wert für table_name gesucht, deren Besitzer der Datenbankbesitzer ist. Sofern eine solche Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.

[ @table_qualifier =] 'table_qualifier'

Ist der Name des Qualifizierers der Tabelle. table_qualifier ist vom Datentyp sysname; der Standard ist NULL. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Namensgebung für Tabellen (qualifier.owner.name). In SQL Server stellt diese Spalte den Datenbanknamen dar. Bei anderen Produkten stellt sie den Servernamen der Datenbankumgebung für die Tabelle dar.

[ @fUsePattern =] 'fUsePattern'

Legt fest, ob die Zeichen Unterstrich (_), Prozent (%) und Klammer ([ oder ]) als Platzhalterzeichen interpretiert werden. Gültige Werte sind 0 (Mustervergleich ist deaktiviert) und 1 (Mustervergleich ist aktiviert). fUsePattern ist vom Datentyp bit; der Standard ist 1.

Rückgabecodewerte

Keine

Resultsets

Spaltenname Datentyp Beschreibung

TABLE_QUALIFIER

sysname

Der Name des Qualifizierers der Tabelle. In SQL Server stellt diese Spalte den Datenbanknamen dar. Dieses Feld kann den Wert NULL annehmen.

TABLE_OWNER

sysname

Der Name des Tabellenbesitzers. Dieses Feld gibt immer einen Wert zurück.

TABLE_NAME

sysname

Tabellenname. Dieses Feld gibt immer einen Wert zurück.

GRANTOR

sysname

Der Datenbank-Benutzername, der dem aufgeführten GRANTEE Berechtigungen für TABLE_NAME erteilt hat. In SQL Server ist diese Spalte stets mit TABLE_OWNER identisch. Dieses Feld gibt immer einen Wert zurück. Die GRANTOR-Spalte kann entweder der Tabellenbesitzer (TABLE_OWNER) oder ein Benutzer sein, dem ein dazu Berechtigter mithilfe der WITH GRANT OPTION-Klausel in der GRANT-Anweisung die Berechtigung erteilt hat.

GRANTEE

sysname

Der Datenbank-Benutzername, dem vom aufgeführten GRANTOR Berechtigungen für TABLE_NAME erteilt wurden. In SQL Server umfasst diese Spalte immer einen Datenbankbenutzer aus der sys.database_principals-Systemsicht. Dieses Feld gibt immer einen Wert zurück.

PRIVILEGE

sysname

Eine der verfügbaren Tabellenberechtigungen. Tabellenberechtigungen können folgende Werte annehmen (bzw. auch andere Werte, die von der Datenquelle bei der Definition der Implementierung unterstützt werden):

SELECT = GRANTEE kann Daten aus einer oder mehreren Spalten abrufen.

INSERT = GRANTEE kann in einer oder mehreren Spalten Daten für neue Zeilen angeben.

UPDATE = GRANTEE kann vorhandene Daten in einer oder mehreren Spalten ändern.

DELETE = GRANTEE kann Zeilen aus der Tabelle entfernen.

REFERENCES = GRANTEE kann bei einer Primär-/Fremdschlüsselbeziehung auf eine Spalte in einer Fremdschlüsseltabelle verweisen. In SQL Server werden Primär-/Fremdschlüsselbeziehungen über Tabelleneinschränkungen definiert.

Der dem GRANTEE durch ein angegebenes Tabellenprivileg erteilte Aktionsbereich ist datenquellenabhängig. Beispielsweise kann der GRANTEE mit dem UPDATE-Privileg alle Spalten in einer Tabelle für eine Datenquelle aktualisieren, während er für eine andere Datenquelle nur die Spalten aktualisieren kann, für die der GRANTOR das UPDATE-Privileg besitzt.

IS_GRANTABLE

sysname

Zeigt an, ob der GRANTEE anderen Benutzern Berechtigungen erteilen darf (oft als "Berechtigung mit Recht zum Erteilen" bezeichnet). Dieses Feld kann die Werte YES, NO oder NULL annehmen. Ein unbekannter Wert (oder NULL-Wert) verweist auf eine Datenquelle, für die die "Berechtigung mit Recht zum Erteilen" nicht anwendbar ist.

Hinweise

Die gespeicherte Prozedur sp_table_privileges entspricht SQLTablePrivileges in ODBC. Die zurückgegebenen Ergebnisse sind nach TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME und PRIVILEGE sortiert.

Berechtigungen

Setzt die SELECT-Berechtigung für das Schema voraus.

Beispiele

Im folgenden Beispiel werden Privileginformationen zu allen Tabellen zurückgegeben, deren Namen mit dem Wort Contact beginnen.

USE AdventureWorks;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';

Siehe auch

Verweis

Gespeicherte Prozeduren für Kataloginformationen (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005