Aracılığıyla paylaş


Sunucu düzeyinde roller

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen ÖrneğiAnalytics 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 kapsamında 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 ayrıcalıklar içerir, ancak tek tek veritabanlarına da devralabilir (sunucu rolü hariç ##MS_LoginManager## ).)

Ş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 tüm veritabanlarına izin veren CONNECT sunucu düzeyinde rolün ##MS_DatabaseConnector## (SQL Server 2022 (16.x) ile başlayarak) üyesi olması veya tek tek 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 rolün üyesi olan oturum açma bilgilerinin ve WideWorldImporters veritabanlarında master bir kullanıcı hesabı vardır. Bu kullanıcının bu iki veritabanında devralma izni de vardır VIEW DATABASE STATE .

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 engellenemez.
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. , DENYve REVOKE sunucu düzeyinde izinler verebilirGRANT. securityadmin, veritabanına erişimi varsa , DENYve REVOKE veritabanı düzeyinde izinler de GRANTverebilir. 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 deyimini BULK INSERT ç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 kullanıma sunulan sunucu düzeyinde roller düzeltildi

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, kapsamındaki VIEW SERVER 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 STATE .
##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, kapsamındaki VIEW SERVER SECURITY 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 SECURITY STATE . 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. Sunucu rolünün erişimi olan ##MS_DefinitionReader## şeyin 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.

Sabit sunucu rolü izinlerini gösteren diyagram.

İzin CONTROL SERVER , sysadmin sabit sunucu rolüne benzer ancak aynı değildir. İzinli CONTROL SERVER sorumlular belirli izinler reddedilebilir. İzinleri tam sysadmin'e yükseltmenin çeşitli olası yolları nedeniyle güvenlik açısından sysadmin-members ile CONTROL SERVER aynı olan sorumluları CONTROL SERVER göz önünde bulundurun. Ç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ı yüklediğinizde, yükleme:

  1. Sunucu düzeyi rolü oluşturur: SQLArcExtensionServerRole

  2. Veritabanı düzeyi rolü oluşturur: SQLArcExtensionUserRole

  3. Her role NT AUTHORITY\SYSTEM* hesabı ekler

  4. NT AUTHORITY\SYSTEM'i* her veritabanı için veritabanı düzeyinde eşler

  5. 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 (önizlemede kullanılabilir). Ayrıntılar için Azure Arc tarafından etkinleştirilen SQL Server'ı en az ayrıcalıkla çalıştırma (önizleme) bölümünü gözden geçirin.

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.

SqlServerExtensionPermissionProvider bir Windows görevidir. Aşağıdakileri algıladığında SQL Server'da ayrıcalıklar verir veya iptal eder:

  • Konağa yeni bir SQL Server örneği yüklendi
  • SQL Server örneği konaktan kaldırıldı
  • Örnek düzeyi özelliği etkinleştirildi veya devre dışı bırakıldı veya ayarlar güncelleştirildi
  • Uzantı hizmeti yeniden başlatıldı

Uyarı

Temmuz 2024 sürümünden önce SqlServerExtensionPermissionProvider zamanlanmış bir görevdir. Her saat çalışır.

Ayrıntılar için Bkz. SQL Server için Azure uzantısı için Windows hizmet hesaplarını ve izinlerini yapılandırma.

SQL Server için Azure uzantısını kaldırırsanız, sunucu ve veritabanı düzeyi rolleri kaldırılır.

İzinler için İzinler'i gözden geçirin.