Aracılığıyla paylaş


fn_my_permissions (Transact-SQL)

Etkin bir güvenliği sağlanabilir üzerinde anapara verilen izinlerin listesini verir.Ilgili bir işlev HAS_PERMS_BY_NAME (Transact-SQL).

Topic link iconTransact-SQL sözdizimi kuralları

fn_my_permissions ( securable , 'securable_class')

Bağımsız değişkenler

  • securable
    güvenliği sağlanabilir adıdır.If the securable is the server or a database, this value should be set to NULL.securable is a scalar expression of type sysname.securable can be a multipart name.

  • 'securable_class'
    Is the name of the class of securable for which permissions are listed.securable_class is a sysname.securable_class must be one of the following: uygulama rolü, DERLEME, ASİMETRİK ANAHTAR, SERTİFİKA, anlaşma, VERİTABANI, BİTİŞ NOKTASI, fulltext KATALOG, OTURUM AÇMA, İLETİ TÜRÜ, NESNE, UZAK HİZMETİN BAĞLAMA, ROL, YOL, ŞEMA, SUNUCU, HİZMET, SİMETRİK ANAHTAR, TÜRÜ, KULLANICI, xml ŞEMA koleksiyon.

Döndürülen sütunlar

Aşağıdaki tabloda sütunları listeler, fn_my_permissions döndürür.Döndürülen her satır, geçerli güvenlik içeriği üzerinde güvenliği sağlanabilir tarafından tutulan bir izin açıklar.Sorgu başarısız olursa, NULL döndürüyor.

Sütun adı

Tür

Açıklama

varlýk_adý

sysname

Adı güvenliği sağlanabilir listelenen izinleri etkili biçimde verilir.

subentity_name

sysname

Aksi durumda, güvenliği sağlanabilir sütunlar, sütun adı NULL.

permission_name

nvarchar

Iznin adını.

Remarks

Bu tablo değerli işlev, belirtilen arama anapara tarafından tutulan güvenliği sağlanabilir etkili izinler listesini verir.Etkin bir izni aşağıdakilerden herhangi biri olur:

  • Bir izni doğrudan asıl adı verilen ve değil engellendi.

  • Asıl ve değil engellendi tarafından tutulan bir üst düzey izni tarafından örtük BIR izindir.

  • Bir rolü veya; anapara üye ve değil engellendi grubuna BIR izni.

  • Rol veya; anapara üye ve değil engellendi grup tarafından tutulan BIR izindir.

Izni değerlendirme her zaman, arayanın güvenlik bağlamında gerçekleştirilir.Başka bir ilkesi bir etkin izni olup olmadığını belirlemek için , arayanın bu asıl özelliklerini Al izni olmalıdır.

Şema düzey varlıklar için bir-CVE-2006-, iki veya üç bölümlü nonnull adları kabul edilir.Veritabanı düzey varlıklar için tek parça ad, bir boş (null) değer anlamı ile kabul edildi"Geçerli veritabanı".For the server itself, a null value (meaning "current server") is required.fn_my_permissions cannot check permissions on a linked server.

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 olarak belirttiğinizde securable veya securable_class, değeri NULL yorumlanacaktır.

Örnekler

C.Sunucu üzerinde etkili izinler listesi

Aşağıdaki örnek, sunucu üzerinde arayanın etkili izinler listesini verir.

SELECT * FROM fn_my_permissions(NULL, 'SERVER');
GO

b.Veritabanı için etkili izinleri listeleniyor.

Aşağıdaki örnek etkili izinleri arayanın listesini döndürüyor AdventureWorks Veritabanı.

USE AdventureWorks;
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO

c.Bir görünümde listenin etkili izinler

Aşağıdaki örnek etkili izinleri arayanın listesini döndürüyor vIndividualCustomer görüntülemek Sales Şema, AdventureWorks Veritabanı.

USE AdventureWorks;
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 listesi

Aşağıdaki örnek listesi etkin veritabanı kullanıcısı izinleri verir. Wanida üzerinde Employee ' de tablo HumanResources Şema, AdventureWorks Veritabanı. Arayanın 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.sertifika etkili izinler listesi

Aşağıdaki örnek etkili izinleri arayanın listesini adında bir sertifika verir. Shipping47 Geçerli veritabanında.

SELECT * FROM fn_my_permissions('Shipping47', 'CERTIFICATE');
GO

f.Bir XML şeması geçerli izinlerini listeleniyor koleksiyon

Aşağıdaki örnek, bir XML şeması derlemesi, arayanın etkili izinler listesini adlı verir ProductDescriptionSchemaCollection içinde AdventureWorks Veritabanı.

USE AdventureWorks;
SELECT * FROM fn_my_permissions('ProductDescriptionSchemaCollection',
    'XML SCHEMA COLLECTION');
GO

g.Bir veritabanı kullanıcısı geçerli izinlerini listeleniyor.

Aşağıdaki örnek adlı bir kullanıcı etkili izinleri arayanın listesini verir... MalikAr Geçerli veritabanında.

SELECT * FROM fn_my_permissions('MalikAr', 'USER');
GO

h.Başka bir oturum açma, etkili izinler listesi

Aşağıdaki örnek etkili olan izinlerin listesini verir... SQL Server oturum açma WanidaBenshoof üzerinde Employee ' de tablo HumanResources Şema, AdventureWorks Veritabanı. Arayanın, özelliklerini AL iznine gerek duyar SQL Server oturum açma WanidaBenshoof.

EXECUTE AS LOGIN = 'WanidaBenshoof';
SELECT * FROM fn_my_permissions('AdventureWorks.HumanResources.Employee', 'OBJECT') 
    ORDER BY subentity_name, permission_name ;  
REVERT;
GO