War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren

fn_my_permissions (Transact-SQL)

Gibt eine Liste der Berechtigungen zurück, die dem Prinzipal eines sicherungsfähigen Elements effektiv gewährt wurden. Eine verwandte Funktion ist HAS_PERMS_BY_NAME (Transact-SQL).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen


fn_my_permissions ( securable , 'securable_class')

securable

Der Name des sicherungsfähigen Elements. Handelt es sich bei dem sicherungsfähigen Element um den Server oder um eine Datenbank, sollte dieser Wert auf NULL festgelegt werden. securable ist ein skalarer Ausdruck des Typs sysname. securable kann ein mehrteiliger Name sein.

' securable_class '

Der Name der Klasse des sicherungsfähigen Elements, für das Berechtigungen aufgelistet sind. securable_class ist vom Datentyp sysname. Für das Argument securable_class stehen die folgenden Werte zur Verfügung: APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, ENDPOINT, FULLTEXT CATALOG, LOGIN, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVER, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION.

In der folgenden Tabelle sind die Spalten aufgelistet, die fn_my_permissions zurückgibt. Jede zurückgegebene Zeile beschreibt eine Berechtigung, über die der aktuelle Sicherheitskontext für das sicherungsfähige Element verfügt. Schlägt die Abfrage fehl, wird NULL zurückgegeben.

Spaltenname

Typ

Beschreibung

entity_name

sysname

Der Name des sicherungsfähigen Elements, für das die aufgelisteten Berechtigungen effektiv gewährt wurden.

subentity_name

sysname

Der Spaltenname, sofern das sicherungsfähige Element über Spalten verfügt; andernfalls NULL.

permission_name

nvarchar

Der Name der Berechtigung.

Diese Tabellenwertfunktion gibt eine Liste der gültigen Berechtigungen zurück, über die der aufrufende Prinzipal für ein bestimmtes sicherungsfähiges Element verfügt. Eine gültige Berechtigung ist eine der folgenden:

  • Eine Berechtigung, die dem Prinzipal direkt gewährt und nicht verweigert wurde.

  • Eine Berechtigung, die durch eine Berechtigung höherer Ebene, über die der Prinzipal verfügt und die nicht verweigert wurde, impliziert ist.

  • Eine Berechtigung, die einer Rolle oder Gruppe, in der der Prinzipal Mitglied ist, gewährt und nicht verweigert wurde.

  • Eine Berechtigung, über die eine Rolle oder Gruppe, in der der Prinzipal Mitglied ist, verfügt und die nicht verweigert wurde.

Die Berechtigungsauswertung erfolgt immer im Sicherheitskontext des Aufrufers. Um zu ermitteln, ob ein anderer Prinzipal über eine gültige Berechtigung verfügt, muss der Aufrufer über die IMPERSONATE-Berechtigung für diesen Prinzipal verfügen.

Für Entitäten auf Schemaebene werden ein-, zwei- oder dreiteilige Namen akzeptiert, die ungleich NULL sind. Für Entitäten auf Datenbankebene werden einteilige Namen akzeptiert, wobei ein NULL-Wert für "aktuelle Datenbank" steht. Für den Server selbst ist ein NULL-Wert (der für "aktueller Server" steht) erforderlich. fn_my_permissions kann die Berechtigungen für einen Verbindungsserver nicht überprüfen.

Die folgende Abfrage gibt eine Liste der integrierten Klassen für sicherungsfähige Elemente zurück:

SELECT DISTINCT class_desc FROM fn_builtin_permissions(default)
    ORDER BY class_desc;
GO

Wenn DEFAULT als Wert für securable oder securable_class angegeben wird, wird der Wert als NULL interpretiert.

A. Auflisten der gültigen Berechtigungen auf dem Server

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers auf dem Server zurück.

SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO

B. Auflisten der gültigen Berechtigungen für die Datenbank

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für die AdventureWorks-Datenbank zurück.

USE AdventureWorks;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO

C. Auflisten der gültigen Berechtigungen für eine Sicht

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für die vIndividualCustomer-Sicht im Sales-Schema der AdventureWorks-Datenbank zurück.

USE AdventureWorks;
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT') 
    ORDER BY subentity_name, permission_name ; 
GO 

D. Auflisten der gültigen Berechtigungen eines anderen Benutzers

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Datenbankbenutzers Wanida für die Employee-Tabelle im HumanResources-Schema der AdventureWorks-Datenbank zurück. Der Aufrufer benötigt die IMPERSONATE-Berechtigung für den Benutzer Wanida.

EXECUTE AS USER = 'Wanida';
SELECT * FROM fn_my_permissions('HumanResources.Employee', 'OBJECT') 
    ORDER BY subentity_name, permission_name ;  
REVERT;
GO

E. Auflisten der gültigen Berechtigungen für ein Zertifikat

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für ein Zertifikat namens Shipping47 in der aktuellen Datenbank zurück.

SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO

F. Auflisten der gültigen Berechtigungen für eine XML-Schemaauflistung

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für eine XML-Schemaauflistung namens ProductDescriptionSchemaCollection in der AdventureWorks-Datenbank zurück.

USE AdventureWorks;
SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection',
    'XML SCHEMA COLLECTION');
GO

G. Auflisten der gültigen Berechtigungen für einen Datenbankbenutzer

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für einen Benutzer namens MalikAr in der aktuellen Datenbank zurück.

SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO

D. Auflisten der gültigen Berechtigungen eines anderen Anmeldenamens

Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des SQL Server-Anmeldenamens WanidaBenshoof für die Employee-Tabelle im HumanResources-Schema der AdventureWorks-Datenbank zurück. Der Aufrufer benötigt die IMPERSONATE-Berechtigung für den SQL Server-Anmeldenamen WanidaBenshoof.

EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks.HumanResources.Employee', 'OBJECT') 
    ORDER BY subentity_name, permission_name ;  
REVERT;
GO

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft