sys.fn_my_permissions (Transact-SQL)
Etkili bir güvenliği sağlanabilirüzerinde asıl adı verilen izinler listesini döndürür.İlgili işlev has_perms_by_name.
Sözdizimi
fn_my_permissions ( securable , 'securable_class' )
Bağımsız değişkenler
securable
güvenliği sağlanabiliradıdır.güvenliği sağlanabilir sunucunun veya bir veritabanı, bu değer küme null olmalıdır.securablebirifade skalertürü sysname.securablebir çok parçalı ad olabilir.'securable_class'
İzinleri listelenme güvenliği sağlanabilir sınıfını adıdır.securable_classis a sysname.securable_class aşağıdakilerden biri olmalıdır: UYGULAMA ROLÜNÜ, DERLEME, ASİMETRİK ANAHTAR, SERTİFİKA, SÖZLEŞME, VERİTABANI, BİTİŞ NOKTASI, FULL-TEXT CATALOG, OTURUM AÇMA, İLETİ TÜRÜ, NESNE, UZAK HİZMET BAĞLAMA, ROL, YOL, ŞEMA, SUNUCU, HİZMET, SİMETRİK ANAHTAR, TÜRÜ, KULLANICI, XML ŞEMA KOLEKSİYONU.
Döndürülen sütunlar
Aşağıdaki tablo sütunları listeler, fn_my_permissions döndürür.Döndürülen her satır, güvenliği sağlanabilirüzerinde geçerli güvenlik içeriği tarafından tutulan bir izin açıklanır.Sorgu başarısız olursa null döndürür.
Sütun adı |
Tür |
Açıklama |
---|---|---|
entity_name |
sysname |
Adı listelenen izinleri etkili biçimde verilen güvenliği sağlanabilir . |
subentity_name |
sysname |
Aksi takdirde güvenliği sağlanabilir sütun varsa, sütun adı null. |
permission_name |
nvarchar |
İznin adıdır. |
Açıklamalar
Bu tablo-değerli işlev bir belirtilen güvenliği sağlanabilirüzerinde arama patron tarafından tutulan etkili izinler listesini döndürür.Etkili bir izne aşağıdakilerden biri olur:
Doğrudan asıl adı verilen ve iptal edilmemiş bir izin.
Bir daha yüksek tarafından örtülü izni-düzey izni patron tarafından tutulan ve iptal edilmemiş.
Rol veya biri patron üyeolduğu ve değil engellendi gruba verilen izindir.
Rol veya biri patron üyeolduğu ve değil engellendi grup tarafından tutulan bir izin.
İzni değerlendirme her zaman arayan güvenlik bağlamında gerçekleştirilir.Diğer bir asıl etkili bir izne sahip olup olmadığını belirlemek için arayan o patron sunucu üzerinde özelliklerini Al izni olmalıdır.
Şemadüzey için varlıkları, bir, iki veya üç bölümlü geçirecektir adları kabul edilir.Veritabanı -düzey varlıklar için tek parça ad, bir null değer anlamı ile kabul edilen "geçerli veritabanı".Sunucu için kendisini, null değer (anlamı "geçerli sunucu") gereklidir.fn_my_permissionsbağlantılı sunucuüzerindeki izinleri gözden geçiremez.
Aşağıdaki sorgu yerleşik güvenliği sağlanabilir sınıflarının listesini döndürür:
SELECT DISTINCT class_desc FROM fn_builtin_permissions(default)
ORDER BY class_desc;
GO
Varsayılan değeri olarak sağlanmışsa securable veya securable_class, değer null olarak yorumlanır
Örnekler
A.Sunucu üzerinde etkili izinler listeleme
Aşağıdaki örnek, sunucu üzerinde etkili izinler arayanın listesini döndürür.
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B.Veritabanı geçerli izinlerini listeleme
Aşağıdaki örnek üzerinde etkili izinler arayanın listesini verir AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
C.Görünüm geçerli izinlerini listeleme
Aşağıdaki örnek üzerinde etkili izinler arayanın listesini verir vIndividualCustomer görmek Sales şeması, AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name ;
GO
D.Başka bir kullanıcının etkili izinler listeleme
Aşağıdaki örnek veritabanı kullanıcının görüntülenen etkin izinleri listesini verir Wanida , Employee tablo HumanResources şeması, AdventureWorks2008R2 veritabanı.Arayan kullanıcı özelliklerini Al izni gerektirir Wanida.
EXECUTE AS USER = 'Wanida';
SELECT * FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
E.sertifikageçerli izinlerini listeleme
Aşağıdaki örnek adında bir sertifika üzerinde etkili izinler arayanın listesini verir Shipping47 geçerli bir veritabanı.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F.Bir xml şema koleksiyonu geçerli izinlerini listeleme
Aşağıdaki örnek, bir xml şeması adlı koleksiyon üzerinde etkili izinler arayanın listesini verir ProductDescriptionSchemaCollection , AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION');
GO
G.Bir veritabanı kullanıcısı geçerli izinlerini listeleme
Aşağıdaki örnek adlı bir kullanıcı üzerinde etkili izinler arayanın listesini verir MalikAr geçerli bir veritabanı.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H.Başka bir oturum açma geçerli izinlerini listeleme
Aşağıdaki örnek geçerli izinler listesini döndürür SQL Server login WanidaBenshoof , Employee tablo HumanResources şeması, AdventureWorks2008R2 veritabanı.Arayan üzerinde özelliklerini Al izni gerektirir SQL Server login WanidaBenshoof.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks2008R2.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO