Aracılığıyla paylaş


Nesne IZINLERI (Transact-sql)

Bir tablo, görünüm, tablo değerli işlev, saklı yordam, genişletilmiş saklı yordam, skalar fonksiyon, toplama işlevi, hizmet sıra veya eşanlamlı izinleri verir.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

GRANT <permission> [ ,...n ] ON 
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
    TO <database_principal> [ ,...n ] 
    [ WITH GRANT OPTION ]
    [ AS <database_principal> ]

<permission> ::=
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]

<database_principal> ::= 
        Database_user 
    | Database_role 
    | Application_role 
    | Database_user_mapped_to_Windows_User 
    | Database_user_mapped_to_Windows_Group 
    | Database_user_mapped_to_certificate 
    | Database_user_mapped_to_asymmetric_key 
    | Database_user_with_no_login

Bağımsız değişkenler

  • permission
    Bir izin verilebilen bir şema içerdiği nesne üzerinde belirtir. İzinler listesi için bu konunun ilerleyen bölümlerinde açıklamalar bölümüne bakın.

  • ALL
    TÜM verilmesi, tüm olası izinleri vermez. Bütün verme tüm verilmesi için eşdeğer ANSI-92 izinleri belirtilen nesnesine uygulanabilir. TÜM anlamını aşağıdaki gibi değişir:

    Skalar fonksiyon izinleri: yürütme, referanslar.

    Tablo değerli işlev izinleri: delete, INSERT, başvurular, select, update.

    Saklı yordam izinleri: yürütün.

    Tablo izinleri: delete, INSERT, başvurular, select, update.

    Görüntüleme izinleri: delete, INSERT, başvurular, select, update.

  • AYRICALIKLAR
    İçin ANSI-92 uyumu. TÜM davranışını değiştirmez.

  • column
    Bir tablo, görünüm veya tablo değerli işlev üzerinde izin verilen bir sütun adını belirtir. Parantezler () gereklidir. Bir sütun yalnızca seçim, referanslar ve güncelleştirme izni verilebilir. columnizinleri yan tümcesi içinde ya da güvenilir adından sonra belirtilebilir.

    Dikkat notuDikkat

    Bir tablo düzeyi deny sütun düzeyinde vermek öncelikli değildir. Geriye doğru uyumluluk için izinleri hiyerarşisindeki bu tutarsızlık korunmuştur.

  • ON [ OBJECT :: ] schema_name . object_name
    İzin verilen nesneyi belirtir. NESNEYİ ifade isteğe bağlı olmadığını schema_namebelirtilen. NESNEYİ ifade kullanılmış ise kapsam niteleyicisi (:) gereklidir. Eğer schema_namebelirtilmemişse, varsayılan şemayı kullanılır. Eğer schema_nameBelirtilen şema kapsam niteleyicisi (.) gereklidir.

  • İÇİN <database_principal>
    İzin verilen asıl adı belirtir.

  • GRANT SEÇENEĞİ İLE BİRLİKTE
    Asıl adı da diğer ilkeleri belirtilen izni olanağı verilecektir gösterir.

  • as <database_principal>
    Bu sorguyu yürüttükten sorumlusunun izni vermek için kendi sağ türetir içinden asıl adı belirtir.

  • Database_user
    Veritabanı kullanıcı belirtir.

  • Database_role
    Veritabanı rolü belirtir.

  • Application_role
    Uygulama rolü belirtir.

  • Database_user_mapped_to_Windows_User
    Bir Windows kullanıcısı eşlenen veritabanı kullanıcı belirtir.

  • Database_user_mapped_to_Windows_Group
    Bir Windows grubu eşlenen veritabanı kullanıcı belirtir.

  • Database_user_mapped_to_certificate
    Sertifika eşlenen veritabanı kullanıcı belirtir.

  • Database_user_mapped_to_asymmetric_key
    Bir asimetrik anahtar eşlenen veritabanı kullanıcı belirtir.

  • Database_user_with_no_login
    Veritabanı kullanıcı ile ilgili hiçbir sunucu düzeyinde asıl adı belirtir.

Açıklamalar

Önemli notÖnemli

Bazı durumlarda alter ve referans izinleri birleşimi grantee veri görüntülemek veya yetkisiz işlevler yürütmek izin verebilir. Örneğin: tablo üzerinde alter izni ve işlev başvuru izni olan bir kullanıcı bir işlev hesaplanmış bir sütun oluşturabilir ve bu idam. Bu durumda kullanıcı, hesaplanmış bir sütun üzerinde select izni de gerekir.

Nesneler hakkında bilgi çeşitli katalog görünümlerinde görülebilir. Daha fazla bilgi için, bkz. Nesne Kataloğu görünümleri (Transact-sql).

Bir şema izinleri hiyerarşisindeki alt üst olan şema tarafından bulunan düzey güvenilir bir nesnedir. Bir nesne üzerinde verilebilecek en belirli ve sınırlı izinleri tarafından implication dahil daha genel izinleri ile birlikte aşağıdaki tabloda listelenir.

Nesne izni

Nesne izni tarafından açık

Şema izni tarafından açık

ALTER

DENETİM

ALTER

DENETİM

DENETİM

DENETİM

DELETE

DENETİM

DELETE

YÜRÜTME

DENETİM

YÜRÜTME

EKLE

DENETİM

EKLE

RECEIVE

DENETİM

DENETİM

REFERANSLAR

DENETİM

REFERANSLAR

SEÇİN

RECEIVE

SEÇİN

SAHİPLİK AL

DENETİM

DENETİM

GÜNCELLEŞTİRME

DENETİM

GÜNCELLEŞTİRME

GÖRÜNÜMÜ DEĞİŞTİR İZLEME

DENETİM

GÖRÜNÜMÜ DEĞİŞTİR İZLEME

VIEW DEFINITION

DENETİM

VIEW DEFINITION

İzinler

Grantor (veya as seçeneği ile belirtilen anapara) OPTION izni kendisini ya da verilen izni da anlaşılacağı daha yüksek bir izin olması gerekir.

as seçeneği kullanıyorsanız, aşağıdaki ek gereksinimler Uygula.

AS

Ek izin gerekli

Veritabanı kullanıcı

Kullanıcı, üyelik özelliklerini Al izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Bir Windows oturumu açma eşlenen veritabanı kullanıcı

Kullanıcı, üyelik özelliklerini Al izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Bir Windows grubu eşlenen veritabanı kullanıcı

Windows Grup üyeliği üyelik db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Sertifika eşlenen veritabanı kullanıcı

Üyelik db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Bir asimetrik anahtar eşlenen veritabanı kullanıcı

Üyelik db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Herhangi bir sunucu asıl adı eşlenen veritabanı kullanıcı

Kullanıcı, üyelik özelliklerini Al izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Veritabanı rolü

Rol üyeliği alter izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Uygulama rolü

Rol üyeliği alter izni db_securityadminsabit veritabanı rolü, üyelik db_ownersabit veritabanı rolü veya üyelik sysadminsunucu rolü.

Örnekler

A.Bir tablo üzerinde select izni verme

Aşağıdaki örnek SELECTizni ver RosaQdMtablo Person.Addressde AdventureWorks2012veritabanı.

USE AdventureWorks2012;
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO

USE AdventureWorks2012;
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO

B.Saklı yordam üzerinde execute izni verme

Aşağıdaki örnek EXECUTEsaklı yordam HumanResources.uspUpdateEmployeeHireInfoadı verilen bir uygulama rol Recruiting11.

USE AdventureWorks2012; 
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
    TO Recruiting11;
GO 

USE AdventureWorks2012; 
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
    TO Recruiting11;
GO 

C.grant OPTION görünümüyle başvurular izni verme

Aşağıdaki örnek REFERENCESsütun izni BusinessEntityIDgörünümünde HumanResources.vEmployeekullanıcıya Wanidaile GRANT OPTION.

USE AdventureWorks2012;
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee 
    TO Wanida WITH GRANT OPTION;
GO

USE AdventureWorks2012;
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee 
    TO Wanida WITH GRANT OPTION;
GO

D.Nesne tümcecik kullanmadan tablo üzerinde select izni verme

Aşağıdaki örnek SELECTizni ver RosaQdMtablo Person.Addressde AdventureWorks2012veritabanı.

USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO RosaQdM;
GO

USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO RosaQdM;
GO

E.Bir etki alanı hesabı için bir tablo üzerinde select izni verme

Aşağıdaki örnek SELECTizni ver AdventureWorks2012\RosaQdMtablo Person.Addressde AdventureWorks2012veritabanı.

USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO [AdventureWorks2012\RosaQdM];
GO

USE AdventureWorks2012;
GRANT SELECT ON Person.Address TO [AdventureWorks2012\RosaQdM];
GO

F.Bir rolü bir yordam üzerinde execute izni verme

Aşağıdaki örnek bir rolü oluşturur ve sonra hibe EXECUTEyordam rolü için izin uspGetBillOfMaterialsde AdventureWorks2012veritabanı.

USE AdventureWorks2012;
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO

USE AdventureWorks2012;
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO

Ayrıca bkz.

Başvuru

Nesne izinleri (Transact-sql) deny

revoke nesne izinleri (Transact-sql)

Nesne Kataloğu görünümleri (Transact-sql)

sys.fn_builtin_permissionsilişkili (Transact-sql)

has_perms_by_name (Transact-sql)

sys.fn_my_permissions (Transact-sql)

Kavramlar

Izinler (veritabanı altyapısı)

Sorumluları (veritabanı altyapısı)

Securables