İngilizce dilinde oku

Aracılığıyla paylaş


İzinler: GRANT, DENY, REVOKE

Şunlar için geçerlidir:Azure Synapse AnalyticsAnalytics Platform Sistemi (PDW)Microsoft FabricWarehouse'da SQL analiz uç noktası

Güvenlik sorumlusuna (veritabanı, tablo, görünüm vb.) izin vermek veya reddetmek için GRANT ve DENY deyimlerini kullanın (UPDATEgibi). İzin verme veya reddetmeyi kaldırmak için REVOKE kullanın.

Oturum açma işlemlerine sunucu düzeyi izinleri uygulanır. Veritabanı düzeyi izinleri 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 var olan GRANT veya DENY izinlerini kaldırır.

Transact-SQL söz dizimi kuralları

Sözdizimi

syntaxsql
-- 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şken

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

ON [ <class_type> :: ] güvenliği sağlanabilirON yan tümcesi, izinleri vermek, reddetmek veya iptal etmek için güvenli hale getirilebilir parametreyi açıklar.

<class_type> Güvenli hale getirilebilir sınıf türü. Bu LOGIN, DATABASE, OBJECT, SCHEMA, ROLEveya USERolabilir. SERVERclass_typeizinler de verilebilir, ancak SERVER bu izinler için belirtilmez. DATABASE, izin DATABASE sözcüğünü içerdiğinde belirtilmez (örneğin, ALTER ANY DATABASE). hiçbir class_type belirtilmediğinde ve izin türü sunucu veya veritabanı sınıfıyla kısıtlanmadığında, sınıfın OBJECTolduğu varsayılır.

güvenli hale getirilebilir
İ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 sorumlu [ ,...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, DENYveya REVOKEile kullanılabilir.

GRANT SEÇENEĞI ILE
Verilene, belirtilen izni diğer sorumlulara verme yetkisinin de verileceğini gösterir.

ÇAĞLAYAN
Belirtilen sorumluya ve sorumlunun izin verdiği diğer tüm sorumlulara iznin reddedildiğini veya iptal edildiğini gösterir. Sorumlu, GRANT OPTIONiznine 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, vereninWITH 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. CONTROL izni olan sorumlular, bu güvenli hale getirilebilir öğe üzerinde izin verebilir. db_owner ve db_securityadmin sabit veritabanı rollerinin üyeleri veritabanında herhangi bir izin verebilir.

Genel Açıklamalar

Bir sorumluya yönelik izinleri reddetmek veya iptal etmek, yetkilendirmeyi geçmiş ve şu anda ç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 üyelik sağlar.

Bazı deyimler birden çok izin gerektirir. Örneğin, tablo oluşturmak için veritabanında CREATE TABLE izinleri ve tabloyu içerecek tablonun 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 veya DENY deyimi tarafından bir 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 devraldığı 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 sahip olarak veya tablo üzerinde CONTROL izni devralınabilir.

Sahiplik Zinciri

Birden çok veritabanı nesnesi birbirine sırayla eriştiğinde, dizisizinciri olarak bilinir. Bu tür zincirler bağımsız olarak mevcut olmasa da, SQL Server bir zincirdeki bağlantıları geçtiğinde, SQL Server bileşenlerdeki nesneler üzerindeki izinleri nesnelere ayrı olarak erişiyorsa 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 Öğreticisi: Sahiplik Zincirleri ve Bağlam Değiştirme.

İzin Listesi

Sunucu Düzeyi İzinleri

Oturum açma bilgilerinden sunucu düzeyinde izinler verilebilir, reddedilebilir ve iptal edilebilir.

sunuculara uygulanan izinler

  • CONTROL SERVER

  • TOPLU İŞLEMLERI YÖNETME

  • TÜM BAĞLANTıLARı 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 uygulanan İzinleri

  • OTURUM AÇMA DENETIMI

  • OTURUM AÇMADA ALTER

  • OTURUM AÇMADA KIMLIĞINE 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

  • KONTROL

  • DEĞİŞTİRMEK

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

Kullanıcılar dışındaki tüm veritabanı sınıfları için geçerli olan izinler

  • SAHIPLIK ALMA

yalnızca veritabanlarına uygulanan İzinleri

  • 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

  • YORDAM OLUŞTURMA

  • ROL OLUŞTURMA

  • ŞEMA OLUŞTURMA

  • TABLO OLUŞTUR

  • GÖRÜNÜM OLUŞTUR

  • SHOWPLAN

Yalnızca kullanıcılara uygulanan izinler

  • TAKLİT

veritabanlarına, şemalara ve nesnelere uygulanan İzinleri

  • DEĞİŞTİRMEK

  • SİLMEK

  • YÜRÜTMEK

  • SOKMAK

  • SEÇMEK

  • GÜNCELLEŞTİRMEK

  • BAŞVURU

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

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 genel sunucu rolünün üyeleridir ve genelkaldı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, DENYve 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, DENYve REVOKE deyimlerinin sa oturum açma üzerinde hiçbir etkisi yoktur. sa oturum açma bilgileri yeniden adlandırılamaz.

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

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

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

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

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

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

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

SQL
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.

SQL
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.

SQL
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.

SQL
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, rol üyeliği gibi başka bir örtük izin aracılığıyla herhangi bir tablodan veri seçebilir.

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

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

OBJECT bir izin deyimi için 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.

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