Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric
Warehouse'da SQL analiz uç noktası
Bir temenkul bir sistemde ana kişiye fiilen verilen izinlerin listesini döndürür. İlgili bir fonksiyon HAS_PERMS_BY_NAME.
Transact-SQL söz dizimi kuralları
Sözdizimi
fn_my_permissions ( securable , 'securable_class' )
Arguments
securable
Güvenlikli adı. Eğer güvenlikli sunucu veya veritabanı ise, bu değer olarak ayarlanmalıdır NULL.
Securable , sysname tipinin skaler bir ifadesidir.
Securable çok parçalı bir isim olabilir.
'securable_class'
İzinlerin listelendiği güvenlikli sınıfın adı.
securable_classsysname'dir, varsayılan NULLolarak .
Bu argüman aşağıdaki değerlerden biri olmalıdır: APPLICATION ROLE, ASSEMBLY, SERVICEASYMMETRIC KEYCERTIFICATECONTRACTOBJECTMESSAGE TYPEREMOTE SERVICE BINDINGLOGINROLEFULLTEXT CATALOGROUTESCHEMAENDPOINTDATABASESYMMETRIC KEYTYPESERVERUSER, . XML SCHEMA COLLECTION Varsayılan değer NULL olarak .SERVER
Döndürülen sütunlar
Aşağıdaki tabloda, döndüren fn_my_permissions sütunlar listelenir. Geri dönen her satır, mevcut güvenlik bağlamında tutulan bir izni tanımlar. Sorgu başarısız olursa geri NULL döner.
| Sütun adı | Türü | Description |
|---|---|---|
entity_name |
sysname | Listelenen izinlerin fiilen verildiği güvenlikli adı. |
subentity_name |
sysname | Eğer güvenlikli cihazda sütunlar varsa, sütun adı varsa, aksi takdirde NULL. |
permission_name |
nvarchar | İznin adı. |
Açıklamalar
Bu tablo değerli fonksiyon, belirli bir güvenlikli durumda çağıran ana yöneticinin sahip olduğu etkin yetkilerin listesini döndürür. Etkili bir izin aşağıdaki seçeneklerden herhangi birinden biridir:
- Doğrudan müdüre verilen bir izin, reddedilmez.
- Müdür tarafından tutulan ve reddedilmeyecek daha yüksek seviyeli bir izinle ima edilen bir izin.
- Başkanın üyesi olduğu bir rol veya gruba verilen ve reddedilmemiş bir izin.
- Müdürün üyesi olduğu bir rol veya grup tarafından alınan ve reddedilmemiş bir izin.
İzin değerlendirmesi her zaman arayanın güvenlik bağlamında yapılır. Başka bir müdürün geçerli izni olup olmadığını belirlemek için, arayan kişinin o yönetici üzerinde izin alması IMPERSONATE gerekir.
Şema düzeyindeki varlıklar için bir, iki veya üç parçalı boş olmayan isimler kabul edilir. Veritabanı düzeyindeki varlıklar için, tek parçalı bir ad kabul edilir ve null değer mevcut veritabanı anlamına gelir. Sunucunun kendisi için bir null değer (yani mevcut sunucu) gereklidir.
fn_my_permissions Bağlı bir sunucuda izinleri kontrol edemiyorum.
Aşağıdaki sorgu, yerleşik güvenli sınıfların listesini döndürür:
SELECT DISTINCT class_desc
FROM fn_builtin_permissions(DEFAULT)
ORDER BY class_desc;
GO
Eğer DEFAULTgüvenlikli veya securable_class değeri olarak sağlanırsa, değer şu şekilde yorumlanır.NULL
Bu fn_my_permissions fonksiyon Azure Synapse Analytics'in özel SQL havuzlarında desteklenmiyor.
Permissions
"" genel "" rolüne üyelik gerektirir.
Örnekler
A. Sunucuda etkili izinleri listeleyin
Aşağıdaki örnek, arayan kişinin sunucudaki etkin izinlerinin listesini geri döndürür.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B. Veritabanında etkili izinleri listele
Aşağıdaki örnek, arayan AdventureWorks2025 kişinin veritabanındaki etkin izinlerinin listesini getirir.
USE AdventureWorks2022;
SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
GO
C. Bir görünümde etkili izinleri listele
Aşağıdaki örnek, AdventureWorks2025 veritabanı şemasındaki görünümdeki Sales arayanın vIndividualCustomer etkin izinlerinin bir listesini geri getirir.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name;
GO
D. Başka bir kullanıcının etkili izinlerini listele
Aşağıdaki örnek, AdventureWorks2025 veritabanı şemasında tabloda HumanResources veritabanı kullanıcısının WanidaEmployee etkin izinlerinin listesini döndürür. Arayan, kullanıcı Wanidaiçin izin istiyorIMPERSONATE.
EXECUTE AS USER = 'Wanida';
SELECT *
FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO
E. Bir sertifikada etkili izinleri listele
Aşağıdaki örnek, mevcut veritabanında adı Shipping47 geçen bir sertifikada arayan kişinin etkin izinlerinin listesini döndürür.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F. Bir XML Şema Koleksiyonunda etkili izinleri listele
Aşağıdaki örnek, veritabanında AdventureWorks2025 adlandırılmış ProductDescriptionSchemaCollection bir XML Şema Koleksiyonu üzerindeki çağıranın etkin izinlerinin listesini döndürür.
USE AdventureWorks2022;
GO
SELECT * FROM fn_my_permissions(
'ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION'
);
GO
G. Bir veritabanı kullanıcısı üzerinde etkili izinleri listele
Aşağıdaki örnek, mevcut veritabanında adı MalikAr geçen bir kullanıcıya karşı arayan kişinin geçerli izinlerinin listesini döndürür.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H. Başka bir giriş için etkili izinleri listele
Aşağıdaki örnek, veritabanı AdventureWorks2025 şemasında tabloda HumanResources SQL Server giriş WanidaBenshoofEmployee için geçerli izinlerin listesini döndürür. Arayan için SQL Server girişinde WanidaBenshoofizin gerekiyorIMPERSONATE.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT *
FROM fn_my_permissions('AdventureWorks2022.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name;
REVERT;
GO