Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Gibt eine Liste der Berechtigungen zurück, die dem Prinzipal eines sicherungsfähigen Elements effektiv gewährt wurden. Eine verwandte Funktion lautet HAS_PERMS_BY_NAME.
Transact-SQL-Syntaxkonventionen
Syntax
fn_my_permissions ( securable , 'securable_class' )
Argumente
securable
Der Name des Sicherungsfähigen. Wenn es sich bei der Sicherungsfunktion um den Server oder eine Datenbank handelt, sollte dieser Wert auf NULL.
securable ist ein Skalarausdruck vom Typ sysname.
securable kann ein mehrteiliger Name sein.
'securable_class'
Der Name der Klasse der sicherungsfähigen Berechtigung, für die Berechtigungen aufgelistet sind.
securable_class ist "sysname" mit einem Standardwert von NULL.
Dieses Argument muss einer der folgenden Werte sein: APPLICATION ROLE, , ASSEMBLY, , ASYMMETRIC KEY, CERTIFICATECONTRACT, , DATABASE, , ENDPOINT, FULLTEXT CATALOGLOGINMESSAGE TYPEOBJECTREMOTE SERVICE BINDINGROLEROUTESCHEMASERVERSERVICESYMMETRIC KEYTYPEUSERXML SCHEMA COLLECTION. Ein Wert der NULL Standardwerte für SERVER.
Zurückgegebene Spalten
In der folgenden Tabelle sind die spalten aufgeführt, die fn_my_permissions zurückgegeben werden. Jede zurückgegebene Zeile beschreibt eine Berechtigung, über die der aktuelle Sicherheitskontext für das sicherungsfähige Element verfügt. Gibt zurück NULL , wenn die Abfrage fehlschlägt.
| Spaltenname | type | Beschreibung |
|---|---|---|
entity_name |
sysname | Der Name des sicherungsfähigen Elements, für das die aufgelisteten Berechtigungen effektiv gewährt wurden. |
subentity_name |
sysname | Spaltenname, wenn die sicherungsfähige Spalte Spalten enthält, andernfalls NULL. |
permission_name |
nvarchar | Name der Berechtigung. |
Bemerkungen
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 effektive Berechtigung ist eine der folgenden Optionen:
- Eine Berechtigung, die dem Prinzipal direkt gewährt und nicht verweigert wurde.
- Eine Berechtigung, die durch eine Berechtigung auf höherer Ebene des Prinzipals impliziert wird und nicht verweigert wird.
- Eine Berechtigung, die einer Rolle oder Gruppe erteilt wird, der der Prinzipal als Mitglied angehört, und nicht verweigert wird.
- Eine Berechtigung einer Rolle oder Gruppe, der der Prinzipal als Mitglied angehört, und die nicht verweigert wird.
Die Berechtigungsauswertung erfolgt immer im Sicherheitskontext des Aufrufers. Um festzustellen, ob ein anderer Prinzipal über eine effektive Berechtigung verfügt, muss der Aufrufer über die Berechtigung für diesen Prinzipal verfügen IMPERSONATE .
Für Entitäten auf Schemaebene werden 1-, zwei- oder dreiteilige Nicht-NULL-Namen akzeptiert. Bei Entitäten auf Datenbankebene wird ein einteiliger Name akzeptiert, wobei ein NULL-Wert die aktuelle Datenbank bedeutet. Für den Server selbst ist ein Nullwert (d. h. der aktuelle Server) erforderlich.
fn_my_permissions Berechtigungen auf einem verknüpften Server können nicht überprüft werden.
Die folgende Abfrage gibt eine Liste integrierter sicherungsfähiger Klassen zurück:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Wenn DEFAULT der Wert von sicherungsfähigen oder securable_class angegeben wird, wird der Wert als NULLinterpretiert.
Die fn_my_permissions Funktion wird in dedizierten SQL-Pools in Azure Synapse Analytics nicht unterstützt.
Berechtigungen
Erfordert die Mitgliedschaft in der public -Rolle.
Beispiele
A. Auflisten effektiver 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 effektiver Berechtigungen für die Datenbank
Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für die AdventureWorks2025-Datenbank zurück.
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Auflisten effektiver Berechtigungen für eine Ansicht
Das folgende Beispiel gibt eine Liste der gültigen Berechtigungen des Aufrufers für die vIndividualCustomer-Sicht im Sales-Schema der AdventureWorks2025-Datenbank zurück.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D: Auflisten effektiver 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 AdventureWorks2025-Datenbank zurück. Der Aufrufer erfordert IMPERSONATE die 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 effektiver 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 effektiver Berechtigungen für eine XML-Schemaauflistung
Das folgende Beispiel gibt eine Liste der effektiven Berechtigungen des Aufrufers für eine XML-Schemaauflistung namens ProductDescriptionSchemaCollection in der AdventureWorks2025-Datenbank zurück.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Auflisten effektiver 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
H. Auflisten effektiver Berechtigungen für eine andere Anmeldung
Das folgende Beispiel gibt eine Liste der effektiven Berechtigungen des SQL Server-Anmeldenamens WanidaBenshoof für die Employee-Tabelle im HumanResources-Schema der AdventureWorks2025-Datenbank zurück. Der Aufrufer erfordert IMPERSONATE die Berechtigung für die SQL Server-Anmeldung WanidaBenshoof.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO