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_privileges
SQLColumnPrivileges
entspricht in ODBC. Die zurückgegebenen Ergebnisse werden nach TABLE_QUALIFIER
, , TABLE_OWNER
, TABLE_NAME
, COLUMN_NAME
und .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 NULL bezieht 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';