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 Yönetilen Örneği
SQL Server, bir sunucudaki izinleri yönetmenize yardımcı olmak için sunucu düzeyinde roller sağlar. Bu roller, diğer sorumluları gruplandıran güvenlik sorumlularıdır. Sunucu düzeyindeki roller, izin verme kapsamı açısından sunucu genelindedir. (Roller , Windows işletim sistemindeki gruplara benzer.)
SQL Server 2019 (15.x) ve önceki sürümler dokuz sabit sunucu rolü sağladı. Sabit sunucu rollerine verilen izinleri değiştiremezsiniz ( halka açık hariç). SQL Server 2012(11.x) sürümünden başlayarak, kullanıcı tanımlı sunucu rolleri oluşturabilir ve kullanıcı tanımlı sunucu rollerine sunucu düzeyinde izinler ekleyebilirsiniz.
SQL Server 2022 (16.x), En Az Ayrıcalık İlkesi göz önünde bulundurularak özel olarak tasarlanmış 10 ek sunucu rolü ile sunulur. Bu roller, onları normal kullanıcı tarafından oluşturulan prensillerden ve özel sunucu rollerinden ayıran ön ek ve ##ek eki taşır##MS_. Bu yeni roller, sunucu kapsamı düzeyinde geçerli olan ayrıcalıklar içerir; ancak bu ayrıcalıklar, ##MS_LoginManager## sunucu rolü dışında, tek tek veritabanlarına kadar da devralınabilir.
Şirket içi SQL Server gibi sunucu izinleri de hiyerarşik olarak düzenlenir. Bu sunucu düzeyindeki roller tarafından tutulan izinler veritabanı izinlerine yayılabilir. İzinlerin veritabanı düzeyinde etkili bir şekilde yararlı olması için, oturum açma bilgilerinin ya tüm veritabanlarına ##MS_DatabaseConnector## iznini veren sunucu düzeyinde rol CONNECT'ın üyesi olması (SQL Server 2022 (16.x) ile başlayarak) ya da bireysel veritabanlarında bir kullanıcı hesabına sahip olması gerekir. Bu gereklilik veritabanı için master de geçerlidir.
Aşağıdaki örneği göz önünde bulundurun: Sunucu düzeyindeki rol ##MS_ServerStateReader## iznine VIEW SERVER STATEsahiptir. Bu role üye olan bir oturumun master ve WideWorldImporters veritabanlarında bir kullanıcı hesabı vardır. Bu kullanıcının bu iki veritabanında VIEW DATABASE STATE devralınarak elde edilen izni de vardır.
Sunucu düzeyindeki rollere sunucu düzeyinde sorumlular (SQL Server oturum açma bilgileri, Windows hesapları ve Windows grupları) ekleyebilirsiniz. Sabit bir sunucu rolünün her üyesi aynı role başka oturum açma bilgileri ekleyebilir. Kullanıcı tanımlı sunucu rollerinin üyeleri role başka sunucu sorumluları ekleyemez.
Sunucu düzeyinde roller düzeltildi
Uyarı
Bu roller SQL Server 2022 (16.x) sürümünden önce tanıtılmıştı ve Azure SQL Veritabanı veya Azure Synapse Analytics'te mevcut değiller. Azure SQL Veritabanı'in SQL Server 2022 (16.x)'de tanıtılan rollere karşılık gelen kendi sunucu düzeyindeki rolleri vardır. Daha fazla bilgi için izin yönetimi için Azure SQL Veritabanı sunucu rolleri ve SQL Database, SQL Yönetilen Örneği ve Azure Synapse Analytics için veritabanı erişimini yetkilendirme konularına bakın.
Aşağıdaki tabloda sabit sunucu düzeyindeki roller ve bunların özellikleri gösterilmektedir.
| Sabit sunucu düzeyinde rol | Açıklama |
|---|---|
| sysadmin | Sysadmin sabit sunucu rolünün üyeleri sunucuda herhangi bir etkinlik gerçekleştirebilir. Önemli: Bu rolün üyelerine izinler reddedilemez. |
| serveradmin | serveradmin sabit sunucu rolünün üyeleri sunucu genelinde yapılandırma seçeneklerini değiştirebilir ve sunucuyu kapatabilir. |
| securityadmin |
securityadmin sabit sunucu rolünün üyeleri oturum açma bilgilerini ve özelliklerini yönetir.
GRANT, DENY ve sunucu düzeyinde izinler verebilir REVOKE. Ayrıca GRANT, veritabanına erişimleri varsa , DENY, ve REVOKE veritabanı düzeyinde izinler de alabilirler. Ayrıca, SQL Server oturum açma işlemleri için parolaları sıfırlayabilirler.ÖNEMLİ: Veritabanı Altyapısı'na erişim izni verme ve kullanıcı izinlerini yapılandırma özelliği, güvenlik yöneticisinin çoğu sunucu izni atamasına olanak tanır. Securityadmin rolünü sistem yöneticisi rolüne eşdeğer olarak değerlendirin. Alternatif olarak, SQL Server 2022 (16.x) ile başlayarak yeni sabit sunucu rolünü ##MS_LoginManager## kullanmayı göz önünde bulundurun. |
| processadmin | processadmin sabit sunucu rolünün üyeleri, SQL Server örneğinde çalışan işlemleri sonlandırabilir. |
| setupadmin | setupadmin sabit sunucu rolünün üyeleri, Transact-SQL deyimlerini kullanarak bağlı sunucular ekleyebilir ve kaldırabilir. (Management Studio kullanılırken sysadmin üyeliği gerekir.) |
| bulkadmin |
Bulkadmin sabit sunucu rolünün üyeleri BULK INSERT ifadesini çalıştırabilir. Bu rolün üyeleri belirli koşullar altında potansiyel olarak ayrıcalıklarını yükseltebilir. Bu rolü atarken en az ayrıcalık ilkesini uygulayın ve üyeleri tarafından gerçekleştirilen tüm etkinlikleri izleyin. Bulkadmin rolü veya ADMINISTER BULK OPERATIONS izinleri Linux üzerinde SQL Server için desteklenmez.Microsoft Entra doğrulamasına dayalı girişler için toplu işlemler ( BULK INSERTifadeler) desteklenmiyor, ne Linux ne de Windows'ta. Bu senaryoda yalnızca sysadmin rolünün üyeleri SQL Server için toplu eklemeler gerçekleştirebilir. |
| diskadmin | diskadmin sabit sunucu rolünün üyeleri disk dosyalarını yönetebilir. |
| dbcreator | dbcreator sabit sunucu rolünün üyeleri herhangi bir veritabanını oluşturabilir, değiştirebilir, bırakabilir ve geri yükleyebilir. |
| halka açık | Her SQL Server oturum açma bilgileri genel sunucu rolüne aittir. Bir sunucu sorumlusuna güvenli hale getirilebilir bir nesne üzerinde belirli izinler verilmediğinde veya reddedildiğinde, kullanıcı bu nesne üzerinde public'a verilen izinleri devralır. Nesnenin tüm kullanıcılar tarafından kullanılabilir olmasını istediğinizde, nesne üzerinde yalnızca genel izinler atayın.
Genel üyelikleri değiştiremezsiniz. Not:kamu işleri diğer rollerden farklı şekilde yapılıyor. Kamuya açık sabit sunucu rolü için izinleri verebilir, reddedebilir veya iptal edebilirsiniz. |
Önemli
Aşağıdaki sunucu rolleri tarafından sağlanan izinlerin çoğu Azure Synapse Analytics için geçerli değildir: processadmin, serveradmin, setupadmin ve diskadmin.
SQL Server 2022'de sunulan sabit sunucu düzeyi roller
Aşağıdaki tabloda SQL Server 2022'de (16.x) tanıtılan sabit sunucu düzeyinde roller ve bunların özellikleri gösterilmektedir.
Uyarı
Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği bu rolleri destekler. Azure Synapse Analytics bunu yapmıyor.
Bir sunucunun hangi rollere sahip olduğunu görmek için, type_desc değeri SERVER_ROLE olan satırlar için sys.server_principals öğesini sorgulayın.
| Sabit sunucu düzeyinde rol | Açıklama |
|---|---|
##MS_DatabaseConnector## |
Sabit sunucu rolünün ##MS_DatabaseConnector## üyeleri, veritabanındaki bir Kullanıcı hesabının bağlanmasına gerek kalmadan herhangi bir veritabanına bağlanabilir.Kullanıcılar, belirli bir veritabanının iznini CONNECT reddetmek için veritabanında bu oturum açma için eşleşen bir kullanıcı hesabı ve ardından DENYCONNECT veritabanı-kullanıcı izni oluşturabilir. Bu DENY izni, bu rolden gelen GRANT CONNECT izni geçersiz kılar. |
##MS_LoginManager## |
Sabit sunucu rolünün ##MS_LoginManager## üyeleri oturum açma bilgileri oluşturabilir, silebilir ve değiştirebilir. Eski sabit sunucu rolü securityadmin'in aksine, bu rol üyelerin ayrıcalıklarına GRANT izin vermez. En az Ayrıcalık ilkesine uymaya yardımcı olan daha sınırlı bir rol. |
##MS_DatabaseManager## |
Sabit sunucu rolünün ##MS_DatabaseManager## üyeleri veritabanları oluşturabilir ve sahip oldukları veritabanlarını silebilir. Veritabanı oluşturan rolün ##MS_DatabaseManager## bir üyesi, bu veritabanının sahibi olur ve bu da kullanıcının bu veritabanına kullanıcı olarak bağlanmasına dbo olanak tanır. Kullanıcının dbo veritabanındaki tüm veritabanı izinleri vardır. Bu rolün üyeleri belirli koşullar altında potansiyel olarak ayrıcalıklarını yükseltebilir. Bu rolü atarken en az ayrıcalık ilkesini uygulayın ve üyeleri tarafından gerçekleştirilen tüm etkinlikleri izleyin. Azure SQL Veritabanı içinde bulunan master sabit veritabanı rolü yerine bu sunucu rolünü kullanın. |
##MS_ServerStateManager## |
##MS_ServerStateManager## sabit sunucu rolünün üyeleri, ##MS_ServerStateReader## rolüyle aynı izinlere sahiptir. Rol ayrıca ALTER SERVER STATE iznine de sahiptir; bu izin, örneğin DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF() gibi çeşitli yönetim işlemlerine erişim sağlar. |
##MS_ServerStateReader## |
Sabit sunucu rolünün ##MS_ServerStateReader## üyeleri, kapsama alanındaki VIEW SERVER STATEtüm dinamik yönetim görünümlerini (DMV) ve işlevleri okuyabilir. Üyeler ayrıca kullanıcı hesabı olan herhangi bir veritabanında da izne sahiptir VIEW DATABASE STATE . |
##MS_ServerPerformanceStateReader## |
Sabit sunucu rolünün ##MS_ServerPerformanceStateReader## üyeleri, kapsama alanındaki VIEW SERVER PERFORMANCE STATEtüm dinamik yönetim görünümlerini (DMV) ve işlevleri okuyabilir. Üyeler ayrıca kullanıcı hesabı olan herhangi bir veritabanında da izne sahiptir VIEW DATABASE PERFORMANCE STATE . Bu rol, en az ayrıcalık ilkesine uymaya yardımcı olan bir alt ##MS_ServerStateReader##kümedir. |
##MS_ServerSecurityStateReader## |
Sabit sunucu rolünün ##MS_ServerSecurityStateReader## üyeleri, kapsama alanındaki VIEW SERVER SECURITY STATEtüm dinamik yönetim görünümlerini (DMV) ve işlevleri okuyabilir. Üyeler ayrıca kullanıcı hesabı olan herhangi bir veritabanında da izne sahiptir VIEW DATABASE SECURITY STATE . Bu rol, ögesinin, ##MS_ServerStateReader##'ne uyulmasına yardımcı olan küçük bir alt kümesidir. |
##MS_DefinitionReader## |
Sabit sunucu rolünün ##MS_DefinitionReader## üyeleri, kapsama altındaki VIEW ANY DEFINITIONtüm katalog görünümlerini okuyabilir. Üyeler ayrıca kullanıcı hesabı olan herhangi bir veritabanında da izne sahiptir VIEW DEFINITION . |
##MS_PerformanceDefinitionReader## |
Sabit sunucu rolünün ##MS_PerformanceDefinitionReader## üyeleri, kapsama altındaki VIEW ANY PERFORMANCE DEFINITIONtüm katalog görünümlerini okuyabilir. Üyeler ayrıca kullanıcı hesabı olan herhangi bir veritabanında da izne sahiptir VIEW PERFORMANCE DEFINITION . Bu rol, ##MS_DefinitionReader##'nin bir alt kümesidir. |
##MS_SecurityDefinitionReader## |
Sabit sunucu rolünün ##MS_SecurityDefinitionReader## üyeleri, kapsama altındaki VIEW ANY SECURITY DEFINITIONtüm katalog görünümlerini okuyabilir. Üyeler ayrıca kullanıcı hesabı olan herhangi bir veritabanında da izne sahiptir VIEW SECURITY DEFINITION . Bu rol, ögesinin, ##MS_DefinitionReader##'ne uyulmasına yardımcı olan küçük bir alt kümesidir. |
Sabit sunucu rollerinin izinleri
Her sabit sunucu rolüne atanmış belirli izinler vardır.
SQL Server 2022'de yeni sabit sunucu rollerinin izinleri
Aşağıdaki tabloda sunucu düzeyindeki rollere atanan izinler gösterilmektedir. Ayrıca, kullanıcı tek tek veritabanlarına bağlanabildiği sürece devralınan veritabanı düzeyinde izinleri de gösterir.
| Sabit sunucu düzeyinde rol | Sunucu düzeyinde izinler | Veritabanı düzeyinde izinler |
|---|---|---|
##MS_DatabaseConnector## |
- CONNECT ANY DATABASE |
- CONNECT |
##MS_LoginManager## |
- CREATE LOGIN- ALTER ANY LOGIN |
Mevcut Değil |
##MS_DatabaseManager## |
- CREATE ANY DATABASE- ALTER ANY DATABASE |
- ALTER |
##MS_ServerStateManager## |
- ALTER SERVER STATE- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerStateReader## |
- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerPerformanceStateReader## |
- VIEW SERVER PERFORMANCE STATE |
- VIEW DATABASE PERFORMANCE STATE |
##MS_ServerSecurityStateReader## |
- VIEW SERVER SECURITY STATE |
- VIEW DATABASE SECURITY STATE |
##MS_DefinitionReader## |
- VIEW ANY DATABASE- VIEW ANY DEFINITION- VIEW ANY PERFORMANCE DEFINITION- VIEW ANY SECURITY DEFINITION |
- VIEW DEFINITION- VIEW PERFORMANCE DEFINITION- VIEW SECURITY DEFINITION |
##MS_PerformanceDefinitionReader## |
- VIEW ANY PERFORMANCE DEFINITION |
- VIEW PERFORMANCE DEFINITION |
##MS_SecurityDefinitionReader## |
- VIEW ANY SECURITY DEFINITION |
- VIEW SECURITY DEFINITION |
SQL Server 2019 ve öncesi için sunucu rollerinin izinleri
Aşağıdaki grafikte, eski sunucu rollerine (SQL Server 2019 (15.x) ve önceki sürümlere atanan izinler gösterilmektedir.
İzin CONTROL SERVER , sysadmin sabit sunucu rolüne benzer ancak aynı değildir.
CONTROL SERVER iznine sahip sorumlulara belirli izinler verilmeyebilir. Güvenlik açısından bakıldığında, CONTROL SERVER ile aynı olarak kabul edilen kullanıcı kimliklerini CONTROL SERVER göz önünde bulundurun, çünkü izinleri tam sistem yöneticisine yükseltmenin birkaç olası yolu vardır. Çeşitli DBCC komutlar ve birçok sistem yordamı sysadmin sabit sunucu rolüne üyelik gerektirir.
Sunucu düzeyinde izinler
Kullanıcı tanımlı sunucu rollerine yalnızca sunucu düzeyinde izinler eklenebilir. Sunucu düzeyi izinlerini listelemek için aşağıdaki deyimi yürütür. Sunucu düzeyinde izinler şunlardır:
SELECT *
FROM sys.fn_builtin_permissions('SERVER')
ORDER BY permission_name;
İzinler hakkında daha fazla bilgi için bkz. İzinler (Veritabanı Altyapısı) ve sys.fn_builtin_permissions.
Sunucu düzeyinde rollerle çalışma
Aşağıdaki tabloda, sunucu düzeyindeki rollerle çalışmak için kullanabileceğiniz komutlar, görünümler ve işlevler açıklanmaktadır.
| Özellik | Türü | Açıklama |
|---|---|---|
| sp_helpsrvrole | Meta veriler | Sunucu düzeyinde rollerin listesini döndürür. |
| sp_helpsrvrolemember | Meta veriler | Sunucu düzeyinde rolün üyeleri hakkında bilgi döndürür. |
| sp_srvrolepermission | Meta veriler | Sunucu düzeyinde rolün izinlerini görüntüler. |
| IS_SRVROLEMEMBER | Meta veriler | SQL Server oturum açma bilgilerinin belirtilen sunucu düzeyinde rolün üyesi olup olmadığını gösterir. |
| sys.server_role_members | Meta veriler | Sunucu düzeyindeki her rolün her üyesi için bir satır döndürür. |
| CREATE SERVER ROLE | Komut | Kullanıcı tanımlı bir sunucu rolü oluşturur. |
| ALTER SERVER ROLE | Komut | Sunucu rolünün üyeliğini veya kullanıcı tanımlı sunucu rolünün adını değiştirir. |
| DROP SERVER ROLE | Komut | Kullanıcı tanımlı bir sunucu rolünü kaldırır. |
| sp_addsrvrolemember | Komut | Sunucu düzeyinde bir rolün üyesi olarak oturum açma bilgisi ekler. Kullanımdan kaldırıldı. Bunun yerine ALTER SERVER ROLE kullanın. |
| sp_dropsrvrolemember | Komut | SQL Server oturum açma bilgilerini veya Windows kullanıcısını veya grubunu, sunucu düzeyindeki bir rolden kaldırır. Kullanımdan kaldırıldı. Bunun yerine ALTER SERVER ROLE kullanın. |
Azure Arc tarafından etkinleştirilen SQL Server'a özgü roller
SQL Server için Azure Uzantısını en az ayrıcalıksız modda yüklediğinizde, yükleme:
- Sunucu düzeyinde bir rol oluşturur:
SQLArcExtensionServerRole - Veritabanı düzeyinde bir rol oluşturur:
SQLArcExtensionUserRole -
NT AUTHORITY\SYSTEMhesabını her bir role ekler - Her veritabanı için veritabanı düzeyinde eşlemeler
NT AUTHORITY\SYSTEM - Etkin özellikler için en düşük izinleri verir
Alternatif olarak, Azure Arc tarafından etkinleştirilen SQL Server en az ayrıcalık modunda çalışacak şekilde yapılandırabilirsiniz. Daha fazla bilgi için bkz. En az ayrıcalıkla Azure Arc ile etkinleştirilen SQL Server.
Ayrıca SQL Server için Azure Uzantısı, belirli özellikler için artık gerekli olmadığında bu rollere yönelik izinleri iptal eder.
Uyarı
Daha önce açıklanan eylemler, Dağıtıcı'nın SQL Server NT AUTHORITY\SYSTEM olarak bağlanmasını gerektirir.
NT AUTHORITY\SYSTEM oturum açma izni kaldırılır, devre dışı bırakılır veya reddedilirse, Dağıtıcı bu eylemlerin hiçbirini gerçekleştiremez ve Azure SQL Server Uzantısı sağlanamaz. Bu oturum açma bilgilerini doğrulama ve geri yükleme adımları için önkoşullar bölümüne bakın.
SqlServerExtensionPermissionProvider bir Windows görevidir. Algıladığında, SQL Server'da ayrıcalıklar vermek veya iptal etmek için Deployer.exe'yi çalıştırır.
- Konağa yeni bir SQL Server örneği yüklendi
- Sunucudan bir SQL Server örneği kaldırıldı.
- Örnek düzeyinde bir özellik etkinleştirilir veya devre dışı bırakılır ya da ayarlar güncelleştirilir
- Uzantı hizmeti yeniden başlatıldı
- Tam zamanında (JIT) izinler etkinleştirildi veya devre dışı bırakıldı
Uyarı
Temmuz 2024 sürümünden önce, saatlik olarak çalıştırılan zamanlanmış bir görevdi SqlServerExtensionPermissionProvider.
Ayrıntılar için Windows hizmet hesaplarını ve SQL Server için Azure Uzantısı izinlerini yapılandırma bölümünü gözden geçirin.
SQL Server için Azure Uzantısını kaldırırsanız, sunucu düzeyi ve veritabanı düzeyindeki roller kaldırılır.
İzinler için İzinler'i gözden geçirin.
İlgili içerik
- Veritabanı düzeyindeki roller
- Güvenlik Kataloğu Görünümleri (Transact-SQL)
- Güvenlik İşlevleri (Transact-SQL)
- SQL Server Güvenliğini Sağlama
- GRANT Sunucu Asıl İzinleri (Transact-SQL)
- REVOKE Sunucu Asıl İzinleri (Transact-SQL)
- DENY Sunucu Asıl İzinleri (Transact-SQL)
- Sunucu Rolü Oluşturma
- İzin yönetimi için Azure SQL Veritabanı sunucu rolleri