sp_table_privileges (Transact-SQL)

Gilt für: SQL Server (alle unterstützten Versionen) Azure SQL Datenbank Azure SQL Managed Instance

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

ThemenlinksymbolTransact-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'
Die Tabelle zum Zurückgeben von Kataloginformationen. table_name ist nvarchar(384), ohne Standard. Mustervergleiche mit Platzhalterzeichen werden unterstützt.

[ @table_owner= ] 'table_owner'
Der Tabellenbesitzer für die Tabelle zum Zurückgeben von Kataloginformationen. table_ownerist nvarchar(384), mit einer Standardeinstellung von 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.

Wenn der aktuelle Benutzer diese Tabelle mit dem angegebenen Namen besitzt, werden die Spalten einer Tabelle zurückgegeben. Wenn besitzer nicht angegeben ist und der aktuelle Benutzer keine Tabelle mit dem angegebenen Namen besitzt, sucht diese Prozedur nach einer Tabelle mit dem angegebenen table_name, die dem Datenbankbesitzer gehört. Wenn eine vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.

[ @table_qualifier= ] 'table_qualifier'
Der Name des Tabellenqualifizierers. table_qualifier ist sysname, mit einer Standardeinstellung von NULL. Verschiedene DBMS-Produkte unterstützen dreiteilige Benennungen 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'
Bestimmt, ob die Unterstriche (_), Prozent (%), Klammerzeichen ([ oder ]) als Platzhalterzeichen interpretiert werden. Gültige Werte sind 0 (Mustervergleich ist deaktiviert) und 1 (Mustervergleich ist aktiviert). fUsePattern ist vom Datentyp bit. Der Standardwert ist 1.

Rückgabecodewerte

Keine

Resultsets

Spaltenname Datentyp BESCHREIBUNG
TABLE_QUALIFIER sysname Tabellenqualifizierername. In SQL Server stellt diese Spalte den Datenbanknamen dar. Dieses Feld kann den Wert NULL annehmen.
TABLE_OWNER sysname Tabellenbesitzername. Dieses Feld gibt immer einen Wert zurück.
table_name sysname Tabellenname. Dieses Feld gibt immer einen Wert zurück.
GRANTOR sysname Der Datenbankbenutzername, der dem aufgelisteten GRANTEE Berechtigungen für TABLE_NAME erteilt hat. In SQL Server ist diese Spalte immer identisch mit dem TABLE_OWNER. Dieses Feld gibt immer einen Wert zurück. Zudem kann die GRANTOR-Spalte entweder der Datenbankbesitzer (TABLE_OWNER) oder ein Benutzer sein, dem der Datenbankbesitzer 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 enthält diese Spalte immer einen Datenbankbenutzer aus der sys.database_principalssystem Ansicht. 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 bereitstellen.

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

DELETE = GRANTEE kann Zeilen aus der Tabelle entfernen.

REFERENCES = der Berechtigte (GRANTEE) kann bei einer Primär-/Fremdschlüssel-Beziehung auf eine Spalte in einer Fremdschlüsseltabelle verweisen. In SQL Server werden Primärschlüssel-/Fremdschlüsselbeziehungen mit Tabelleneinschränkungen definiert.

Der dem GRANTEE durch ein bestimmtes 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

Erfordert SELECT-Berechtigung für das Schema.

Beispiele

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

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

Weitere Informationen

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