Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik 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