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
Analytics Platform Sistemi (PDW)
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 izinler ( genel hariç) değiştirilemez. 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), özellikle En Az Ayrıcalık Ilkesi göz önünde bulundurularak tasarlanan ve bunları diğer normal kullanıcı tarafından oluşturulan sorumlulardan ve özel sunucu rollerinden ayırt etmek için öneki ##MS_ ve son eki ## olan 10 ek sunucu rolüyle birlikte gelir. Bu yeni roller, sunucu kapsamına uygulanan ve (sunucu rolü hariç ##MS_LoginManager##) tek tek veritabanlarına da devralınabilen ayrıcalıklar içerir.
Ş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 CONNECT iznini veren sunucu düzeyinde rol ##MS_DatabaseConnector##'ı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, 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ı
SQL Server 2022 (16.x) öncesinde tanıtılan bu sunucu düzeyindeki roller Azure SQL Veritabanı veya Azure Synapse Analytics'te kullanılamaz. İzin yönetimi için SQL Server 2022'de (16.x) tanıtılan sunucu düzeyindeki rollere eşdeğer olan özel Azure SQL Veritabanı sunucu rolleri vardır. SQL Veritabanı hakkında daha fazla bilgi için bkz. Veritabanı erişimini denetleme ve verme..
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.
securityadmin, veritabanına erişimi varsa, veritabanı düzeyindeki izinlere GRANT, DENY ve REVOKE da verebilir. Ayrıca securityadmin , SQL Server oturum açma işlemleri için parolaları sıfırlayabilir.Ö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ü sysadmin rolüne eşdeğer olarak ele alınmalıdır. 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.Toplu işlemler ( BULK INSERT deyimler), Linux veya Windows üzerinde Microsoft Entra kimlik doğrulamasını temel alan oturum açma işlemleri için desteklenmez. Bu senaryoda yalnızca sysadmin rolünün üyeleri SQL Server için toplu eklemeler gerçekleştirebilir. |
| diskadmin | Disk dosyalarını yönetmek için diskadmin sabit sunucu rolü kullanılır. |
| 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:genel, diğer rollerden farklı şekilde uygulanır ve genel sabit sunucu rollerinden izinler verilebilir, reddedilebilir veya iptal edilebilir. |
Önemli
Aşağıdaki sunucu rolleri tarafından sağlanan izinlerin çoğu Azure Synapse Analytics (processadmin, serveradmin, setupadmin ve diskadmin) için geçerli değildir.
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ı
Bu sunucu düzeyinde izinler Azure SQL Yönetilen Örneği veya Azure Synapse Analytics için kullanılamaz.
##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader##ve ##MS_ServerSecurityStateReader## SQL Server 2022'de (16.x) kullanıma sunulmuştur ve Azure SQL Veritabanı'nda kullanılamaz.
| 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 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. Rolün ##MS_DatabaseManager## üyelerinin sahip olmadığı veritabanlarına erişme izni olması gerekmez. Bu sunucu rolü, SQL Server'daki dbcreator rolüyle aynı ayrıcalıklara sahiptir, ancak bu rol Azure SQL Veritabanı'nda da mevcut olduğundan ve bu nedenle farklı ortamlarda aynı betiklerin kullanılmasına yardımcı olduğundan, bu yeni rolün eskisine göre kullanılmasını öneririz. 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. |
##MS_ServerStateManager## |
##MS_ServerStateManager## sabit sunucu rolünün üyeleri, ##MS_ServerStateReader## rolüyle aynı izinlere sahiptir. Ayrıca, aşağıdakiler gibi çeşitli yönetim işlemlerine erişim sağlayan izni de içerir ALTER SERVER STATE : DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF() |
##MS_ServerStateReader## |
Sabit sunucu rolünün ##MS_ServerStateReader## üyeleri, VIEW SERVER STATE kapsamındaki tüm dinamik yönetim görünümlerini (DMV) ve işlevleri okuyabilir ve bu rolün üyesinin kullanıcı hesabına sahip olduğu herhangi bir veritabanında sırasıyla VIEW DATABASE STATE iznine sahiptir. |
##MS_ServerPerformanceStateReader## |
Sabit sunucu rolünün ##MS_ServerPerformanceStateReader## üyeleri, kapsamındaki VIEW SERVER PERFORMANCE STATEtüm dinamik yönetim görünümlerini (DMV) ve işlevleri okuyabilir ve sırasıyla bu rolün üyesinin kullanıcı hesabına sahip olduğu tüm veritabanlarında izni vardır VIEW DATABASE PERFORMANCE STATE . Sunucu rolünün ##MS_ServerStateReader## erişimine sahip olduğu alt küme, en az Ayrıcalık ilkesine uymaya yardımcı olur. |
##MS_ServerSecurityStateReader## |
Sabit sunucu rolünün ##MS_ServerSecurityStateReader## üyeleri, VIEW SERVER SECURITY STATE tarafından kapsanan tüm dinamik yönetim görünümlerini (DMV) ve işlevlerini okuyabilir ve bu rolün üyesi olarak kullanıcı hesabına sahip oldukları tüm veritabanlarında VIEW DATABASE SECURITY STATE iznine sahiptir. Sunucu rolünün ##MS_ServerStateReader## erişim sahibi olduğu şeyin küçük alt kümesi, en az Ayrıcalık ilkesine uymaya yardımcı olur. |
##MS_DefinitionReader## |
Sabit sunucu rolünün ##MS_DefinitionReader## üyeleri, VIEW ANY DEFINITION kapsamında yer alan tüm katalog görünümlerini okuyabilir ve bu rolün üyesi olarak kullanıcı hesabına sahip oldukları herhangi bir veritabanında VIEW DEFINITION iznine sahiptirler. |
##MS_PerformanceDefinitionReader## |
Sabit sunucu rolünün ##MS_PerformanceDefinitionReader## üyeleri, VIEW ANY PERFORMANCE DEFINITION kapsamında yer alan tüm katalog görünümlerini okuyabilir ve bu rolün üyesi olarak kullanıcı hesabına sahip oldukları herhangi bir veritabanında VIEW PERFORMANCE DEFINITION iznine sahiptirler. Erişimi olan ##MS_DefinitionReader## sunucu rolünün alt kümesi. |
##MS_SecurityDefinitionReader## |
Sabit sunucu rolünün ##MS_SecurityDefinitionReader## üyeleri, VIEW ANY SECURITY DEFINITION kapsamında yer alan tüm katalog görünümlerini okuyabilir ve bu rolün üyesi olarak kullanıcı hesabına sahip oldukları herhangi bir veritabanında VIEW SECURITY DEFINITION iznine sahiptirler. Sunucu rolünün ##MS_DefinitionReader## erişim sahibi olduğu şeyin küçük alt kümesi, en az Ayrıcalık ilkesine uymaya yardımcı olur. |
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. |
| SUNUCU ROLÜ OLUŞTURMA | Komut | Kullanıcı tanımlı bir sunucu rolü oluşturur. |
| Sunucu Rolünü Değiştir | Komut | Sunucu rolünün üyeliğini veya kullanıcı tanımlı sunucu rolünün adını değiştirir. |
| DROP SUNUCUSU ROLÜ | 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 Server Principal Permissions (Transact-SQL)
- DENY Sunucusu Asıl İzinleri (Transact-SQL)
- Sunucu Rolü Oluşturma
- İzin yönetimi için Azure SQL Veritabanı sunucu rolleri