Freigeben über


sp_column_privileges (Transact-SQL)

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

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_column_privileges [ @table_name = ] 'table_name' 
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [ @column_name = ] 'column' ]

Argumente

[ @table_name = ] 'table_name'

Die Tabelle, die zum Zurückgeben der Kataloginformationen verwendet wird. table_name ist vom sysname-Datentyp und hat keinen Standardwert. Mustervergleiche mit Platzhalterzeichen werden nicht unterstützt.

[ @table_owner = ] 'table_owner'

Der Besitzer der Tabelle, mit der Kataloginformationen zurückgegeben werden. table_owner ist vom sysname-Datentyp und hat den Standardwert NULL. Mustervergleiche mit Platzhalterzeichen werden nicht unterstützt. Wenn table_owner nicht angegeben wird, werden die Regeln für die Sichtbarkeit von Tabellen des zugrunde liegenden Datenbank-Managementsystems (Database Management System, DBMS) angewendet.

In SQL Server 2005 bedeutet dies: Wenn der aktuelle Benutzer eine Tabelle mit dem angegebenen Namen besitzt, werden die Spalten dieser Tabelle zurückgegeben. Wenn der Tabellenbesitzer table_owner nicht angegeben wird und der aktuelle Benutzer keine Tabelle mit dem angegebenen Namen table_name besitzt, sucht sp_columnprivileges nach einer Tabelle mit dem angegebenen Namen table_name, die dem Datenbankbesitzer gehört. Sofern eine solche Tabelle vorhanden ist, werden die Spalten dieser Tabelle zurückgegeben.

[ @table_qualifier = ] 'table_qualifier'

Der Name des Tabellenqualifizierers. table_qualifier ist vom sysname-Datentyp und hat den Standardwert 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.

[ @column_name = ] 'column'

Eine einzelne Spalte, die verwendet wird, wenn nur eine Spalte mit Kataloginformationen erhalten wird. column ist vom nvarchar(384)-Datentyp und hat den Standardwert NULL. Wenn column nicht angegeben wird, werden Informationen zu allen Spalten zurückgegeben. In SQL Server stellt column den Spaltennamen dar, der in der sys.columns-Tabelle aufgelistet ist. column kann DBMS-spezifische Platzhalterzeichen für den Mustervergleich enthalten. Für eine optimale Interoperabilität sollte der Gatewayclient nur einen SQL-92-Standardmustervergleich voraussetzen (die Platzhalterzeichen % und _).

Resultsets

sp_column_privileges entspricht SQLColumnPrivileges in ODBC. Die zurückgegebenen Ergebnisse sind nach den Spalten TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, COLUMN_NAME und PRIVILEGE geordnet.

Spaltenname Datentyp Beschreibung

TABLE_QUALIFIER

sysname

Der Name des Qualifizierers der Tabelle. Dieses Feld kann den Wert NULL annehmen.

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

Der Name der Spalte für jede Spalte des zurückgegebenen TABLE_NAME. Dieses Feld gibt immer einen Wert zurück.

GRANTOR

sysname

Der Datenbank-Benutzername, der dem als GRANTEE aufgeführten Prinzipal Berechtigungen für die mit COLUMN_NAME angegebene Spalte erteilt hat. In SQL Server ist diese Spalte stets mit TABLE_OWNER identisch. Dieses Feld gibt immer einen Wert zurück.

Die GRANTOR-Spalte kann entweder der Datenbankbesitzer (TABLE_OWNER) oder ein anderer Benutzer sein, dem die Berechtigungen vom Datenbankbesitzer mithilfe der WITH GRANT OPTION-Klausel in der GRANT-Anweisung erteilt wurden.

GRANTEE

sysname

Der Datenbank-Benutzername, dem der als GRANTOR aufgeführte Prinzipal Berechtigungen für die mit COLUMN_NAME angegebene Spalte erteilt hat. 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 = der Berechtigte (GRANTEE) kann Daten für die Spalten abrufen.

INSERT = der Berechtigte (GRANTEE) kann Daten für diese Spalten bereitstellen, wenn neue Zeilen (von diesem GRANTEE) in die Tabelle eingefügt werden.

UPDATE = der Berechtigte (GRANTEE) kann vorhandene Daten in der Spalte ändern.

REFERENCES = der Berechtigte (GRANTEE) kann bei einer Primär-/Fremdschlüssel-Beziehung auf eine Spalte in einer Fremdschlüsseltabelle verweisen. Primär-/Fremdschlüssel-Beziehungen werden mithilfe von Tabelleneinschränkungen definiert.

IS_GRANTABLE

varchar(3)

Zeigt an, ob der Berechtigte (GRANTEE) anderen Benutzern Berechtigungen erteilen darf (bekannt als "Berechtigung mit Recht zum Erteilen"). 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 zutreffend ist.

Hinweise

Bei SQL Server werden Berechtigungen mit der GRANT-Anweisung erteilt und mit der REVOKE-Anweisung aufgehoben.

Berechtigungen

Erfordert SELECT-Berechtigung für das Schema.

Beispiele

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

USE AdventureWorks;
GO
EXEC sp_column_privileges @table_name = 'Employee', 
   @table_owner = 'HumanResources', 
   @table_qualifier = 'AdventureWorks',
   @column_name = 'SalariedFlag'

Siehe auch

Verweis

GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)

Andere Ressourcen

Verteilte Abfragen

Hilfe und Informationen

Informationsquellen für SQL Server 2005