Aracılığıyla paylaş


Nesne izinleri (Transact-SQL)

Bir tablo, görünüm, tabloizinleri verir-değerli işlev, saklı yordam, genişletilmiş saklı yordam, skaler işlev, toplu işlev, hizmet sıra veya eş.

Konu bağlantısı simgesiTransact-SQL sözdizimi 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
    Şema içeren bir nesne üzerinde verilebilir izni belirtir.İzinler listesi için bu bölümdeki açıklamalar bölümüne bakın.

  • ALL
    Tüm verme tüm olası izin vermez.Tüm verme tüm vermeye eşdeğer ANSI-92 izinleri uygulanabilir belirtilen nesne.Tüm anlamını aşağıdaki gibi değişir:

    Skalar işlev izinleri: YÜRÜTMEK, BAŞVURUYOR.

    Tablo değerli işlev izinleri: DELETE, INSERT, BAŞVURULAR, SELECT, UPDATE.

    Saklı yordam izinleri: YÜRÜTME.

    Tablo izinleri: DELETE, INSERT, BAŞVURULAR, SELECT, UPDATE.

    İzinleri görüntüleme: DELETE, INSERT, BAŞVURULAR, SELECT, UPDATE.

  • AYRICALIKLAR
    İçin dahil ANSI-92 uyumu.Tüm davranışını değiştirmez.

  • column
    Bir tablo, görünüm veya tablo sütun adını belirtir-değerli işlev üzerinde izni.Parantez () gereklidir.Bir sütunyalnızca seçim, başvurular ve güncelleştirme izinleri verilebilir.columnizinleri yan tümce ya da güvenliği sağlanabilir adından sonra belirtilebilir.

    Dikkat notuDikkat

    tablo-düzey verme bir sütunüzerinde -düzey grant öncelikli değildir.Geriye doğru uyumluluk için izinleri hiyerarşisindeki bu tutarsızlık tutulduktan.

  • on [nesne : ] [ schema_name ] . object_name
    İzin verilen nesneyi belirtir.Nesne tümce isteğe bağlıdır, schema_name belirtilir.Nesne deyim kullanılırsa,niteleyici kapsam(:) gereklidir. schema_name Belirtilmezse, varsayılan şemayı kullanılır.schema_name Belirtilen şema kapsamniteleyici ( .) gereklidir.

  • İÇİN <database_principal>
    İzni verilmiş asıl adı belirtir.

  • GRANT SEÇENEĞİ İLE
    Patron da diğer ilkeleri için belirtilmiş izni vermek olanağı verilir 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
    Bir veritabanı kullanıcı belirtir.

  • Database_role
    veritabanı rolübelirtir.

  • Application_role
    Bir 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
    Bir sertifikaeşlenen veritabanı kullanıcı belirtir.

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

  • Database_user_with_no_login
    Hiçbir karşılık gelen sunucudüzey ile asıl veritabanı kullanıcı belirtir.

Açıklamalar

Önemli notÖnemli

Bazı durumlarda alter ve başvuru izinleri birleşimi görüntülemek üzere grantee izin verebilir veri veya yürütmek işlevleri yetkisiz.Örneğin: tablo üzerinde alter iznine ve işlev başvuru izni olan bir kullanıcı, hesaplanmış bir sütun üzerinde bir işlev oluşturun ve bu yürütülebilir.Bu durum da kullanıcının hesaplanmış bir sütunüzerinde select izni de gerekir.

katalog görünümleriçeşitli nesneler hakkındaki bilgileri görülebilir.Daha fazla bilgi için, bkz. Nesne Kataloğu görünümleri (Transact-SQL).

Nesne izinleri sıradüzeni içindeki üst olan şema tarafından bulunan bir şema -düzey güvenliği sağlanabilir ' dir.Bir nesne üzerinde verilebilecek en belirli ve sınırlı izinleri, aşağıdaki tablo, bunların patentlerini tarafından dahil daha genel izinleri ile birlikte listelenir.

Nesne izni

Nesne izni tarafından örtülü

Şema izni tarafından örtülü

ALTER

DENETİM

ALTER

DENETİM

DENETİM

DENETİM

SİL

DENETİM

SİL

YÜRÜTME

DENETİM

YÜRÜTME

EKLE

DENETİM

EKLE

ALMA

DENETİM

DENETİM

BAŞVURULAR

DENETİM

BAŞVURULAR

SEÇİN

ALMA

SEÇİN

SAHİPLİĞİ

DENETİM

DENETİM

GÜNCELLEŞTİRME

DENETİM

GÜNCELLEŞTİRME

GÖRÜNÜM DEĞİŞİKLİK İZLEME

DENETİM

GÖRÜNÜM DEĞİŞİKLİK İZLEME

VIEW DEFINITION

DENETİM

VIEW DEFINITION

İzinler

Grantor (veya as seçeneği ile belirtilen sorumlusunun) izniyle kendisini grant seçeneği ya da verilen izindir anlamına gelir daha yüksek bir izin olması gerekir.

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

AS

Ek izin gerekiyor

Veritabanı kullanıcı

Kullanıcı, üyelik özelliklerini Al izni db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

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

Kullanıcı, üyelik özelliklerini Al izni db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

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

Üyelik Windows Grup üyeliği db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

Bir sertifikaeşlenen veritabanı kullanıcı

Üyelik db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

Bir asimetrik anahtareşlenen veritabanı kullanıcı

Üyelik db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

Herhangi bir sunucu asıl değil eşlenen veritabanı kullanıcı

Kullanıcı, üyelik özelliklerini Al izni db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

Veritabanı rolü

Rol üyeliği üzerinde alter iznine db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

Uygulama rolü

Rol üyeliği üzerinde alter iznine db_securityadmin veritabanı rolü, üyelik sabit db_owner veritabanı rolüveya Üyelik sabit sysadmin sabit sunucu rolü.

Örnekler

A.tabloüzerinde select izni verme

Aşağıdaki örnek verir SELECT izni ver RosaQdM tablo Person.Address , AdventureWorks2008R2 veritabanı.

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

B.saklı yordamüzerinde execute izni verme

Aşağıdaki örnek verir EXECUTE saklı yordamizni HumanResources.uspUpdateEmployeeHireInfo bir uygulama rolü adı verilen Recruiting11.

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

C.grant seçeneği ile bir görünümde başvurular izni verme

Aşağıdaki örnek verir REFERENCES sütunizni BusinessEntityID Görünüm HumanResources.vEmployee kullanıcı için Wanida ile GRANT OPTION.

USE AdventureWorks2008R2;
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 verir SELECT izni ver RosaQdM tablo Person.Address , AdventureWorks2008R2 veritabanı.

USE AdventureWorks2008R2;
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 verir SELECT izni ver AdventureWorks2008R2\RosaQdM tablo Person.Address , AdventureWorks2008R2 veritabanı.

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

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

Aşağıdaki örnek bir rol oluşturur ve ardından EXECUTE yordam rolü izni uspGetBillOfMaterials , AdventureWorks2008R2 veritabanı.

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