Freigeben über


sp_column_privileges (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Gibt Informationen zu Spaltenprivilegien für eine einzelne Tabelle in der aktuellen Umgebung zurück.

Transact-SQL-Syntaxkonventionen

Syntax

sp_column_privileges
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

Argumente

[ @table_name = ] N'table_name'

Die Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_name ist "sysname" ohne Standard. Der Übereinstimmung von Wildcardmustern wird nicht unterstützt.

[ @table_owner = ] N'table_owner'

Der Besitzer der Tabelle, die zum Zurückgeben von Kataloginformationen verwendet wird. @table_owner ist "sysname" mit der Standardeinstellung "NULL. Der Übereinstimmung von Wildcardmustern wird nicht unterstützt. Wenn @table_owner nicht angegeben ist, gelten die Standardtabellensichtsregeln des zugrunde liegenden Datenbankverwaltungssystems (DBMS).

Wenn der aktuelle Benutzer eine Tabelle mit dem angegebenen Namen besitzt, werden die Spalten dieser Tabelle zurückgegeben. Wenn @table_owner nicht angegeben ist und der aktuelle Benutzer keine Tabelle mit dem angegebenen @table_name besitzt, sp_column sucht die Berechtigung nach einer Tabelle mit dem angegebenen @table_name im Besitz des Datenbankbesitzers. Sofern eine solche 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 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.

[ @column_name = ] N'column_name'

Eine einzelne Spalte, die verwendet wird, wenn nur eine Spalte mit Kataloginformationen abgerufen wird. @column_name ist nvarchar(384), mit einem Standardwert von NULL. Wenn @column_name nicht angegeben ist, werden alle Spalten zurückgegeben. In SQL Server stellt @column_name den Spaltennamen dar, wie in der sys.columns Tabelle aufgeführt. @column_name können Mithilfe von Wildcardabgleichsmustern des zugrunde liegenden DBMS Wildcardzeichen enthalten. Für maximale Interoperabilität sollte der Gatewayclient nur den ISO-Standardmusterabgleich (die und _ die % Wildcardzeichen) übernehmen.

Resultset

sp_column_privilegesSQLColumnPrivileges entspricht in ODBC. Die zurückgegebenen Ergebnisse werden nach TABLE_QUALIFIER, , TABLE_OWNER, TABLE_NAME, COLUMN_NAMEund .PRIVILEGE

Spaltenname Datentyp Beschreibung
TABLE_QUALIFIER sysname Der Name des Tabellenqualifizierers. 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.
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 ein Benutzer 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 In SQL Server enthält diese Spalte immer einen Datenbankbenutzer aus der sysusers Tabelle. 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 mithilfe von 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 YES, NO oder NULL sein. Ein unbekannter wert NULLbezieht sich auf eine Datenquelle, für die "Grant with grant" nicht anwendbar ist.

Hinweise

Mit SQL Server werden Berechtigungen mit der GRANT Anweisung erteilt und von der REVOKE Anweisung entfernt.

Berechtigungen

Erfordert die SELECT-Berechtigung im Schema.

Beispiele

Im folgenden Beispiel werden Informationen zum Spaltenprivileg für eine bestimmte Spalte zurückgegeben.

USE AdventureWorks2022;
GO

EXEC sp_column_privileges
    @table_name = 'Employee',
    @table_owner = 'HumanResources',
    @table_qualifier = 'AdventureWorks2022',
    @column_name = 'SalariedFlag';