Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
Program SQL Server udostępnia role na poziomie serwera, które ułatwiają zarządzanie uprawnieniami na serwerze. Te role to podmioty zabezpieczeń, które grupują inne podmioty zabezpieczeń. Role na poziomie serwera mają zakres uprawnień dla całego serwera. (Role są podobne do grup w systemie operacyjnym Windows).
Program SQL Server 2019 (15.x) i poprzednie wersje udostępniały dziewięć stałych ról serwera. Nie możesz zmieniać uprawnień przyznanych stałym rolom serwera (poza publicznymi). Począwszy od programu SQL Server 2012 (11.x), można utworzyć role serwera zdefiniowane przez użytkownika i dodać uprawnienia na poziomie serwera do ról serwera zdefiniowanych przez użytkownika.
SQL Server 2022 (16.x) zawiera 10 dodatkowych ról serwerowych, zaprojektowanych specjalnie z myślą o zasadzie najmniejszych przywilejów. Te role mają prefiks ##MS_ i sufiks ##, co odróżnia je od zwykłych podmiotów zabezpieczeń tworzonych przez użytkowników oraz niestandardowych ról serwera. Te nowe role zawierają uprawnienia obowiązujące w zakresie serwera, ale mogą być dziedziczone także na poszczególne bazy danych (z wyjątkiem roli serwera ##MS_LoginManager## ).
Podobnie jak w przypadku lokalnego programu SQL Server, uprawnienia serwera są zorganizowane hierarchicznie. Uprawnienia przechowywane przez te role na poziomie serwera mogą być propagowane do uprawnień bazy danych. Aby uprawnienia były efektywnie przydatne na poziomie bazy danych, identyfikator logowania musi być członkiem roli ##MS_DatabaseConnector## na poziomie serwera (począwszy od programu SQL Server 2022 (16.x)), który przyznaje CONNECT uprawnienie do wszystkich baz danych lub ma konto użytkownika w poszczególnych bazach danych. Ten wymóg dotyczy również bazy master danych.
Rozważmy następujący przykład: Rola ##MS_ServerStateReader## na poziomie serwera ma uprawnienie VIEW SERVER STATE. Identyfikator logowania, który jest członkiem tej roli, ma konto użytkownika w bazach danych master i WideWorldImporters. Ten użytkownik ma również uprawnienie VIEW DATABASE STATE w tych dwóch bazach danych na zasadzie dziedziczenia.
Można dodawać podmioty zabezpieczeń na poziomie serwera (identyfikatory logowania programu SQL Server, konta systemu Windows i grupy systemu Windows) do ról na poziomie serwera. Każdy członek stałej roli serwera może dodać inne loginy do tej samej roli. Członkowie ról serwera zdefiniowanych przez użytkownika nie mogą dodawać innych użytkowników serwera do roli.
Stałe role na poziomie serwera
Uwaga / Notatka
Te role zostały wprowadzone przed SQL Server 2022 (16.x) i nie są dostępne w Azure SQL Database ani Azure Synapse Analytics. Azure SQL Database posiada własne role na poziomie serwera, które odpowiadają rolom wprowadzonym w SQL Server 2022 (16.x). Aby uzyskać więcej informacji, zobacz artykuły Role serwera Azure SQL Database na potrzeby zarządzania uprawnieniami i Autoryzowanie dostępu do usługi SQL Database, wystąpienia zarządzanego SQL i usługi Azure Synapse Analytics.
W poniższej tabeli przedstawiono stałe role na poziomie serwera i ich możliwości.
| Stała rola na poziomie serwera | Description |
|---|---|
| administrator systemu | Członkowie stałej roli serwera sysadmin mogą wykonywać dowolne działania na serwerze. Ważne: nie można odmówić uprawnień członkom tej roli. |
| administrator serwera | Członkowie serveradmin stałej roli serwera mogą zmienić opcje konfiguracji całego serwera i zamknąć serwer. |
| administrator zabezpieczeń | Członkowie securityadmin stałej roli zabezpieczania serwera zarządzają loginami i ich właściwościami.
GRANTMogą oni mieć uprawnienia , DENYi REVOKE na poziomie serwera. Mogą także GRANT, DENY oraz REVOKE uprawnienia na poziomie bazy danych, jeśli mają dostęp do bazy danych. Ponadto mogą resetować hasła do logowania do programu SQL Server.WAŻNE: Możliwość udzielenia dostępu do silnika bazy danych i skonfigurowania uprawnień użytkownika umożliwia administratorowi zabezpieczeń konfigurowanie większości uprawnień serwera. Traktuj rolę administratora bezpieczeństwa jako równoważną roli administratora systemów . Alternatywnie, począwszy od programu SQL Server 2022 (16.x), rozważ użycie nowej stałej roli serwera ##MS_LoginManager###. |
| processadmin | Członkowie stałej roli serwera processadmin mogą kończyć procesy uruchomione w wystąpieniu programu SQL Server. |
| setupadmin | Członkowie stałej roli serwera setupadmin mogą dodawać i usuwać połączone serwery przy użyciu instrukcji Transact-SQL. (członkostwo administratora systemu jest wymagane w przypadku korzystania z programu Management Studio). |
| bulkadmin | Członkowie stałej roli serwera bulkadmin mogą uruchomić instrukcję BULK INSERT . Członkowie tej roli mogą potencjalnie podnieść swoje uprawnienia w określonych warunkach. Zastosuj zasadę najniższych uprawnień podczas przypisywania tej roli i monitoruj wszystkie działania wykonywane przez jego członków. Rola bulkadmin lub ADMINISTER BULK OPERATIONS nie są obsługiwane w przypadku programu SQL Server w systemie Linux.Operacje masowe ( BULK INSERTinstrukcje) nie są obsługiwane dla logowania opartego na uwierzytelnianiu Microsoft Entra, ani na Linuksie, ani na Windows. W tym scenariuszu tylko członkowie roli sysadmin mogą wykonywać operacje wstawiania zbiorczego dla programu SQL Server. |
| diskadmin | Członkowie diskadmin ustalonej roli serwera mogą zarządzać plikami dyskowymi. |
| dbcreator | Członkowie dbcreator stałej roli serwera mogą tworzyć, zmieniać, usuwać i przywracać dowolną bazę danych. |
| public | Każde logowanie programu SQL Server należy do roli serwera publicznego . Gdy podmiot zabezpieczeń serwera nie otrzymuje lub odmówiono mu określonych uprawnień do zabezpieczanego obiektu, użytkownik dziedziczy uprawnienia przyznane public na tym obiekcie. Przypisz uprawnienia publiczne tylko do dowolnego obiektu, jeśli chcesz, aby obiekt był dostępny dla wszystkich użytkowników. Nie można zmienić członkostwa w publicznego. Uwaga: rola public działa inaczej niż pozostałe role. Możesz przyznać, odmówić lub cofnąć uprawnienia dla stałej roli serwera public. |
Ważne
Większość uprawnień oferowanych przez następujące role serwera nie dotyczy Azure Synapse Analytics: processadmin, serveradmin, setupadmin i diskadmin.
Stałe role na poziomie serwera wprowadzone w SQL Server 2022
W poniższej tabeli przedstawiono stałe role na poziomie serwera wprowadzone w programie SQL Server 2022 (16.x) i ich możliwości.
Uwaga / Notatka
Azure SQL Database oraz Azure SQL Managed Instance wspierają te role. Azure Synapse Analytics to nie robi.
Aby sprawdzić, jakie role ma serwer, wykonaj zapytanie do sys.server_principals o wiersze, w których type_desc ma wartość SERVER_ROLE.
| Stała rola na poziomie serwera | Description |
|---|---|
##MS_DatabaseConnector## |
Członkowie stałej ##MS_DatabaseConnector## roli serwera mogą łączyć się z dowolną bazą danych bez konieczności nawiązywania połączenia z kontem użytkownika w bazie danych.Aby odmówić CONNECT uprawnień do określonej bazy danych, użytkownicy mogą utworzyć odpowiadające konto użytkownika dla tego logowania w bazie danych, a następnie odmówić DENYCONNECT uprawnień użytkownikowi bazy danych. To DENY uprawnienie powoduje zastąpienie GRANT CONNECT uprawnienia pochodzącego z tej roli. |
##MS_LoginManager## |
Członkowie stałej ##MS_LoginManager## roli serwera mogą tworzyć, usuwać i modyfikować identyfikatory logowania. W przeciwieństwie do starej ustalonej roli securityadmin, ta rola nie zezwala członkom na GRANT uprawnienia. Jest to bardziej ograniczona rola, która pomaga spełnić zasadę najniższych uprawnień. |
##MS_DatabaseManager## |
Członkowie stałej ##MS_DatabaseManager## roli serwera mogą tworzyć bazy danych i usuwać własne bazy danych. Członek roli tworzącej ##MS_DatabaseManager## bazę danych staje się właścicielem tej bazy danych, co pozwala temu użytkownikowi na łączenie się z bazą dbo danych jako użytkownik. Użytkownik dbo ma wszystkie uprawnienia bazy danych w bazie danych. Członkowie tej roli mogą potencjalnie podnieść swoje uprawnienia w określonych warunkach. Zastosuj zasadę najniższych uprawnień podczas przypisywania tej roli i monitoruj wszystkie działania wykonywane przez jego członków. W Azure SQL Database użyj tej roli serwera zamiast stałej roli bazy danych dbmanager, która istnieje w programie master. |
##MS_ServerStateManager## |
Członkowie stałej ##MS_ServerStateManager## roli serwera mają takie same uprawnienia jak ##MS_ServerStateReader## rola. Rola ta ma również uprawnienie ALTER SERVER STATE, które umożliwia dostęp do kilku operacji zarządzania, takich jak: DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF(). |
##MS_ServerStateReader## |
Członkowie roli stałego serwera ##MS_ServerStateReader## mogą odczytywać wszystkie dynamiczne widoki zarządzania (DMV) i funkcje objęte przez VIEW SERVER STATE. Członkowie posiadają VIEW DATABASE STATE również uprawnienia do każdej bazy danych, w której mają konto użytkownika. |
##MS_ServerPerformanceStateReader## |
Członkowie stałej roli serwera ##MS_ServerPerformanceStateReader## mogą odczytywać wszystkie dynamiczne widoki zarządzania (DMV) i funkcje objęte przez VIEW SERVER PERFORMANCE STATE. Członkowie posiadają VIEW DATABASE PERFORMANCE STATE również uprawnienia do każdej bazy danych, w której mają konto użytkownika. Ta rola jest podzbiorem ##MS_ServerStateReader##, co pomaga zachować zgodność z zasadą najmniejszych uprawnień. |
##MS_ServerSecurityStateReader## |
Członkowie stałej roli serwera ##MS_ServerSecurityStateReader## mogą odczytywać wszystkie dynamiczne widoki zarządzania (DMV) i funkcje objęte przez VIEW SERVER SECURITY STATE. Członkowie posiadają VIEW DATABASE SECURITY STATE również uprawnienia do każdej bazy danych, w której mają konto użytkownika. Ta rola jest niewielkim podzbiorem ##MS_ServerStateReader##, co pomaga zachować zgodność z zasadą najmniejszych uprawnień. |
##MS_DefinitionReader## |
Członkowie stałej roli serwera ##MS_DefinitionReader## mogą odczytywać wszystkie widoki katalogowe objęte przez VIEW ANY DEFINITION. Członkowie posiadają VIEW DEFINITION również uprawnienia do każdej bazy danych, w której mają konto użytkownika. |
##MS_PerformanceDefinitionReader## |
Członkowie stałej roli serwera ##MS_PerformanceDefinitionReader## mogą odczytywać wszystkie widoki katalogowe objęte przez VIEW ANY PERFORMANCE DEFINITION. Członkowie posiadają VIEW PERFORMANCE DEFINITION również uprawnienia do każdej bazy danych, w której mają konto użytkownika. Ta rola jest podzbiorem ##MS_DefinitionReader##. |
##MS_SecurityDefinitionReader## |
Członkowie stałej roli serwera ##MS_SecurityDefinitionReader## mogą odczytywać wszystkie widoki katalogowe objęte elementem VIEW ANY SECURITY DEFINITION. Członkowie posiadają VIEW SECURITY DEFINITION również uprawnienia do każdej bazy danych, w której mają konto użytkownika. Ta rola jest niewielkim podzbiorem ##MS_DefinitionReader##, co pomaga w przestrzeganiu zasady najmniejszych uprawnień. |
Uprawnienia stałych ról serwera
Każda stała rola serwera ma przypisane pewne uprawnienia.
Uprawnienia nowych stałych ról serwera w programie SQL Server 2022
W poniższej tabeli przedstawiono uprawnienia przypisane do ról na poziomie serwera. Pokazuje również uprawnienia na poziomie bazy danych, które są dziedziczone, o ile użytkownik może łączyć się z poszczególnymi bazami danych.
| Stała rola na poziomie serwera | Uprawnienia na poziomie serwera | Uprawnienia na poziomie bazy danych |
|---|---|---|
##MS_DatabaseConnector## |
- CONNECT ANY DATABASE |
- CONNECT |
##MS_LoginManager## |
- CREATE LOGIN- ALTER ANY LOGIN |
N/A |
##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 |
Uprawnienia ról serwera w wersjach programu SQL Server 2019 i starszych
Na poniższej ilustracji przedstawiono uprawnienia przypisane do starszych ról serwera (SQL Server 2019 (15.x) i starszych wersji.
Uprawnienie CONTROL SERVER jest podobne, ale nie identyczne z stałą rolą serwera sysadmin . Podmiotom z uprawnieniami CONTROL SERVER można odmówić określonych uprawnień. Z punktu widzenia zabezpieczeń należy traktować podmioty z CONTROL SERVER jako identyczne z członkami sysadmin, ponieważ istnieje kilka możliwych sposobów podniesienia uprawnień z CONTROL SERVER do pełnego sysadmina. Kilka DBCC poleceń i wiele procedur systemowych wymaga członkostwa w roli stałego serwera sysadmin.
Uprawnienia na poziomie serwera
Do ról serwera zdefiniowanych przez użytkownika można dodawać tylko uprawnienia na poziomie serwera. Aby wyświetlić listę uprawnień na poziomie serwera, wykonaj następującą instrukcję. Uprawnienia na poziomie serwera to:
SELECT *
FROM sys.fn_builtin_permissions('SERVER')
ORDER BY permission_name;
Aby uzyskać więcej informacji na temat uprawnień, zobacz Uprawnienia (aparat bazy danych) i sys.fn_builtin_permissions.
Praca z rolami na poziomie serwera
W poniższej tabeli opisano polecenia, widoki i funkcje, których można użyć do pracy z rolami na poziomie serwera.
| Funkcja | Typ | Description |
|---|---|---|
| sp_helpsrvrole | Metadane | Zwraca listę ról na poziomie serwera. |
| sp_helpsrvrolemember | Metadane | Zwraca informacje o członkach roli na poziomie serwera. |
| sp_srvrolepermission | Metadane | Wyświetla uprawnienia roli na poziomie serwera. |
| IS_SRVROLEMEMBER | Metadane | Wskazuje, czy identyfikator logowania programu SQL Server jest członkiem określonej roli na poziomie serwera. |
| sys.server_role_members | Metadane | Zwraca jeden wiersz dla każdego członka każdej roli na poziomie serwera. |
| CREATE SERVER ROLE | Command | Tworzy rolę serwera zdefiniowaną przez użytkownika. |
| ALTER SERVER ROLE | Command | Zmienia członkostwo roli serwera lub zmienia nazwę roli serwera zdefiniowanej przez użytkownika. |
| DROP SERVER ROLE | Command | Usuwa rolę serwera zdefiniowaną przez użytkownika. |
| sp_addsrvrolemember | Command | Dodaje login jako członka roli na poziomie serwera. Deprecated. Użyj ALTER SERVER ROLE zamiast tego. |
| sp_dropsrvrolemember | Command | Usuwa konto logowania SQL Server lub użytkownika systemu Windows lub grupy z roli na poziomie serwera. Deprecated. Użyj ALTER SERVER ROLE zamiast tego. |
Role specyficzne dla programu SQL Server włączone przez usługę Azure Arc
Podczas instalowania rozszerzenia Azure dla SQL Server, w trybie innym niż najmniej uprzywilejowany, instalacja:
- Tworzy rolę na poziomie serwera:
SQLArcExtensionServerRole - Tworzy rolę na poziomie bazy danych:
SQLArcExtensionUserRole - Dodaje konto
NT AUTHORITY\SYSTEMdo każdej roli - Mapy
NT AUTHORITY\SYSTEMna poziomie bazy danych dla każdej bazy danych - Przyznaje minimalne uprawnienia dla włączonych funkcji
Alternatywnie można skonfigurować SQL Server, który został włączony przy pomocy Azure Arc, do działania w trybie najmniejszych uprawnień. Aby uzyskać więcej informacji, zobacz Operowanie serwerem SQL z Azure Arc z minimalnymi uprawnieniami.
Ponadto rozszerzenie Azure dla SQL Server odwołuje uprawnienia dla tych ról, gdy nie są już potrzebne dla określonych funkcji.
Uwaga / Notatka
Opisane wcześniej akcje wymagają, aby narzędzie wdrażające nawiązało połączenie z SQL Server jako NT AUTHORITY\SYSTEM. Jeśli identyfikator logowania NT AUTHORITY\SYSTEM zostanie usunięty, wyłączony lub odmówione zostaną CONNECT SQL uprawnienia, Deployer nie może wykonać żadnej z tych akcji, a rozszerzenie Azure dla SQL Server nie zdoła się wdrożyć. Zobacz Wymagania wstępne dla kroków weryfikacji i przywrócenia tego loginu.
SqlServerExtensionPermissionProvider jest zadaniem systemu Windows. Wykonuje Deployer.exe w celu udzielenia lub odwołania uprawnień w SQL Server, gdy wykryje:
- Na hoście jest zainstalowane nowe wystąpienie programu SQL Server
- Wystąpienie SQL Server zostało odinstalowane z hosta
- Funkcja na poziomie instancji jest włączana lub wyłączana, lub też ustawienia są aktualizowane.
- Usługa rozszerzenia jest uruchamiana ponownie
- Uprawnienia just in time (JIT) są włączone lub wyłączone
Uwaga / Notatka
Przed wydaniem SqlServerExtensionPermissionProvider z lipca 2024 r. było zaplanowane zadanie, które było uruchamiane co godzinę.
Aby uzyskać szczegółowe informacje, zapoznaj się z Konfiguruj konta usługi Windows i uprawnienia dla rozszerzenia Azure dla SQL Server.
W przypadku odinstalowania rozszerzenia Azure dla SQL Server role na poziomie serwera i na poziomie bazy danych zostaną usunięte.
Aby uzyskać uprawnienia, zapoznaj się z artykułem Uprawnienia.
Treści powiązane
- Role na poziomie bazy danych
- Widoki wykazu zabezpieczeń (Transact-SQL)
- Funkcje zabezpieczeń (Transact-SQL)
- Zabezpieczanie programu SQL Server
- GRANT Uprawnienia podmiotu zabezpieczeń na serwerze (Transact-SQL)
- REVOKE Uprawnienia podmiotu zabezpieczeń na serwerze (Transact-SQL)
- DENY Uprawnienia podmiotu zabezpieczeń na serwerze (Transact-SQL)
- Tworzenie roli serwera
- Role serwera usługi Azure SQL Database na potrzeby zarządzania uprawnieniami