Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
Returnerar en lista över de tillstånd som i praktiken beviljats huvudmannen på ett securable. En relaterad funktion är HAS_PERMS_BY_NAME.
Transact-SQL syntaxkonventioner
Syntax
fn_my_permissions ( securable , 'securable_class' )
Arguments
securable
Namnet på det värdebärga. Om den securable är servern eller en databas bör detta värde sättas till NULL.
securable är ett skalärt uttryck av typen sysname.
Securable kan vara ett flerpartsnamn.
'securable_class'
Namnet på den typ av securable för vilka behörigheter listas.
securable_class är sysname, med standardvärdet .NULL
Detta argument måste vara ett av följande värden: APPLICATION ROLE, ASSEMBLY, , ASYMMETRIC KEYCERTIFICATE, CONTRACT, DATABASE, USERSERVICEXML SCHEMA COLLECTIONTYPESYMMETRIC KEYSERVERSCHEMAROUTEROLEOBJECTLOGINREMOTE SERVICE BINDINGENDPOINTFULLTEXT CATALOGMESSAGE TYPE. Ett värde av NULL är standard .SERVER
Kolumner som returneras
I följande tabell visas de kolumner som fn_my_permissions returneras. Varje rad som returneras beskriver en behörighet som innehas av den aktuella säkerhetskontexten på den securable. Returnerar NULL om frågan misslyckas.
| Kolumnnamn | Typ | Description |
|---|---|---|
entity_name |
sysname | Namnet på det säkerhetsdokument där de listade behörigheterna i praktiken beviljas. |
subentity_name |
sysname | Kolumnnamn om den värdebärande har kolumner, annars NULL. |
permission_name |
nvarchar | Namnet på tillståndet. |
Anmärkningar
Denna tabellvärda funktion returnerar en lista över de effektiva behörigheter som den anropande huvudpersonen har på en specificerad securable. Ett effektivt tillstånd är något av följande alternativ:
- Ett tillstånd som ges direkt till rektorn, och inte nekas.
- Ett tillstånd som underförstås av ett högre tillstånd som innehas av rektorn och inte nekas.
- Ett tillstånd som ges till en roll eller grupp där huvudpersonen är medlem, och som inte nekas.
- Ett tillstånd som innehas av en roll eller grupp där huvudmannen är medlem, och som inte nekas.
Behörighetsutvärderingen utförs alltid i säkerhetskontexten hos anroparen. För att avgöra om någon annan huvudperson har ett effektivt tillstånd måste uppringaren ha IMPERSONATE tillstånd på den huvudmannen.
För schema-nivåentiteter accepteras en-, två- eller tredelade icke-nullnamn. För databasnivåenheter accepteras ett endelsnamn, där ett nollvärde betyder den aktuella databasen. För själva servern krävs ett nollvärde (det vill säga den aktuella servern).
fn_my_permissions Kan inte kontrollera behörigheter på en länkad server.
Följande fråga ger en lista över inbyggda sekurerbara klasser:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Om DEFAULT anges som värdet av securable eller securable_class, tolkas värdet som NULL.
Funktionen fn_my_permissions stöds inte i dedikerade SQL-pooler från Azure Synapse Analytics.
Permissions
Kräver medlemskap i offentlig roll.
Examples
A. Lista effektiva behörigheter på servern
Följande exempel ger en lista över anroparens effektiva behörigheter på servern.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. Lista effektiva behörigheter i databasen
Följande exempel ger en lista över anroparens effektiva behörigheter i databasen AdventureWorks2025 .
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Lista effektiva behörigheter i en vy
Följande exempel ger en lista över anroparens effektiva behörigheter i vIndividualCustomer vyn i Sales databasens schema AdventureWorks2025 .
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. Lista effektiva behörigheter för en annan användare
Följande exempel ger en lista över effektiva behörigheter för databasanvändaren Wanida i Employee tabellen i HumanResources databasens schema AdventureWorks2025 . Anroparen kräver IMPERSONATE behörighet från användaren Wanida.
EXECUTE AS USER = 'Wanida';
SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO
E. Lista effektiva behörigheter på ett certifikat
Följande exempel ger en lista över anroparens effektiva behörigheter på ett certifikat som är namngivet Shipping47 i den aktuella databasen.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. Lista effektiva behörigheter på en XML-schemasamling
Följande exempel ger en lista över anroparens effektiva behörigheter på en XML Schema Collection som är namngiven ProductDescriptionSchemaCollection i databasen AdventureWorks2025 .
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Lista effektiva behörigheter på en databasanvändare
Följande exempel ger en lista över anroparens effektiva behörigheter på en användare som är namngiven MalikAr i den aktuella databasen.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. Lista effektiva behörigheter för en annan inloggning
Följande exempel ger en lista över de effektiva behörigheterna för SQL Server-inloggning WanidaBenshoof i Employee tabellen i HumanResources databasens schema AdventureWorks2025 . Anroparen kräver IMPERSONATE behörighet vid SQL Server-inloggning WanidaBenshoof.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO