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_owner üyeleri 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.
public rolü dahil tüm rollerin CONNECT izinleri vardır. 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 | ALTER ANY APPLICATION ROLECREATE SCHEMAALTER ANY ROLEVIEW DEFINITION |
| db_accessadmin | ALTER ANY USERCREATE SCHEMACREATE USER |
| db_backupoperator | BACKUP DATABASEBACKUP LOGCHECKPOINT |
| db_ddladmin | ALTER ANY ASSEMBLYALTER ANY ASYMMETRIC KEYALTER ANY CERTIFICATEALTER ANY CONTRACTALTER ANY DATABASE DDL TRIGGERALTER ANY DATABASE EVENT NOTIFICATIONALTER ANY DATASPACEALTER ANY EXTERNAL LIBRARYALTER ANY FULLTEXT CATALOGALTER ANY MESSAGE TYPEALTER ANY REMOTE SERVICE BINDINGALTER ANY ROUTEALTER ANY SCHEMAALTER ANY SERVICEALTER ANY SYMMETRIC KEYCHECKPOINTCREATE AGGREGATECREATE ASSEMBLYCREATE ASYMMETRIC KEYCREATE CERTIFICATECREATE CONTRACTCREATE DATABASE DDL EVENT NOTIFICATIONCREATE DEFAULTCREATE EXTERNAL LIBRARYCREATE FULLTEXT CATALOGCREATE FUNCTIONCREATE MESSAGE TYPECREATE PROCEDURECREATE QUEUECREATE REMOTE SERVICE BINDINGCREATE ROUTECREATE RULECREATE SCHEMACREATE SERVICECREATE SYMMETRIC KEYCREATE SYNONYMCREATE TABLECREATE TYPECREATE VIEWCREATE XML SCHEMA COLLECTIONREFERENCESŞunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümler: ALTER ANY EXTERNAL LANGUAGECREATE EXTERNAL LANGUAGEŞunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümler: ALTER ANY EXTERNAL DATA SOURCEALTER ANY EXTERNAL FILE FORMATALTER ANY EXTERNAL JOBALTER ANY EXTERNAL STREAMALTER LEDGERENABLE LEDGER |
| db_datareader | GRANT SELECT ON DATABASE::<database-name> |
| db_denydatareader | DENY SELECT ON DATABASE::<database-name> |
| db_datawriter | GRANT INSERT ON DATABASE::<database-name>GRANT UPDATE ON DATABASE::<database-name>GRANT DELETE ON DATABASE::<database-name> |
| db_denydatawriter | DENY INSERT ON DATABASE::<database-name>DENY UPDATE ON DATABASE::<database-name>DENY DELETE ON DATABASE::<database-name> |
| public | Kamu veritabanı rolünde veritabanı düzeyinde izin yoktur. Ancak, bazı veritabanı izinleri varsayılan olarak vardır. Özellikle, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION, VIEW ANY COLUMN MASTER KEY DEFINITIONve SELECT izinleri birçok ayrı sistem tablosu üzerinde. 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ı (eski 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ı üzerinde 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