Teilen über


sp_column_privileges_ex (Transact-SQL)

Gilt für: SQL Server

Gibt Spaltenprivileginformationen für die angegebene Tabelle auf dem angegebenen Verbindungsserver zurück.

Transact-SQL-Syntaxkonventionen

Syntax

sp_column_privileges_ex
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

Argumente

[ @table_server = ] N'table_server'

Der Name des verknüpften Servers, für den Informationen zurückgegeben werden sollen. @table_server ist "sysname" ohne Standard.

[ @table_name = ] N'table_name'

Der Name der Tabelle, die die angegebene Spalte enthält. @table_name ist "sysname" mit einem Standardwert von NULL.

[ @table_schema = ] N'table_schema'

Das Tabellenschema. @table_schema ist "sysname" mit der Standardeinstellung "NULL.

[ @table_catalog = ] N'table_catalog'

Der Name der Datenbank, in der sich die angegebene @table_name befindet. @table_catalog ist "sysname" mit einem Standardwert von NULL.

[ @column_name = ] N'column_name'

Der Name der Spalte, für die Berechtigungsinformationen bereitgestellt werden sollen. @column_name ist "sysname" mit einem Standardwert von NULL (alle gängigen).

Resultset

In der folgenden Tabelle sind die Resultsetspalten aufgeführt. Die zurückgegebenen Ergebnisse werden nach TABLE_QUALIFIER, , TABLE_OWNER, TABLE_NAME, COLUMN_NAMEund .PRIVILEGE

Spaltenname Datentyp Beschreibung
TABLE_CAT sysname Der Name des Tabellenqualifizierers. Verschiedene DBMS-Produkte unterstützen die 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. Dieses Feld kann sein NULL.
TABLE_SCHEM sysname Der Name des Tabellenbesitzers. In SQL Server stellt diese Spalte den Namen des Datenbankbenutzers bzw. der Datenbankbenutzerin dar, der/die die Tabelle erstellt hat. Dieses Feld gibt immer einen Wert zurück.
TABLE_NAME sysname Tabellenname. Dieses Feld gibt immer einen Wert zurück.
COLUMN_NAME sysname Spaltenname für jede Spalte der TABLE_NAME zurückgegebenen. Dieses Feld gibt immer einen Wert zurück.
GRANTOR sysname Datenbankbenutzername, der Berechtigungen für diese COLUMN_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.

Die GRANTOR Spalte kann entweder der Datenbankbesitzer (TABLE_OWNER) oder jemand sein, dem der Datenbankbesitzer Berechtigungen erteilt hat, indem er die WITH GRANT OPTION Klausel in der GRANT Anweisung verwendet.
GRANTEE sysname Name des Datenbankbenutzers, der berechtigungen dafür COLUMN_NAME durch die aufgelistete .GRANTOR Dieses Feld gibt immer einen Wert zurück.
PRIVILEGE varchar(32) Eine der verfügbaren Spaltenberechtigungen. Spaltenberechtigungen können folgende Werte annehmen (oder auch andere Werte, die von der Datenquelle bei der Definition der Implementierung unterstützt werden):

SELECT = GRANTEE kann Daten für die Spalten abrufen.
INSERT = GRANTEE kann Daten für diese Spalte bereitstellen, wenn neue Zeilen (vom GRANTEE) in die Tabelle eingefügt werden.
UPDATE = GRANTEE kann vorhandene Daten in der Spalte ändern.
REFERENCES = GRANTEE kann auf eine Spalte in einer Fremdtabelle in einer Primärschlüssel-/Fremdschlüsselbeziehung verweisen. Primär-/Fremdschlüssel-Beziehungen werden über Tabelleneinschränkungen definiert.
IS_GRANTABLE varchar(3) Gibt an, ob die GRANTEE Berechtigung für andere Benutzer gewährt werden darf (häufig als "Erteilen mit Erteilung" bezeichnet). Kann JA, NEIN oder NULL. Ein unbekannter wert NULLbezieht sich auf eine Datenquelle, in der "Grant with grant" nicht anwendbar ist.

Berechtigungen

Erfordert die SELECT-Berechtigung im Schema.

Beispiele

Im folgenden Beispiel werden Spaltenprivileginformationen für die HumanResources.Department-Tabelle in der AdventureWorks2022-Datenbank auf dem Verbindungsserver Seattle1 zurückgegeben.

EXEC sp_column_privileges_ex
    @table_server = 'Seattle1',
    @table_name = 'Department',
    @table_schema = 'HumanResources',
    @table_catalog = 'AdventureWorks2022';