Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Titik akhir analitik SQL Server
Azure SQL Database Azure SQL Managed Instance
Azure Synapse Analytics Platform System (PDW)
SQL di Microsoft Fabric
Warehouse di Microsoft Fabric
Mengembalikan daftar izin yang secara efektif diberikan kepada prinsipal pada yang dapat diamankan. Fungsi terkait HAS_PERMS_BY_NAME.
Sintaks
fn_my_permissions ( securable , 'securable_class' )
Argumen
Securable
Nama yang dapat diamankan. Jika yang dapat diamankan adalah server atau database, nilai ini harus diatur ke NULL.
securable adalah ekspresi skalar dari jenis sysname.
dapat diamankan dapat menjadi nama multibagian.
'securable_class'
Nama kelas yang dapat diamankan yang izinnya tercantum.
securable_class adalah sysname, dengan default NULL.
Argumen ini harus merupakan salah satu nilai berikut: APPLICATION ROLE, , , ASSEMBLYASYMMETRIC KEYCERTIFICATECONTRACTDATABASE, ENDPOINTFULLTEXT CATALOGLOGINMESSAGE TYPE, OBJECTREMOTE SERVICE BINDINGROLEROUTESCHEMASERVER, SERVICE, , SYMMETRIC KEY, TYPE, , USER, . XML SCHEMA COLLECTION Nilai NULL default ke SERVER.
Kolom yang dikembalikan
Tabel berikut mencantumkan kolom yang fn_my_permissions dikembalikan. Setiap baris yang dikembalikan menjelaskan izin yang dipegang oleh konteks keamanan saat ini pada yang dapat diamankan. Mengembalikan NULL jika kueri gagal.
| Nama kolom | Tipe | Deskripsi |
|---|---|---|
entity_name |
nama sysname | Nama yang dapat diamankan tempat izin yang tercantum diberikan secara efektif. |
subentity_name |
nama sysname | Nama kolom jika yang dapat diamankan memiliki kolom, jika tidak NULL. |
permission_name |
nvarchar | Nama izin. |
Keterangan
Fungsi bernilai tabel ini mengembalikan daftar izin efektif yang dipegang oleh prinsipal panggilan pada yang dapat diamankan tertentu. Izin yang efektif adalah salah satu opsi berikut:
- Izin yang diberikan langsung kepada kepala sekolah, dan tidak ditolak.
- Izin yang tersirat oleh izin tingkat yang lebih tinggi yang dipegang oleh prinsipal dan tidak ditolak.
- Izin yang diberikan kepada peran atau grup yang utamanya adalah anggota, dan tidak ditolak.
- Izin yang dipegang oleh peran atau grup yang utamanya adalah anggota, dan tidak ditolak.
Evaluasi izin selalu dilakukan dalam konteks keamanan pemanggil. Untuk menentukan apakah beberapa prinsipal lain memiliki izin yang efektif, pemanggil harus memiliki IMPERSONATE izin pada prinsipal tersebut.
Untuk entitas tingkat skema, nama non-null satu, dua, atau tiga bagian diterima. Untuk entitas tingkat database, nama satu bagian diterima, dengan nilai null yang berarti database saat ini. Untuk server itu sendiri, nilai null (artinya server saat ini) diperlukan.
fn_my_permissions tidak dapat memeriksa izin pada server tertaut.
Kueri berikut mengembalikan daftar kelas bawaan yang dapat diamankan:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Jika DEFAULT disediakan sebagai nilai yang dapat diamankan atau securable_class, nilai ditafsirkan sebagai NULL.
Fungsi fn_my_permissions ini tidak didukung di kumpulan SQL khusus Azure Synapse Analytics.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
J. Mencantumkan izin efektif pada server
Contoh berikut mengembalikan daftar izin efektif pemanggil di server.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. Mencantumkan izin efektif pada database
Contoh berikut mengembalikan daftar izin efektif pemanggil pada AdventureWorks2025 database.
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Mencantumkan izin efektif pada tampilan
Contoh berikut mengembalikan daftar izin efektif pemanggil pada vIndividualCustomer tampilan dalam Sales skema AdventureWorks2025 database.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. Mencantumkan izin efektif pengguna lain
Contoh berikut mengembalikan daftar izin efektif pengguna Wanida database pada Employee tabel dalam HumanResources skema AdventureWorks2025 database. Pemanggil memerlukan IMPERSONATE izin pada pengguna Wanida.
EXECUTE AS USER = 'Wanida';
SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO
E. Mencantumkan izin efektif pada sertifikat
Contoh berikut mengembalikan daftar izin efektif pemanggil pada sertifikat bernama Shipping47 dalam database saat ini.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. Mencantumkan izin efektif pada Koleksi Skema XML
Contoh berikut mengembalikan daftar izin efektif pemanggil pada Koleksi Skema XML bernama ProductDescriptionSchemaCollection dalam AdventureWorks2025 database.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Mencantumkan izin efektif pada pengguna database
Contoh berikut mengembalikan daftar izin efektif pemanggil pada pengguna bernama MalikAr dalam database saat ini.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. Mencantumkan izin efektif dari login lain
Contoh berikut mengembalikan daftar izin efektif login WanidaBenshoof SQL Server pada Employee tabel dalam HumanResources skema AdventureWorks2025 database. Pemanggil memerlukan IMPERSONATE izin pada login WanidaBenshoofSQL Server .
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO