İzinler: GRANT, DENY, REVOKE

Şunlar için geçerlidir:Microsoft Fabric'te MicrosoftFabricAmbarı'ndaAzure Synapse Analytics Analytics Platform Sistemi (PDW)SQL Uç Noktası

Güvenlik sorumlusuna (bir oturum açma, veritabanı kullanıcısı veya veritabanı rolü) güvenli hale getirilebilir (veritabanı, tablo, görünüm vb.) üzerinde izin vermek veya reddetmek için GRANT ve DENY deyimlerini kullanın. İzin verme veya reddetmeyi kaldırmak için REVOKE kullanın.

Oturum açma bilgilerine sunucu düzeyi izinleri uygulanır. Veritabanı düzeyinde izinler veritabanı kullanıcılarına ve veritabanı rollerine uygulanır.

Hangi izinlerin verildiğini ve reddedildiğini görmek için sys.server_permissions ve sys.database_permissions görünümlerini sorgular. Bir güvenlik sorumlusuna açıkça verilmeyen veya reddedilmeyen izinler, izinleri olan bir rolde üyelik sahibi olarak devralınabilir. Sabit veritabanı rollerinin izinleri değiştirilemez ve sys.server_permissions ve sys.database_permissions görünümlerinde görünmez.

  • GRANT açıkça bir veya daha fazla izin verir.

  • DENY , sorumlunun bir veya daha fazla izine sahip olmasını açıkça reddeder.

  • REVOKE , mevcut GRANT veya DENY izinlerini kaldırır.

Transact-SQL söz dizimi kuralları

Söz dizimi

-- Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
GRANT   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    TO principal [ ,...n ]  
    [ WITH GRANT OPTION ]  
[;]  
  
DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
REVOKE   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Bağımsız değişkenler

<permission>[ ,... n ]
Vermek, reddetmek veya iptal etmek için bir veya daha fazla izin.

ON [ <class_type> :: ] güvenli hale getirilebilirON yan tümcesi izinleri vermek, reddetmek veya iptal etmek için güvenli kılınabilir parametreyi açıklar.

<> class_type Güvenliği sağlanabilir sınıf türü. Bu OTURUM AÇMA, VERITABANı, NESNE, ŞEMA, ROL veya KULLANıCı olabilir. ayrıca SERVERclass_type izinler de verilebilir, ancak bu izinler için SUNUCU belirtilmez. İzin DATABASE sözcüğünü içerdiğinde DATABASE belirtilmez (örneğin ALTER ANY DATABASE). hiçbir class_type belirtilmediğinde ve izin türü sunucu veya veritabanı sınıfıyla sınırlı olmadığında, sınıfın OBJECT olduğu varsayılır.

Güvenilir
İzinlerin verileceği, reddedileceği veya iptal edildiği oturum açma, veritabanı, tablo, görünüm, şema, yordam, rol veya kullanıcının adı. Nesne adı , Transact-SQL söz dizimi kurallarında açıklanan üç bölümlü adlandırma kurallarıyla belirtilebilir.

TO sorumlusu [ ,... n ]
İzin verilen, reddedilen veya iptal edilen bir veya daha fazla sorumlu. Sorumlu, oturum açma, veritabanı kullanıcısı veya veritabanı rolünün adıdır.

FROM sorumlusu [ ,... n ]
İzinleri iptal etmek için bir veya daha fazla sorumlu. Sorumlu, oturum açma, veritabanı kullanıcısı veya veritabanı rolünün adıdır. FROM yalnızca REVOKE deyimiyle kullanılabilir. TOGRANT, DENY veya REVOKE ile kullanılabilir.

GRANT SEÇENEĞIYLE
Verilene ayrıca diğer sorumlulara belirtilen izni verme olanağının da verileceğini gösterir.

CASCADE
Belirtilen sorumluya ve sorumlunun izin verdiği diğer tüm sorumlulara iznin reddedildiğini veya iptal edildiğini gösterir. Sorumlu GRANT OPTION iznine sahip olduğunda gereklidir.

IÇIN VERME SEÇENEĞI
Belirtilen izni verme özelliğinin iptal edileceğini gösterir. Bu, CASCADE bağımsız değişkenini kullanırken gereklidir.

Önemli

Sorumlu GRANT seçeneği olmadan belirtilen izne sahipse, iznin kendisi iptal edilir.

İzinler

İzin vermek için, verenin WITH GRANT OPTION iznine sahip olması veya verilen izni ima eden daha yüksek bir izne sahip olması gerekir. Nesne sahipleri sahip oldukları nesneler üzerinde izin verebilir. Bir güvenli hale getirilebilir üzerinde CONTROL iznine sahip sorumlular, bu güvenli hale getirilebilir öğe üzerinde izin verebilir. db_owner ve db_securityadmin sabit veritabanı rollerinin üyeleri veritabanındaki tüm izinleri verebilir.

Genel Açıklamalar

Bir sorumluya yönelik izinleri reddetmek veya iptal etmek, yetkilendirmeyi geçmiş ve çalışmakta olan istekleri etkilemez. Erişimi hemen kısıtlamak için etkin istekleri iptal etmeniz veya geçerli oturumları sonlandırmanız gerekir.

Not

Sabit sunucu rollerinin çoğu bu sürümde kullanılamaz. Bunun yerine kullanıcı tanımlı veritabanı rollerini kullanın. Oturum açma bilgileri sysadmin sabit sunucu rolüne eklenemez. CONTROL SERVER izninin verilmesi sysadmin sabit sunucu rolünde yaklaşık üyeliktir.

Bazı deyimler birden çok izin gerektirir. Örneğin, tablo oluşturmak için veritabanında CREATE TABLE izinleri ve tabloyu içerecek tablo için ALTER SCHEMA izni gerekir.

Analiz Platformu Sistemi (PDW) bazen kullanıcı eylemlerini işlem düğümlerine dağıtmak için saklı yordamlar yürütür. Bu nedenle, veritabanının tamamı için yürütme izni reddedilemez. (Örneğin DENY EXECUTE ON DATABASE::<name> TO <user>; başarısız olur.) Geçici bir çözüm olarak, kullanıcı şemalarına veya belirli nesnelere (yordamlar) yönelik yürütme iznini reddedin.

Microsoft Fabric'te şu anda CREATE USER açıkça yürütülemez. GRANT veya DENY yürütülürken kullanıcı otomatik olarak oluşturulur.

Microsoft Fabric'te sunucu düzeyinde izinler yönetilemez.

Örtük ve Açık İzinler

Açık izin, GRANT veyaDENY deyimi tarafından sorumluya verilen GRANT veya DENY iznidir.

Örtük izin, bir sorumluya (oturum açma, kullanıcı veya veritabanı rolü) başka bir veritabanı rolünden devralınan GRANT veya DENY iznidir.

Örtük izin, bir kapsayan veya üst izinden de devralınabilir. Örneğin, bir tablodaki UPDATE izni, tabloyu içeren şemada UPDATE iznine veya tabloda CONTROL iznine sahip olarak devralınır.

Sahiplik Zinciri

Birden çok veritabanı nesnesi birbirine sırayla eriştiğinde, dizi zincir olarak bilinir. Bu tür zincirler bağımsız olarak mevcut olmasa da, SQL Server bir zincirdeki bağlantılardan geçtiğinde, SQL Server bileşenlerdeki nesneler üzerindeki izinleri nesnelere ayrı olarak eriştiğinde olduğundan farklı değerlendirir. Sahiplik zincirinin güvenliği yönetme açısından önemli etkileri vardır. Sahiplik zincirleri hakkında daha fazla bilgi için bkz . Sahiplik Zincirleri ve Öğretici: Sahiplik Zincirleri ve Bağlam Değiştirme.

İzin Listesi

Sunucu Düzeyi İzinleri

Oturum açma işlemleri için sunucu düzeyinde izinler verilebilir, reddedilebilir ve iptal edilebilir.

Sunucular için geçerli olan izinler

  • CONTROL SERVER

  • TOPLU İŞLEMLERI YÖNETME

  • HERHANGI BIR BAĞLANTıYı DEĞIŞTIRME

  • TÜM VERITABANLARıNı DEĞIŞTIRME

  • HERHANGI BIR VERITABANı OLUŞTURMA

  • TÜM DıŞ VERI KAYNAKLARıNı DEĞIŞTIRME

  • TÜM DıŞ DOSYA BIÇIMLERINI DEĞIŞTIRME

  • TÜM OTURUM AÇMA BILGILERINI DEĞIŞTIRME

  • ALTER SERVER STATE

  • SQL'I BAĞLAMA

  • HERHANGI BIR TANıMı GÖRÜNTÜLEME

  • TÜM VERITABANLARıNı GÖRÜNTÜLEME

  • SUNUCU DURUMUNU GÖRÜNTÜLE

Oturum açma işlemleri için geçerli olan izinler

  • OTURUM AÇMA DENETIMI

  • OTURUM AÇMADA ALTER

  • OTURUM AÇMADA KIMLIĞE BÜRÜN

  • TANıMı GÖRÜNTÜLE

Veritabanı Düzeyi İzinleri

Veritabanı düzeyinde izinler veritabanı kullanıcılarından ve kullanıcı tanımlı veritabanı rollerinden verilebilir, reddedilebilir ve iptal edilebilir.

Tüm veritabanı sınıflarına uygulanan izinler

  • DENETLE

  • ALTER

  • TANıMı GÖRÜNTÜLE

Kullanıcılar dışındaki tüm veritabanı sınıflarına uygulanan izinler

  • SAHİPLİk ALA

Yalnızca veritabanları için geçerli olan izinler

  • TÜM VERITABANLARıNı DEĞIŞTIRME

  • VERITABANıNDA ALTER

  • TÜM DATASPACE'LERI DEĞIŞTIRME

  • HERHANGI BIR ROLÜ DEĞIŞTIRME

  • TÜM ŞEMALARı DEĞIŞTIRME

  • HERHANGI BIR KULLANıCıYı DEĞIŞTIRME

  • YEDEKLEME VERITABANı

  • VERITABANıNDA BAĞLAN

  • CREATE PROCEDURE

  • ROL OLUŞTURMA

  • ŞEMA OLUŞTURMA

  • CREATE TABLE

  • CREATE VIEW

  • SHOWPLAN

Yalnızca kullanıcılar için geçerli olan izinler

  • TAKLİT

Veritabanlarına, şemalara ve nesnelere uygulanan izinler

  • ALTER

  • DELETE

  • YÜRÜT

  • INSERT

  • SELECT

  • UPDATE

  • BAŞVURULAR

İzin türlerinin tanımı için bkz. İzinler (Veritabanı Altyapısı).

İzin grafiği

Tüm izinler bu posterde grafik olarak gösterilir. bu, iç içe yerleştirilmiş izin hiyerarşisini görmenin en kolay yoludur. Örneğin , ALTER ON LOGIN izni kendi başına verilebilir, ancak bir oturum açma işlemine söz konusu oturum açmada CONTROL izni verildiğinde veya bir oturum açma işlemine ALTER ANY LOGIN izni verildiğinde de dahil edilir.

APS güvenlik izinleri

Varsayılan İzinler

Aşağıdaki listede varsayılan izinler açıklanmaktadır:

  • CREATE LOGIN deyimi kullanılarak bir oturum açma oluşturulduğunda yeni oturum açma, CONNECT SQL iznini alır.

  • Tüm oturum açma bilgileri ortak sunucu rolünün üyeleridir ve ortak sunucudan kaldırılamaz.

  • Veritabanı kullanıcısı CREATE USER izni kullanılarak oluşturulduğunda, veritabanı kullanıcısı veritabanında CONNECT iznini alır.

  • Genel rol de dahil olmak üzere tüm sorumluların varsayılan olarak açık veya örtük izinleri yoktur.

  • Bir oturum açma veya kullanıcı bir veritabanının veya nesnenin sahibi olduğunda, oturum açma veya kullanıcı her zaman veritabanı veya nesne üzerinde tüm izinlere sahiptir. Sahiplik izinleri değiştirilemez ve açık izinler olarak görünmez. GRANT, DENY ve REVOKE deyimlerinin sahipler üzerinde hiçbir etkisi yoktur.

  • sa oturum açma bilgileri alet üzerinde tüm izinlere sahiptir. Sahiplik izinlerine benzer şekilde , sa izinleri değiştirilemez ve açık izinler olarak görünmez. GRANT, DENY ve REVOKE deyimlerinin sa oturum açma işlemi üzerinde hiçbir etkisi yoktur. sa oturum açma adı değiştirilemez.

  • USE deyimi izin gerektirmez. Tüm sorumlular herhangi bir veritabanında USE deyimini çalıştırabilir.

Örnekler: Azure Synapse Analiz ve Analiz Platformu Sistemi (PDW)

A. Oturum açma bilgilerine sunucu düzeyinde izin verme

Aşağıdaki iki deyim bir oturum açma için sunucu düzeyinde izin verir.

GRANT CONTROL SERVER TO [Ted];  
GRANT ALTER ANY DATABASE TO Mary;  

B. Oturum açma bilgilerine sunucu düzeyinde izin verme

Aşağıdaki örnek, bir sunucu sorumlusuna (başka bir oturum açma) oturum açma işlemi üzerinde sunucu düzeyinde izin verir.

GRANT  VIEW DEFINITION ON LOGIN::Ted TO Mary;  

C. Kullanıcıya veritabanı düzeyinde izin verme

Aşağıdaki örnek, bir kullanıcı üzerinde veritabanı sorumlusuna (başka bir kullanıcı) veritabanı düzeyinde izin verir.

GRANT VIEW DEFINITION ON USER::[Ted] TO Mary;  

D. Şema izni verme, reddetme ve iptal etme

Aşağıdaki GRANT deyimi Yuen'e dbo şemasındaki herhangi bir tablodan veya görünümden veri seçme olanağı verir.

GRANT SELECT ON SCHEMA::dbo TO [Yuen];  

Aşağıdaki DENY deyimi Yuen'in dbo şemasındaki herhangi bir tablodan veya görünümden veri seçmesini engeller. Yuen, rol üyeliği gibi başka bir şekilde izni olsa bile verileri okuyamaz.

DENY SELECT ON SCHEMA::dbo TO [Yuen];  

Aşağıdaki REVOKE deyimi DENY iznini kaldırır. Şimdi Yuen'in açık izinleri nötr. Yuen, herhangi bir tablodan rol üyeliği gibi başka bir örtük izin aracılığıyla veri seçebilir.

REVOKE SELECT ON SCHEMA::dbo TO [Yuen];  

E. İsteğe bağlı OBJECT:: yan tümcesini gösterme

OBJECT bir izin deyiminin varsayılan sınıfı olduğundan, aşağıdaki iki deyim aynıdır. OBJECT:: yan tümcesi isteğe bağlıdır.

GRANT UPDATE ON OBJECT::dbo.StatusTable TO [Ted];  
GRANT UPDATE ON dbo.StatusTable TO [Ted];