Aracılığıyla paylaş


Veritabanı düzeyinde roller

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

Veritabanlarınızdaki izinleri kolayca yönetmek için SQL Server, diğer sorumluları gruplandıran güvenlik sorumluları olan birkaç rol sağlar. Windows işletim sistemindeki gruplara benzerler. Veritabanı düzeyindeki rollerin izin kapsamı veritabanı geneline yayılır.

Veritabanı rolüne kullanıcı eklemek ve kaldırmak için ALTER ROLEADD MEMBERve DROP MEMBER seçeneklerini kullanın. Analiz Platformu Sistemi (PDW) ve Azure Synapse Analytics kullanımını ALTER ROLEdesteklemez. Bunun yerine eski sp_addrolemember ve sp_droprolemember yordamlarını kullanın.

İki tür veritabanı düzeyinde rol vardır: veritabanında önceden tanımlanmış sabit veritabanı rolleri ve oluşturabileceğiniz kullanıcı tanımlı veritabanı rolleri .

Sabit veritabanı rolleri veritabanı düzeyinde tanımlanır ve her veritabanında bulunur. db_owner veritabanı rolünün üyeleri sabit veritabanı rolü üyeliğini yönetebilir. Veritabanında msdb bazı özel amaçlı veritabanı rolleri de vardır.

Veritabanı düzeyindeki rollere herhangi bir veritabanı hesabını ve diğer SQL Server rollerini ekleyebilirsiniz.

Tip

Kullanıcı tanımlı veritabanı rollerini sabit rollerin üyesi olarak eklemeyin. Bu, istenmeyen ayrıcalık yükseltmesini etkinleştirebilir.

Kullanıcı tanımlı veritabanı rollerinin izinleri GRANT, DENY ve REVOKE deyimleri kullanılarak özelleştirilebilir. Daha fazla bilgi için bkz. İzinler (Veritabanı Altyapısı).

Tüm izinlerin listesi için Bkz. Veritabanı Altyapısı İzinleri posteri. Veritabanı rollerine sunucu düzeyinde izinler verilemiyor. Oturum açma bilgileri ve diğer sunucu düzeyindeki sorumlular (sunucu rolleri gibi) veritabanı rollerine eklenemez. SQL Server'da sunucu düzeyinde güvenlik için bunun yerine sunucu rollerini kullanın. Azure SQL Veritabanı ve Azure Synapse Analytics'teki roller aracılığıyla sunucu düzeyinde izinler verilemiyor.

Veritabanı rolleri düzeltildi

Aşağıdaki tabloda sabit veritabanı rolleri ve bunların özellikleri gösterilmektedir. Bu roller tüm veritabanlarında bulunur. Genel veritabanı rolü dışında, sabit veritabanı rollerine atanan izinler değiştirilemez.

Sabit veritabanı rol adı Description
db_owner db_owner sabit veritabanı rolünün üyeleri veritabanındaki tüm yapılandırma ve bakım etkinliklerini gerçekleştirebilir ve sql Server'daki veritabanını da DROP gerçekleştirebilir. (SQL Veritabanı ve Azure Synapse'te bazı bakım etkinlikleri sunucu düzeyinde izinler gerektirir ve db_owners tarafından gerçekleştirilemez.)
db_securityadmin db_securityadmin sabit veritabanı rolünün üyeleri yalnızca özel roller için rol üyeliğini değiştirebilir ve izinleri yönetebilir. Bu rolün üyeleri potansiyel olarak ayrıcalıklarını yükseltebilir ve eylemleri izlenmelidir.
db_accessadmin db_accessadmin sabit veritabanı rolünün üyeleri Windows oturum açma bilgileri, Windows grupları ve SQL Server oturum açma işlemleri için veritabanına erişim ekleyebilir veya bu erişimi kaldırabilir.
db_backupoperator db_backupoperator sabit veritabanı rolünün üyeleri veritabanını yedekleyebilir.
db_ddladmin db_ddladmin sabit veritabanı rolünün üyeleri veritabanındaki herhangi bir Veri Tanımı Dili (DDL) komutunu çalıştırabilir. Bu rolün üyeleri, yüksek ayrıcalıklar altında yürütülebilecek ve eylemlerinin izlenmesi gereken kodu işleyerek potansiyel olarak ayrıcalıklarını yükseltebilir.
db_datawriter Db_datawriter sabit veritabanı rolünün üyeleri tüm kullanıcı tablolarında veri ekleyebilir, silebilir veya değiştirebilir. Çoğu kullanım örneğinde, bu rol değiştirilecek verilerin okunmasına izin vermek için db_datareader üyelikle birleştirilir.
db_datareader db_datareader sabit veritabanı rolünün üyeleri tüm kullanıcı tablolarından ve görünümlerinden tüm verileri okuyabilir. Kullanıcı nesneleri sys ve INFORMATION_SCHEMA dışında herhangi bir şemada bulunabilir.
db_denydatawriter db_denydatawriter sabit veritabanı rolünün üyeleri, veritabanı içindeki kullanıcı tablolarında veri ekleyemez, değiştiremez veya silemez.
db_denydatareader db_denydatareader sabit veritabanı rolünün üyeleri, veritabanı içindeki kullanıcı tablolarından ve görünümlerinden hiçbir veri okuyamaz. Bu rolün üyeleri, sistem görünümlerini görüntüleme gibi veritabanı ve nesneleri hakkındaki meta verileri de okuyamaz.

Sabit veritabanı rollerine atanan izinler değiştirilemez. Tüm roller (rol public dahil) CONNECT iznine sahiptir. Aşağıdaki şekilde, sabit veritabanı rollerine atanan izinler gösterilmektedir:

Rol adı Permissions
db_owner CONTROL DATABASE: Veritabanındaki tüm izinlere sahiptir.
db_securityadmin TÜM UYGULAMA ROLLERINI DEĞIŞTIRME
ŞEMA OLUŞTURMA
HERHANGI BIR ROLÜ DEĞIŞTIRME
TANıMı GÖRÜNTÜLE
db_accessadmin KULLANICIYI DEĞİŞTİR
ŞEMA OLUŞTURMA
KULLANICI OLUŞTUR
db_backupoperator YEDEKLEME VERITABANı
YEDEKLEME GÜNLÜĞÜ
CHECKPOINT
db_ddladmin HERHANGİ BİR BİRLEŞTİRMEYİ DEĞİŞTİRME
HERHANGI BIR ASIMETRIK ANAHTARı DEĞIŞTIRME
HERHANGI BIR SERTIFIKAYı DEĞIŞTIRME
HERHANGI BIR SÖZLEŞMEYI DEĞIŞTIRME
TÜM VERITABANı DDL TETIKLEYICILERINI DEĞIŞTIRME
HERHANGI BIR VERITABANı OLAY BILDIRIMINI DEĞIŞTIRME
TÜM DATASPACE'LERI DEĞIŞTIRME
TÜM DıŞ KITAPLıKLARı DEĞIŞTIRME
TÜM TAM METIN KATALOĞUNU DEĞIŞTIRME
HERHANGI BIR ILETI TÜRÜNÜ DEĞIŞTIRME
UZAK HIZMET BAĞLAMALARıNı DEĞIŞTIRME
HER YOLU DEĞIŞTIRME
TÜM ŞEMALARı DEĞIŞTIRME
HİzMETİ DEĞIŞTIRME
SIMETRIK ANAHTARı DEĞIŞTIRME
CHECKPOINT
TOPLAMA OLUŞTURMA
MONTAJ OLUŞTUR
ASIMETRIK ANAHTAR OLUŞTURMA
SERTIFIKA OLUŞTUR
SÖZLEŞME OLUŞTURMA
VERITABANı DDL OLAY BILDIRIMI OLUŞTURMA
VARSAYıLAN OLUŞTUR
DıŞ KITAPLıK OLUŞTURMA
TAM METIN KATALOĞU OLUŞTURMA
Fonksiyon Oluştur
İLETI TÜRÜ OLUŞTURMA
İŞLEM OLUŞTUR
KUYRUK OLUŞTURMA
UZAK HIZMET BAĞLAMASı OLUŞTURMA
ROTA OLUŞTUR
KURAL OLUŞTUR
ŞEMA OLUŞTURMA
HİzMET OLUŞTUR
SIMETRIK ANAHTAR OLUŞTURMA
EŞ ANLAMLı OLUŞTURMA
CREATE TABLE
TÜR OLUŞTUR
GÖRÜNÜM YARAT
XML ŞEMA KOLEKSIYONU OLUŞTURMA
BAŞVURU

Şunlar için geçerlidir: SQL Server 2019 ve üzeri
TÜM DıŞ DILLERI DEĞIŞTIRME
DıŞ DIL OLUŞTURMA

Şunlar için geçerlidir: SQL Server 2022 ve üzeri
TÜM DıŞ VERI KAYNAKLARıNı DEĞIŞTIRME
TÜM DıŞ DOSYA BIÇIMLERINI DEĞIŞTIRME
HARICI HERHANGİ BİR GÖREVİ DEĞİŞTİR
TÜM DıŞ AKıŞLARı DEĞIŞTIRME
DEFTERİ DEĞİŞTİR
DEFTERİ ETKİNLEŞTİR
db_datareader VERITABANıNDA SEÇME IZNI VER::<database-name>
db_denydatareader VERITABANıNDA SEÇMEYI REDDET::<database-name>
db_datawriter VERITABANıNDA EKLEME VERME::<database-name>
VERITABANıNDA GÜNCELLEŞTIRME VERME::<database-name>
VERITABANıNDA SILME IZNI VER::<database-name>
db_denydatawriter VERITABANıNDA EKLEMEYI REDDET::<database-name>
VERITABANıNDA GÜNCELLEŞTIRMEYI REDDET::<database-name>
VERITABANıNDA SILMEYI REDDET::<database-name>
public Kamu veritabanı rolünde veritabanı düzeyinde izin yoktur. Ancak, bazı veritabanı izinleri varsayılan olarak vardır. Özellikle aşağıdakiler: HERHANGİ BİR SÜTUN ŞİFRELEME ANAHTAR TANIMI GÖRÜNTÜLEME, HERHANGİ BİR SÜTUN ANA ANAHTAR TANIMI GÖRÜNTÜLEME ve birçok ayrı sistem tablosunda SELECT izni. Bu izinler iptal edilebilir.

Azure SQL Veritabanı ve Azure Synapse için özel roller

Bu veritabanı rolleri yalnızca sanal master veritabanında bulunur. İzinleri, master içinde gerçekleştirilen eylemlerle sınırlıdır. Bu rollere yalnızca içindeki master veritabanı kullanıcıları eklenebilir. Oturum açma bilgileri bu rollere eklenemez, ancak kullanıcılar oturum açma bilgilerine göre oluşturulabilir ve ardından bu kullanıcılar rollere eklenebilir. İçindeki master dahil edilmiş veritabanı kullanıcıları da bu rollere eklenebilir. Ancak dbmanager rolüne master eklenen kapsanan veritabanı kullanıcıları yeni veritabanları oluşturmak için kullanılamaz.

Rol adı Description
dbmanager Veritabanları oluşturabilir ve silebilir. Veritabanı oluşturan dbmanager rolünün bir üyesi, bu veritabanının sahibi olur ve bu da kullanıcının bu veritabanına dbo kullanıcısı olarak bağlanmasına olanak tanır. dbo kullanıcısının veritabanındaki tüm veritabanı izinleri vardır. dbmanager rolünün üyelerinin sahip olmadığı veritabanlarına erişme izni olması gerekmez.
db_exporter db_exporter sabit veritabanı rolünün üyeleri tüm veri dışarı aktarma etkinliklerini gerçekleştirebilir. Bu rol aracılığıyla verilen izinler CREATE TABLE, ALTER ANY SCHEMA, ALTER ANY EXTERNAL DATA SOURCE, ALTER ANY EXTERNAL FILE FORMAT.

Şunlar için geçerlidir: Azure Synapse Analytics ayrılmış SQL havuzları (önceki adıyla SQL DW)
loginmanager Sanal master veritabanında oturum açma bilgileri oluşturabilir ve silebilir.

Note

Sunucu düzeyinde sorumlu ve Microsoft Entra yöneticisi (yapılandırıldıysa) herhangi bir rolün üyesi olmak zorunda kalmadan SQL Veritabanı ve Azure Synapse Analytics'teki tüm izinlere sahiptir. Daha fazla bilgi için bkz. SQL Veritabanı, SQL Yönetilen Örneği ve Azure Synapse Analytics'e veritabanı erişimini yetkilendirme.

Bazı veritabanı rolleri Azure SQL veya Azure Synapse için geçerli değildir:

  • db_backupoperator, yedekleme ve geri yükleme T-SQL komutlarının kullanılamaması nedeniyle Azure SQL Veritabanı (Azure SQL Yönetilen Örneği değil) ve Azure Synapse Analytics sunucusuz havuzunda geçerli değildir.

  • db_datawriter ve db_denydatawriter yalnızca dış verileri okuduğundan Azure Synapse Analytics sunucusuz için geçerli değildir.

msdb veritabanındaki roller

Veritabanı msdb , aşağıdaki tabloda gösterilen özel amaçlı rolleri içerir.

msdb rol adı Description
db_ssisadmin
db_ssisoperator
db_ssisltduser
Bu veritabanı rollerinin üyeleri SSIS'yi yönetebilir ve kullanabilir. Önceki bir sürümden yükseltilen SQL Server örnekleri, rolün SSIS yerine Veri Dönüştürme Hizmetleri (DTS) kullanılarak adlandırılmış eski bir sürümünü içerebilir. Daha fazla bilgi için Integration Services Roller (SSIS Hizmeti)'ne bakın.
dc_admin
dc_operator
dc_proxy
Bu veritabanı rollerinin üyeleri veri toplayıcıyı yönetebilir ve kullanabilir. Daha fazla bilgi için bkz. Veri toplama.
PolicyAdministratorRole db_ PolicyAdministratorRole veritabanı rolünün üyeleri, İlke Tabanlı Yönetim ilkeleri ve koşullarında tüm yapılandırma ve bakım etkinliklerini gerçekleştirebilir. Daha fazla bilgi için bkz. İlke Tabanlı Yönetimi Kullanarak Sunucuları Yönetme.
ServerGroupAdministratorRole
ServerGroupReaderRole
Bu veritabanı rollerinin üyeleri kayıtlı sunucu gruplarını yönetebilir ve kullanabilir.
dbm_monitor Veritabanı Yansıtma İzleyicisi'ne ilk veritabanı kaydedildiğinde msdb veritabanında oluşturulur. dbm_monitor rolü, bir sistem yöneticisi kullanıcıları role atayana kadar üyeye sahip değildir.

db_ssisadmin rolünün ve dc_admin rolünün üyeleri ayrıcalıklarını sysadmin'e yükseltebilir. Bu ayrıcalık yükseltmesi, bu rollerin Integration Services paketlerini değiştirebildiğinden ve Integration Services paketleri SQL Server Aracısı'nın sysadmin güvenlik bağlamı kullanılarak SQL Server tarafından yürütülebildiğinden oluşabilir. Bakım planlarını, veri toplama kümelerini ve diğer Integration Services paketlerini çalıştırırken bu ayrıcalık yükseltmesine karşı koruma sağlamak için, sınırlı ayrıcalıklara sahip bir proxy hesabı kullanacak şekilde paketleri çalıştıran SQL Server Agent işlerini yapılandırın veya db_ssisadmin ve dc_admin rollerine yalnızca sysadmin üyeleri ekleyin.

Veritabanı düzeyindeki rollerle çalışma

Aşağıdaki tabloda veritabanı düzeyindeki rollerle çalışmaya yönelik komutlar, görünümler ve işlevler açıklanmaktadır.

Feature Type Description
sp_helpdbfixedrole Metadata Sabit veritabanı rollerinin listesini döndürür.
sp_dbfixedrolepermission Metadata Sabit veritabanı rolünün izinlerini görüntüler.
sp_helprole Metadata Geçerli veritabanındaki roller hakkında bilgi döndürür.
sp_helprolemember Metadata Geçerli veritabanındaki bir rolün üyeleri hakkında bilgi döndürür.
sys.database_role_members Metadata Her veritabanı rolünün her üyesi için bir satır döndürür.
IS_MEMBER Metadata Geçerli kullanıcının belirtilen Microsoft Windows grubunun, Microsoft Entra grubunun veya Microsoft SQL Server veritabanı rolünün üyesi olup olmadığını gösterir.
ROL OLUŞTUR Command Geçerli veritabanında yeni bir veritabanı rolü oluşturur.
ALTER ROLE (Rolü Değiştir) Command Veritabanı rolünün adını veya üyeliğini değiştirir.
ROLÜ BIRAK Command Bir rolü veritabanından kaldırır.
sp_addrole Command Geçerli veritabanında yeni bir veritabanı rolü oluşturur.
sp_droprole Command Mevcut veritabanından bir rol kaldırır.
sp_addrolemember Command Veritabanı kullanıcısını, veritabanı rolünü, Windows oturum açma bilgilerini veya Windows grubunu geçerli veritabanındaki bir veritabanı rolüne ekler. Bunun yerine Analiz Platformu Sistemi (PDW) ve Azure Synapse dışındaki tüm platformlar kullanılmalıdır ALTER ROLE .
sp_droprolemember Command Geçerli veritabanındaki bir SQL Server rolünden güvenlik hesabını kaldırır. Bunun yerine Analiz Platformu Sistemi (PDW) ve Azure Synapse dışındaki tüm platformlar kullanılmalıdır ALTER ROLE .
GRANT Permissions Bir role izin ekler.
DENY Permissions Rol iznini reddeder.
REVOKE Permissions Daha önce verilen veya reddedilen izinleri kaldırır.

Genel veritabanı rolü

Her veritabanı kullanıcısı genel veritabanı rolüne aittir. Bir kullanıcıya güvenlik kapsamında bir nesne üzerinde belirli izinler verilmediğinde veya reddedilmediğinde, kullanıcı bu nesne üzerinde public verilen izinleri alır. Veritabanı kullanıcıları genel rolden kaldırılamaz.

Examples

Bu bölümdeki örneklerde, veritabanı düzeyindeki rollerle çalışma gösterilmektedir.

A. Veritabanı düzeyinde bir role Kullanıcı ekleme

Aşağıdaki örnek, 'Ben' Kullanıcısını sabit veritabanı düzeyi rolüne db_datareaderekler.

ALTER ROLE db_datareader ADD MEMBER Ben;
GO

B. Veritabanı düzeyinde bir rolün üyesi olan tüm veritabanı sorumlularını listeleme

Aşağıdaki ifade herhangi bir veritabanı rolünün tüm üyelerini döndürür.

SELECT roles.principal_id AS RolePrincipalID,
    roles.name AS RolePrincipalName,
    database_role_members.member_principal_id AS MemberPrincipalID,
    members.name AS MemberPrincipalName
FROM sys.database_role_members AS database_role_members
INNER JOIN sys.database_principals AS roles
    ON database_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.database_principals AS members
    ON database_role_members.member_principal_id = members.principal_id;
GO