Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
koncový bod SQL Analytics ve službě Microsoft Fabric
Úložiště v Microsoft Fabric
Vrátí seznam oprávnění, která byla fakticky udělena zmocnitelnému na securable. Související funkcí je HAS_PERMS_BY_NAME.
Syntaxe
fn_my_permissions ( securable , 'securable_class' )
Arguments
securable
Název zajišťovatelného. Pokud je securable server nebo databáze, tato hodnota by měla být nastavena na NULL.
securable je skalární výraz typového sysname.
Securable může být vícedílný název.
'securable_class'
Název třídy zabezpečených zařízení, pro která jsou uvedena oprávnění.
securable_class je sysname, s výchozím nastavením NULL.
Tento argument musí být jednou z následujících hodnotAPPLICATION ROLE: , , ASSEMBLYASYMMETRIC KEY, , CERTIFICATE, . CONTRACTXML SCHEMA COLLECTIONDATABASEENDPOINTFULLTEXT CATALOGLOGINMESSAGE TYPEOBJECTREMOTE SERVICE BINDINGROLEROUTESCHEMASERVERSERVICESYMMETRIC KEYTYPEUSER Hodnota z výchozí NULL hodnoty je SERVER.
Vrácené sloupce
V následující tabulce jsou uvedeny sloupce, které fn_my_permissions se vrátí. Každý vrácený řádek popisuje oprávnění držené aktuálním bezpečnostním kontextem na securable. Pokud dotaz selže, vrátí.NULL
| Název sloupce | Typ | Description |
|---|---|---|
entity_name |
sysname | Název zabezpečeného zařízení, na kterém jsou uvedená oprávnění efektivně udělena. |
subentity_name |
sysname | Název sloupce, pokud má sejiable sloupce, jinak NULL. |
permission_name |
nvarchar | Název povolení. |
Poznámky
Tato tabulkově hodnotová funkce vrací seznam efektivních oprávnění, která volající principal drží na specifikované zajištěné zařízení. Efektivní povolení je jedna z následujících možností:
- Povolení udělené přímo zmocniteli a nebylo zamítnuto.
- Povolení naznačené vyšším povolením drženým zmocnitelem a nebylo zamítnuto.
- Povolení udělené roli nebo skupině, jejímž je zmocněný členem, a není odepřeno.
- Povolení držené rolí nebo skupinou, jejímž členem je zmocnělý subjekt, a není odepřeno.
Hodnocení oprávnění se vždy provádí v bezpečnostním kontextu volajícího. Aby bylo možné zjistit, zda má nějaký jiný zmocnitel účinné povolení, musí volající mít IMPERSONATE povolení k tomuto principálu.
Pro entity na úrovni schématu jsou přijímány jedno-, dvou- nebo třídílné ne-nulové názvy. Pro entity na úrovni databáze je přijímáno jednočlenné jméno, přičemž nulová hodnota znamená aktuální databázi. Pro samotný server je vyžadována nulová hodnota (tedy aktuální server).
fn_my_permissions Nemohu zkontrolovat oprávnění na propojeném serveru.
Následující dotaz vrací seznam vestavěných securable tříd:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Pokud DEFAULT je uvedena jako hodnota securable nebo securable_class, hodnota se interpretuje jako NULL.
Tato fn_my_permissions funkce není podporována v dedikovaných SQL poolech Azure Synapse Analytics.
Povolení
Vyžaduje členství ve veřejné roli .
Examples
A. Seznam efektivních oprávnění na serveru
Následující příklad vrací seznam efektivních oprávnění volajícího na serveru.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. Seznam efektivních oprávnění v databázi
Následující příklad vrací seznam efektivních oprávnění volajícího v databázi AdventureWorks2025 .
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Seznam efektivních oprávnění k zobrazení
Následující příklad vrací seznam efektivních oprávnění volajícího na zobrazení vIndividualCustomer ve Sales schématu databáze AdventureWorks2025 .
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. Seznam efektivních oprávnění jiného uživatele
Následující příklad vrací seznam efektivních oprávnění uživatele Wanida databáze v tabulce Employee ve HumanResources schématu databáze AdventureWorks2025 . Volající vyžaduje IMPERSONATE oprávnění uživatele Wanida.
EXECUTE AS USER = 'Wanida';
SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO
E. Uveďte efektivní oprávnění na certifikátu
Následující příklad vrací seznam efektivních oprávnění volajícího na certifikátu pojmenovaném Shipping47 v aktuální databázi.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. Seznam efektivních oprávnění ke sbírce XML schématu
Následující příklad vrací seznam efektivních oprávnění volajícího na XML Schema Collection pojmenovanou ProductDescriptionSchemaCollection v databázi AdventureWorks2025 .
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Seznam efektivních oprávnění u uživatele databáze
Následující příklad vrací seznam efektivních oprávnění volajícího na uživatele pojmenovaného MalikAr v aktuální databázi.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. Seznam účinných oprávnění jiného přihlášení
Následující příklad vrací seznam efektivních oprávnění k přihlášení SQL Serveru WanidaBenshoof do tabulky EmployeeHumanResources ve schématu AdventureWorks2025 databáze. Volající vyžaduje IMPERSONATE oprávnění při přihlášení k SQL Serveru WanidaBenshoof.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO