sp_table_privileges (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Gibt eine Liste der Tabellenberechtigungen (z INSERT
. B. , DELETE
, UPDATE
, SELECT
, REFERENCES
) für die angegebene Tabelle oder Tabellen zurück.
Transact-SQL-Syntaxkonventionen
Syntax
sp_table_privileges
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
[ @table_name = ] N'table_name'
Die Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_name ist nvarchar(384), ohne Standard. Mustervergleiche mit Platzhalterzeichen werden unterstützt.
[ @table_owner = ] N'table_owner'
Der Tabellenbesitzer der Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_owner ist "nvarchar(384)" mit einem Standardwert von NULL
. Mustervergleiche mit Platzhalterzeichen werden unterstützt. Wenn der Besitzer nicht angegeben ist, gelten die Standardtabellensichtsregeln der zugrunde liegenden DBMS.
Wenn der aktuelle Benutzer diese Tabelle mit dem angegebenen Namen besitzt, werden die Spalten einer Tabelle zurückgegeben. Wenn der 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 im Besitz des Datenbankbesitzers. Wenn eine Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.
[ @table_qualifier = ] N'table_qualifier'
Der Name des Tabellenqualifizierers. @table_qualifier ist "sysname" mit einem Standardwert von NULL
. Verschiedene DBMS-Produkte unterstützen eine dreiteilige Benennung 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 der Unterstrich (_
), prozent (%
) und eckige Zeichen ([
oder ]
) als Platzhalterzeichen interpretiert werden. Gültige Werte sind 0
(Musterabgleich ist deaktiviert) und 1
(Mustervergleich ist aktiviert). @fUsePattern ist bit, mit einem Standardwert von 1
.
Rückgabecodewerte
Keine.
Resultset
Spaltenname | Datentyp | Beschreibung |
---|---|---|
TABLE_QUALIFIER |
sysname | Der Name des Tabellenqualifizierers. In SQL Server stellt diese Spalte den Datenbanknamen dar. Dieses Feld kann sein NULL . |
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 | Datenbankbenutzername, der Berechtigungen für diese TABLE_NAME Berechtigung für die aufgelistete .GRANTEE In SQL Server ist diese Spalte immer identisch mit der TABLE_OWNER . Dieses Feld gibt immer einen Wert zurück. Außerdem kann die SPALTE GRANTOR 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 Datenbankbenutzername, der berechtigungen dafür TABLE_NAME durch die aufgelistete Berechtigung GRANTOR erteilt wurde. 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 für eine oder mehrere Spalten abrufen.INSERT = GRANTEE kann Daten für neue Zeilen für eine oder mehrere Spalten bereitstellen.UPDATE = GRANTEE kann vorhandene Daten für eine oder mehrere Spalten ändern.DELETE = GRANTEE Zeilen aus der Tabelle entfernen können.REFERENCES = GRANTEE kann auf eine Spalte in einer Fremdtabelle in einer Primärschlüssel-/Fremdschlüsselbeziehung verweisen. In SQL Server werden Primärschlüssel-/Fremdschlüsselbeziehungen mit Tabelleneinschränkungen definiert.Der Aktionsumfang, der GRANTEE durch eine bestimmte Tabellenberechtigung erteilt wird, ist datenquellenabhängig. Beispielsweise kann die UPDATE Berechtigung das GRANTEE Aktualisieren aller Spalten in einer Tabelle in einer Datenquelle und nur die Spalten zulassen, für die die GRANTOR UPDATE Berechtigung für eine andere Datenquelle verfügt. |
IS_GRANTABLE |
sysname | Gibt an, ob die GRANTEE Berechtigung anderen Benutzern (häufig als "Erteilen mit Erteilung" bezeichnet) erteilt werden darf. Kann YES , NO oder NULL sein. Ein unbekannter (oder NULL ) Wert bezieht sich auf eine Datenquelle, für die "Grant with grant" nicht anwendbar ist. |
Hinweise
Die sp_table_privileges
gespeicherte Prozedur entspricht SQLTablePrivileges
in ODBC. Die zurückgegebenen Ergebnisse werden nach TABLE_QUALIFIER
, , TABLE_OWNER
, TABLE_NAME
und PRIVILEGE
.
Berechtigungen
Erfordert die SELECT
-Berechtigung im Schema.
Beispiele
Im folgenden Beispiel werden Privileginformationen zu allen Tabellen zurückgegeben, deren Namen mit dem Wort Contact
beginnen.
USE AdventureWorks2022;
GO
EXEC sp_table_privileges @table_name = 'Contact%';