Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
Geeft een lijst terug van de rechten die effectief aan de opdrachtgever zijn verleend op een securable account. Een gerelateerde functie is HAS_PERMS_BY_NAME.
Transact-SQL syntaxis-conventies
Syntaxis
fn_my_permissions ( securable , 'securable_class' )
Arguments
securable
De naam van het beveiligbare. Als de securable de server of een database is, moet deze waarde worden ingesteld op NULL.
Securable is een scalaire uitdrukking van het type sysname.
Securable kan een meerledige naam zijn.
'securable_class'
De naam van de klasse van securable waarvoor de rechten worden vermeld.
securable_class is sysname, met als standaard .NULL
Dit argument moet een van de volgende waarden hebben: APPLICATION ROLE, ASSEMBLY, , ASYMMETRIC KEYCERTIFICATE, CONTRACT, DATABASE, USERSERVICEXML SCHEMA COLLECTIONTYPESYMMETRIC KEYSERVERSCHEMAROUTEROLEOBJECTLOGINREMOTE SERVICE BINDINGENDPOINTFULLTEXT CATALOGMESSAGE TYPE. Een waarde van NULL is standaard .SERVER
Geretourneerde kolommen
De volgende tabel bevat de kolommen die fn_my_permissions worden geretourneerd. Elke teruggegeven rij beschrijft een toestemming die wordt gehouden door de huidige beveiligingscontext op de securable. Komt terug NULL als de query faalt.
| Kolomnaam | Typologie | Description |
|---|---|---|
entity_name |
sysname | Naam van de securant waarop de vermelde rechten effectief worden verleend. |
subentity_name |
sysname | Kolomnaam als de securable kolommen heeft, anders NULL. |
permission_name |
nvarchar | Naam van de toestemming. |
Opmerkingen
Deze tabelwaardige functie geeft een lijst terug van de effectieve rechten die door de aanroepende principal worden bezit op een gespecificeerd securabel. Een effectieve toestemming is een van de volgende opties:
- Een toestemming die rechtstreeks aan de directeur wordt verleend, en niet wordt geweigerd.
- Een toestemming die wordt geïmpliceerd door een hogere toestemming die door de directeur wordt gehouden en niet wordt geweigerd.
- Een toestemming verleend aan een rol of groep waarvan de principal lid is, en niet geweigerd.
- Een toestemming die wordt gehouden door een rol of groep waarvan de principal lid is, en niet geweigerd.
De toestemmingsevaluatie wordt altijd uitgevoerd in de beveiligingscontext van de aanroeper. Om te bepalen of een andere opdrachtgever een effectieve toestemming heeft, moet de beller toestemming hebben IMPERSONATE voor die opdrachtgever.
Voor schema-niveau entiteiten worden één-, twee- of drie-delige niet-nul namen geaccepteerd. Voor database-niveau entiteiten wordt een naam van één deel geaccepteerd, waarbij een nulwaarde de huidige database betekent. Voor de server zelf is een nulwaarde vereist (wat betekent de huidige server).
fn_my_permissions Kan de rechten op een gekoppelde server niet controleren.
De volgende query geeft een lijst van ingebouwde securable klassen terug:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Als DEFAULT wordt geleverd als de waarde van securable of securable_class, wordt de waarde geïnterpreteerd als NULL.
De fn_my_permissions functie wordt niet ondersteund in Azure Synapse Analytics dedicated SQL-pools.
Permissions
Vereist lidmaatschap van de openbare rol.
Voorbeelden
Eén. Vermeld effectieve rechten op de server
Het volgende voorbeeld geeft een lijst van de effectieve rechten van de aanroeper op de server.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. Vermeld effectieve rechten in de database
Het volgende voorbeeld geeft een lijst van de effectieve rechten van de aanroeper in de AdventureWorks2025 database.
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Vermeld effectieve permissies op een weergave
Het volgende voorbeeld geeft een lijst van de effectieve rechten van de aanroeper op de vIndividualCustomer weergave in het Sales schema van de AdventureWorks2025 database.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. Lijst van effectieve rechten van een andere gebruiker
Het volgende voorbeeld geeft een lijst van de effectieve rechten van databasegebruiker Wanida op de Employee tabel in het HumanResources schema van de AdventureWorks2025 database. De beller vereist IMPERSONATE toestemming voor gebruiker Wanida.
EXECUTE AS USER = 'Wanida';
SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO
E. Vermeld effectieve rechten op een certificaat
Het volgende voorbeeld geeft een lijst van de effectieve rechten van de aanroeper op een certificaat dat in de huidige database wordt genoemd Shipping47 .
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. Lijst van effectieve rechten op een XML Schema Collection
Het volgende voorbeeld geeft een lijst van de effectieve rechten van de aanroeper op een XML Schema Collection die in de AdventureWorks2025 database is genoemdProductDescriptionSchemaCollection.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Lijst effectieve rechten op een databasegebruiker
Het volgende voorbeeld geeft een lijst van de effectieve rechten van de aanroeper op een gebruiker die in de huidige database wordt genoemd MalikAr .
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. Lijst van effectieve rechten voor een andere login
Het volgende voorbeeld geeft een lijst van de effectieve rechten voor SQL Server-login WanidaBenshoof op de Employee tabel in het HumanResources schema van de AdventureWorks2025 database. De aanroeper vereist IMPERSONATE toestemming voor SQL Server-login WanidaBenshoof.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO