Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
punkt końcowy analizy SQL w usłudze Microsoft Fabric
Magazyn w usłudze Microsoft Fabric
Zwraca listę zezwoleń faktycznie przyznanych mocodawcy na zabezpieczalnym formularzu. Powiązaną funkcją jest HAS_PERMS_BY_NAME.
Transact-SQL konwencje składni
Składnia
fn_my_permissions ( securable , 'securable_class' )
Arguments
securable
Nazwa zabezpieczalnego. Jeśli zabezpieczalnym jest serwer lub baza danych, wartość ta powinna być ustawiona na .NULL
Securable to skalarne wyrażenie typu sysname.
Securable może być nazwą wieloczęściową.
'securable_class'
Nazwa klasy zabezpieczalnych, dla której wymienione są uprawnienia.
securable_class to nazwa systemowa, z domyślnym .NULL
Ten argument musi być jedną z następujących wartości: APPLICATION ROLE, , , ASYMMETRIC KEY, DATABASEENDPOINTCERTIFICATECONTRACT, FULLTEXT CATALOG, LOGIN, . XML SCHEMA COLLECTIONSERVICESERVERSYMMETRIC KEYTYPEMESSAGE TYPEREMOTE SERVICE BINDINGUSEROBJECTROLEROUTESCHEMAASSEMBLY Wartość domyślnie NULL wynosi SERVER.
Zwrócone kolumny
W poniższej tabeli wymieniono zwracane kolumny fn_my_permissions . Każdy zwrócony wiersz opisuje uprawnienia posiadane przez aktualny kontekst bezpieczeństwa na zabezpieczalnym (securable). Zwraca, NULL jeśli zapytanie się nie powiedzie.
| Nazwa kolumny | Typ | Description |
|---|---|---|
entity_name |
sysname | Nazwa zabezpieczenia, na podstawie którego faktycznie udzielane są wymienione uprawnienia. |
subentity_name |
sysname | Nazwa kolumny, jeśli zabezpieczalny ma kolumny, w przeciwnym razie NULL. |
permission_name |
nvarchar | Nazwa pozwolenia. |
Uwagi
Ta funkcja tabelowa zwraca listę efektywnych uprawnień posiadanych przez wywołującego głównego na określonym zabezpieczeniu. Skuteczne pozwolenie to jedna z następujących opcji:
- Zgoda udzielona bezpośrednio zleceniodawcy i nie odmawiana.
- Zgoda jest dorozumiana przez wyższe uprawnienia posiadane przez zleceniodawcę, a nie odmowana.
- Zgoda udzielona roli lub grupie, której głównym jest członkiem, i nie jest odmawiana.
- Zgoda posiadana przez rolę lub grupę, której głównym jest członkiem, i nie jest odmawiana.
Ocena uprawnień jest zawsze przeprowadzana w kontekście bezpieczeństwa dzwoniącego. Aby ustalić, czy inny podmiot ma skuteczne pozwolenie, dzwoniący musi mieć IMPERSONATE zgodę na tę zasadę.
Dla jednostek na poziomie schematu akceptowane są nazwy jednoczęściowe, dwu- lub trzyczęściowe, nie-null. Dla encji na poziomie bazy danych akceptowana jest nazwa jednoczęściowa, a wartość null oznacza aktualną bazę danych. Dla samego serwera wymagana jest wartość null (czyli aktualny serwer).
fn_my_permissions Nie mogę sprawdzić uprawnień na połączonym serwerze.
Następujące zapytanie zwraca listę wbudowanych klas zabezpieczalnych:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Jeśli DEFAULT jest podany jako wartość securable lub securable_class, wartość interpretuje się jako NULL.
Funkcja ta fn_my_permissions nie jest obsługiwana w dedykowanych pulach SQL Azure Synapse Analytics.
Permissions
Wymaga członkostwa w publicznej roli .
Przykłady
A. Lista skutecznych uprawnień na serwerze
Poniższy przykład zwraca listę skutecznych uprawnień wywołującego na serwerze.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. Lista skutecznych uprawnień w bazie danych
Poniższy przykład zwraca listę skutecznych uprawnień wywołującego w bazie AdventureWorks2025 danych.
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Lista skutecznych uprawnień do widoku
Poniższy przykład zwraca listę efektywnych uprawnień wywołującego do widoku vIndividualCustomer w Sales schemacie bazy AdventureWorks2025 danych.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. Lista skutecznych uprawnień innego użytkownika
Poniższy przykład zwraca listę efektywnych uprawnień użytkownika Wanida bazy danych do tabeli Employee w HumanResources schemacie bazy AdventureWorks2025 danych. Dzwoniący wymaga IMPERSONATE uprawnień użytkownika Wanida.
EXECUTE AS USER = 'Wanida';
SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO
E. Lista skutecznych uprawnień na certyfikacie
Poniższy przykład zwraca listę skutecznych uprawnień wywołującego na certyfikcie nazwanym Shipping47 w aktualnej bazie danych.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. Lista skutecznych uprawnień do kolekcji schematów XML
Poniższy przykład zwraca listę skutecznych uprawnień wywołującego do kolekcji ProductDescriptionSchemaCollection schematów XML nazwanej w bazie AdventureWorks2025 danych.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Lista skutecznych uprawnień użytkownika bazy danych
Poniższy przykład zwraca listę skutecznych uprawnień wywołującego do użytkownika MalikAr nazwanego w aktualnej bazie danych.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. Lista skutecznych uprawnień innego logowania
Poniższy przykład zwraca listę skutecznych uprawnień do logowania WanidaBenshoof SQL Server w tabeli Employee w HumanResources schemacie bazy AdventureWorks2025 danych. Dzwoniący wymaga IMPERSONATE uprawnień do logowania WanidaBenshoofdo SQL Server.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO