Megosztás a következőn keresztül:


sys.fn_my_permissions (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics platformrendszer (PDW)SQL-elemzési végpont a Microsoft FabricA Microsoft Fabric Warehouse-ban

Visszaadja a megbízott jogosultságok listáját, amelyeket a megbízott egy biztosítékon adott. Egy kapcsolódó függvény HAS_PERMS_BY_NAME.

Transact-SQL szintaxis konvenciók

Szemantika

fn_my_permissions ( securable , 'securable_class' )

Arguments

securable

A biztosított név. Ha a biztosítható szerver vagy adatbázis, akkor ezt az értéket be kell állítani .NULL Securable a sysname típus skaláris kifejezése. Securable lehet többrészes név.

'securable_class'

Az a biztonsági osztály neve, amelyhez jogosultságokat tartalmaznak. securable_classa sysname, alapértelmezett értéke NULL.

Ennek az érvnek az alábbi értékek egyike kell legyen: APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, DATABASESERVICECERTIFICATEOBJECTMESSAGE TYPEREMOTE SERVICE BINDINGLOGINROLEFULLTEXT CATALOGROUTESCHEMAENDPOINTCONTRACTSYMMETRIC KEYTYPESERVERUSER, , . XML SCHEMA COLLECTION A NULL érték alapértelmezettként .SERVER

Visszaadott oszlopok

Az alábbi táblázat a visszaadott fn_my_permissions oszlopokat sorolja fel. Minden visszaadott sor leírja a jelenlegi biztonsági kontextusban lévő jogosultságot. Visszaad NULL , ha a lekérdezés meghiúsul.

Oszlop név Típus Description
entity_name sysname Annak a biztosítéknak a neve, amelyen a felsorolt engedélyek gyakorlatilag megkapják.
subentity_name sysname Az oszlop neve, ha a biztosítható oszlopokat tartalmaz, különben NULL.
permission_name nvarchar Az engedély neve.

Megjegyzések

Ez a táblázatértékű függvény egy adott biztosított eszköz által birtokolt hatékony jogosultságok listáját adja vissza. A hatékony engedély az alábbi lehetőségek bármelyike lehet:

  • Engedély, amelyet közvetlenül az igazgatónak adnak, és nem tagadtak meg.
  • Ez egy magasabb szintű engedély által feltételezett engedély, amelyet az igazgató birtokol, és nem tagadják meg.
  • Olyan engedély, amelyet egy olyan szerepnek vagy csoportnak adnak, amelynek a főnöke tagja, és amelyet nem tagadnak meg.
  • Egy olyan szerep vagy csoport engedélye, amelynek a főnök tagja, és amelyet nem tagadnak meg.

Az engedélyértékelést mindig a hívó biztonsági kontextusában végzik. Annak megállapításához, hogy más megbízónak van tényleges engedélye, a hívónak engedélyt kell IMPERSONATE kapnia ezen az alapon.

Sémaszintű entitások esetén egy-, két- vagy háromrészes nem-null neveket fogadnak el. Adatbázis-szintű entitások esetén egyrészes nevet fogadnak el, ahol null érték a jelenlegi adatbázist jelenti. Magának a szervernek null értéke (azaz a jelenlegi szerver) kell lennie. fn_my_permissions Nem tudom ellenőrizni a jogosultságokat egy linked szerveren.

A következő lekérdezés a beépített biztonsági osztályok listáját adja vissza:

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

Ha DEFAULT a Securable vagy securable_class értékként van megadva, akkor az értéket úgy értelmezzük, mint NULL.

Ez fn_my_permissions a funkció nem támogatott az Azure Synapse Analytics dedikált SQL poolokban.

Permissions

A nyilvános szerepkör tagságát igényli.

Példák

A. A szerver hatékony jogosultságainak listázása

A következő példa visszaadja a hívó hatékony jogosultságainak listáját a szerveren.

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

B. Hatékony jogosultságok listázása az adatbázisban

Az alábbi példa adja vissza a hívó hatékony jogosultságainak listáját az AdventureWorks2025 adatbázisban.

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

C. A hatásos jogosultságok listázása egy nézeten

A következő példa visszaadja a hívó hatékony jogosultságainak listáját az vIndividualCustomer adatbázis sémájában AdventureWorks2025 lévő nézetenSales.

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

D. Felsorolja egy másik felhasználó hatékony jogosultságait

A következő példa adja vissza az adatbázis-felhasználó Wanida hatékony jogosultságainak listáját az Employee adatbázis sémájának AdventureWorks2025 táblázatánHumanResources. A hívónak engedélyt kell IMPERSONATE kérnie a felhasználótól Wanida.

EXECUTE AS USER = 'Wanida';

SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;

REVERT;
GO

E. Hatékony jogosultságok listázása egy tanúsítványon

A következő példa a hívó hatékony jogosultságainak listáját adja vissza egy jelenlegi adatbázisban megnevezett Shipping47 tanúsítványon.

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

F. Hatékony jogosultságok listázása XML sémagyűjteményen

A következő példa egy XML sémagyűjtemény alkalmazásának hatékony jogosultságainak listáját adja vissza, amelyet az adatbázisban megneveznek ProductDescriptionSchemaCollectionAdventureWorks2025 .

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

G. Hatékony jogosultságok listázása egy adatbázis-felhasználóhoz

A következő példa visszaadja a hívó hatékony jogosultságainak listáját egy jelenlegi adatbázisban megnevezett MalikAr felhasználón.

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

H. Sorold fel egy másik bejelentkezés hatékony jogosultságait

A következő példa az adatbázis sémájában AdventureWorks2025 található táblázaton található SQL Server bejelentkezés HumanResourcesWanidaBenshoofEmployee hatékony jogosultságainak listáját adja vissza. A hívónak engedélyt kell IMPERSONATE az SQL Server bejelentkezéséhez WanidaBenshoof.

EXECUTE AS LOGIN = 'WanidaBenshoof';

SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;

REVERT;
GO