sys.fn_my_permissions (Transact-sql)
Etkili bir güvenli hale getirilebilen üzerinde temel izinler listesini döndürür. İlgili işlevi has_perms_by_name.
Transact-SQL Sözdizim Kuralları
Sözdizimi
fn_my_permissions ( securable , 'securable_class' )
Bağımsız değişkenler
securable
Güvenlik altına alınabilir adıdır. Güvenilir sunucu veya veritabanı varsa, bu değer null olarak ayarlanmalıdır. securablebir skalar ifade türü olan sysname. securablebir çok parçalı ad olabilir.'securable_class'
Hangi izinler listelenir için güvenlik altına alınabilir sınıf adıdır. securable_classis a sysname. securable_class aşağıdakilerden biri olmalıdır: uygulama rolünü, derleme, asimetrik anahtar, sertifika, sözleşme, veritabanı, bitiş noktası, fulltext Katalog, oturum açma, ileti türü, nesne, uzak hizmet bağlama, rol, yol, şema, sunucusu, hizmet, simetrik anahtar, türü, kullanıcı, xml şema koleksiyonu.
Döndürülen sütunlar
Aşağıdaki tablo sütunları listeler, fn_my_permissionsdöndürür. Döndürülen her satır, geçerli güvenlik içeriği güvenli hale getirilebilen üzerinde tuttuğu bir izin açıklanır. Sorgu başarısız olduğunda null döndürüyor.
Sütun adı |
Tür |
Açıklama |
---|---|---|
entity_name |
sysname |
Adını securable listelenen izinleri etkili biçimde verilir. |
subentity_name |
sysname |
Aksi takdirde güvenilir sütun varsa, sütun adı null. |
permission_name |
nvarchar |
Iznin adını. |
Açıklamalar
Tablo değerli işlev, belirtilen bir arayan anapara tuttuğu güvenilir etkili izinler listesini döndürür. Etkili bir izin aşağıdakilerden biri:
Bir izni doğrudan asıl adı verilen ve değil engellendi.
Asıl ve değil engellendi tarafından düzenlenen üst düzey izni tarafından açık izni.
Bir rol veya biri anapara üyesi olduğu ve değil engellendi gruba verilen izni.
Rol veya biri anapara üyesi olduğu ve değil engellendi grup tarafından tutulan bir izin.
İzni değerlendirmesi her zaman arayan güvenlik bağlamında gerçekleştirilir. Bazı diğer asıl etkili bir izne sahip olup olmadığını belirlemek için arayan o anapara özelliklerini Al izni olmalıdır.
Şema düzeyi varlıklar için bir, iki veya üç bölümlü nonnull adlarını kabul edilir. Veritabanı düzeyinde varlıklar için tek parça ad, bir null değeri anlamı ile kabul edilen "veritabanı". Sunucunun kendisi, boş değer (anlamı "geçerli sunucu") gereklidir. fn_my_permissionsbağlantılı bir sunucu üzerindeki izinleri kontrol edemez.
Aşağıdaki sorgu yerleşik güvenlik altına alınabilir sınıflarının listesi döndürür:
SELECT DISTINCT class_desc FROM fn_builtin_permissions(default)
ORDER BY class_desc;
GO
SELECT DISTINCT class_desc FROM fn_builtin_permissions(default)
ORDER BY class_desc;
GO
Varsayılan değer olarak sağlanmışsa securableya securable_class, değeri null 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
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO
B.Veritabanı izinlerini listeleme
Aşağıdaki örnek, arayanın etkili izinler listesini döndürür AdventureWorks2012 veritabanı.
USE AdventureWorks2012;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
USE AdventureWorks2012;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
C.Görünümün izinlerini listeleme
Aşağıdaki örnek, arayanın etkili izinler listesini döndürür vIndividualCustomergörmek Salesşema AdventureWorks2012 veritabanı.
USE AdventureWorks2012;
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name ;
GO
USE AdventureWorks2012;
SELECT * FROM fn_my_permissions('Sales.vIndividualCustomer', 'OBJECT')
ORDER BY subentity_name, permission_name ;
GO
D.Başka bir kullanıcının izinlerini listeleme
Aşağıdaki örnek, veritabanı kullanıcı etkili izinler listesini verir Wanidaüzerine Employeeiçinde masa HumanResourcesşema AdventureWorks2012 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
EXECUTE AS USER = 'Wanida';
SELECT * FROM fn_my_permissions('HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
E.Sertifika izinlerini listeleme
Aşağıdaki örnek, arayanın etkili izinler listesini adında bir sertifika verir Shipping47geçerli veritabanında.
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO
F.xml Şeması derlemesi üzerinde etkili izinler listeleme
Aşağıdaki örnek, arayanın etkili izinler listesini verir bir xml şema koleksiyonu adlı ProductDescriptionSchemaCollection de AdventureWorks2012 veritabanı.
USE AdventureWorks2012;
SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION');
GO
USE AdventureWorks2012;
SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection',
'XML SCHEMA COLLECTION');
GO
G.Veritabanı kullanıcı izinlerini listeleme
Aşağıdaki örnek, adlı bir kullanıcı üzerinde etkili izinler arayanın listesini verir. MalikArgeçerli veritabanında.
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO
H.Başka bir oturum açma izinlerini listeleme
Aşağıdaki örnek, etkili izinler listesini verir SQL Servergiriş WanidaBenshoofüzerine Employeeiçinde tablo HumanResourcesşema AdventureWorks2012 veritabanı. Arayan üzerinde özelliklerini Al izni gerektirir SQL Servergiriş WanidaBenshoof.
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks2012.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks2012.HumanResources.Employee', 'OBJECT')
ORDER BY subentity_name, permission_name ;
REVERT;
GO
Ayrıca bkz.
Başvuru
Güvenlik işlevler (Transact-sql)
sys.fn_builtin_permissionsilişkili (Transact-sql)
Güvenlik Kataloğu görünümleri (Transact-sql)