Share via


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.

Konu bağlantısı simgesi 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)

execute (Transact-sql)

Kavramlar

Izinler (veritabanı altyapısı)

Securables

İzinleri hiyerarşi (veritabanı altyapısı)