İ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.
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];