Delen via


Functies op serverniveau

van toepassing op:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

SQL Server biedt functies op serverniveau om u te helpen de machtigingen op een server te beheren. Deze rollen zijn beveiligingsprinciplen die andere principals groeperen. Functies op serverniveau zijn serverbreed in het bereik van de machtigingen. (Rollen zijn als groepen in het Windows-besturingssysteem.)

SQL Server 2019 (15.x) en eerdere versies bieden negen vaste serverfuncties. De machtigingen die worden verleend aan de vaste serverfuncties (behalve openbaar) kunnen niet worden gewijzigd. Vanaf SQL Server 2012 (11.x) kunt u door de gebruiker gedefinieerde serverfuncties maken en machtigingen op serverniveau toevoegen aan de door de gebruiker gedefinieerde serverfuncties. SQL Server 2022 (16.x) wordt geleverd met 10 extra serverfuncties die speciaal zijn ontworpen met het principe van minimale bevoegdheden in gedachten, die het voorvoegsel en het achtervoegsel ##MS_## hebben om deze te onderscheiden van andere reguliere door de gebruiker gemaakte principals en aangepaste serverfuncties. Deze nieuwe rollen bevatten bevoegdheden die van toepassing zijn op serverbereik, maar kunnen ook worden overgenomen op afzonderlijke databases (met uitzondering van de ##MS_LoginManager## serverfunctie.)

Vergelijkbaar met SQL Server on-premises worden servermachtigingen hiërarchisch georganiseerd. De machtigingen die worden bewaard door deze functies op serverniveau kunnen worden doorgegeven aan databasemachtigingen. Als u wilt dat de machtigingen effectief nuttig zijn op databaseniveau, moet een aanmelding lid zijn van de rol ##MS_DatabaseConnector## op serverniveau (te beginnen met SQL Server 2022 (16.x)), die de CONNECT machtiging verleent aan alle databases of een gebruikersaccount in afzonderlijke databases heeft. Dit geldt ook voor de master database.

Bekijk het volgende voorbeeld: De rol ##MS_ServerStateReader## op serverniveau bevat de machtiging VIEW SERVER STATE. Een aanmelding die lid is van deze rol heeft een gebruikersaccount in de master en WideWorldImporters databases. Deze gebruiker heeft ook de VIEW DATABASE STATE machtiging in deze twee databases door overname.

U kunt principals op serverniveau (SQL Server-aanmeldingen, Windows-accounts en Windows-groepen) toevoegen aan serverfuncties. Elk lid van een vaste serverfunctie kan andere aanmeldingen toevoegen aan dezelfde rol. Leden van door de gebruiker gedefinieerde serverfuncties kunnen geen andere server-principals toevoegen aan de rol.

Vaste functies op serverniveau

Opmerking

Deze serverfuncties die zijn geïntroduceerd vóór SQL Server 2022 (16.x) en zijn niet beschikbaar in Azure SQL Database of Azure Synapse Analytics. Er zijn speciale Azure SQL Database-serverfuncties voor machtigingsbeheer die gelijk zijn aan de functies op serverniveau die zijn geïntroduceerd in SQL Server 2022 (16.x). Zie Beheren en verlenen van databasetoegang voor meer informatie over SQL Database.

In de volgende tabel ziet u de functies op vaste serverniveau en hun mogelijkheden.

Vaste rol op serverniveau Beschrijving
sysadmin Leden van de vaste serverrol sysadmin kunnen elke activiteit op de server uitvoeren. Belangrijk: machtigingen kunnen niet worden geweigerd aan leden van deze rol.
serveradmin Leden van de serveradmin vaste serverfunctie kunnen configuratieopties voor de hele server wijzigen en de server afsluiten.
securityadmin Leden van de securityadmin vaste serverfunctie beheren logins en hun eigenschappen. Ze kunnen GRANT, DENYen REVOKE machtigingen op serverniveau. securityadmin kan ook GRANTmachtigingen DENYop databaseniveau en REVOKE machtigingen op databaseniveau hebben als ze toegang hebben tot een database. Daarnaast kan securityadmin wachtwoorden opnieuw instellen voor SQL Server-aanmeldingen.

BELANGRIJK: De mogelijkheid om toegang te verlenen tot de database-engine en gebruikersmachtigingen te configureren, stelt de beveiligingsbeheerder in staat om de meeste servermachtigingen toe te wijzen. De rol securityadmin moet worden behandeld als gelijkwaardig aan de rol sysadmin . Als alternatief kunt u overwegen om vanaf SQL Server 2022 (16.x) de nieuwe vaste serverfunctie ##MS_LoginManager## te gebruiken.
processadmin Leden van de vaste serverrol processadmin kunnen processen beëindigen die worden uitgevoerd in een exemplaar van SQL Server.
setupadmin Leden van de vaste serverrol setupadmin kunnen gekoppelde servers toevoegen en verwijderen met behulp van Transact-SQL instructies. (sysadmin-lidmaatschap is nodig bij het gebruik van Management Studio.)
bulkadmin Leden van de vaste serverrol bulkadmin kunnen de BULK INSERT instructie uitvoeren. Leden van deze rol kunnen hun bevoegdheden onder bepaalde voorwaarden verhogen. Pas het principe van minimale bevoegdheden toe bij het toewijzen van deze rol en bewaak alle activiteiten die door de leden worden uitgevoerd.

De rol of ADMINISTER BULK OPERATIONS machtigingen van bulkadmin worden niet ondersteund voor SQL Server in Linux.

Bulkbewerkingen (BULK INSERT instructies) worden niet ondersteund voor aanmeldingen op basis van Microsoft Entra-verificatie, in Linux of Windows. In dit scenario kunnen alleen leden van de rol sysadmin bulksgewijs invoegen voor SQL Server uitvoeren.
diskadmin De vaste serverfunctie diskadmin wordt gebruikt voor het beheren van schijfbestanden.
dbcreator Leden van de dbcreator vaste serverfunctie kunnen elke database maken, wijzigen, verwijderen en herstellen.
public Elke SQL Server-aanmelding hoort bij de openbare serverfunctie. Wanneer een server-principal geen specifieke machtigingen voor een beveiligbaar object krijgt of geweigerd, neemt de gebruiker de machtigingen over die aan het openbare object zijn verleend. Wijs alleen openbare machtigingen toe aan een object wanneer u wilt dat het object beschikbaar is voor alle gebruikers. U kunt het lidmaatschap niet wijzigen in het openbaar.

Opmerking:openbaar wordt anders geïmplementeerd dan andere rollen en machtigingen kunnen worden verleend, geweigerd of ingetrokken van de openbare vaste serverfuncties.

Belangrijk

De meeste machtigingen van de volgende serverfuncties zijn niet van toepassing op Azure Synapse Analytics: processadmin, serveradmin, setupadmin en diskadmin.

Vaste functies op serverniveau geïntroduceerd in SQL Server 2022

De volgende tabel bevat vaste functies op serverniveau die zijn geïntroduceerd in SQL Server 2022 (16.x) en hun mogelijkheden.

Opmerking

Deze machtigingen op serverniveau zijn niet beschikbaar voor Azure SQL Managed Instance of Azure Synapse Analytics. ##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader##en ##MS_ServerSecurityStateReader## wordt geïntroduceerd in SQL Server 2022 (16.x) en is niet beschikbaar in Azure SQL Database.

Vaste rol op serverniveau Beschrijving
##MS_DatabaseConnector## Leden van de ##MS_DatabaseConnector## vaste serverfunctie kunnen verbinding maken met elke database zonder dat er een gebruikersaccount in de database nodig is om verbinding mee te maken.

Als u de CONNECT machtiging voor een specifieke database wilt weigeren, kunnen gebruikers een overeenkomend gebruikersaccount maken voor deze aanmelding in de database en vervolgens de DENY machtiging voor de databasegebruiker CONNECT. Deze DENY machtiging overschrijft de GRANT CONNECT machtiging die afkomstig is van deze rol.
##MS_LoginManager## Leden van de ##MS_LoginManager## vaste serverfunctie kunnen aanmeldingen maken, verwijderen en wijzigen. In tegenstelling tot het oude beveiligingsadmin voor vaste serverfuncties, staat deze rol leden geen bevoegdheden toe GRANT . Het is een beperktere rol die helpt om te voldoen aan het principe van minimale bevoegdheden.
##MS_DatabaseManager## Leden van de ##MS_DatabaseManager## vaste serverfunctie kunnen databases maken en verwijderen. Een lid van de ##MS_DatabaseManager##-rol die een database maakt, wordt de eigenaar van die database, waardoor die gebruiker verbinding kan maken met die database als de dbo gebruiker. De dbo gebruiker heeft alle databasemachtigingen in de database. Leden van de rol ##MS_DatabaseManager## hebben niet per se machtigingen voor toegang tot databases waarvan ze geen eigenaar zijn. Deze serverrol heeft dezelfde bevoegdheden als de dbcreator-rol in SQL Server, maar we raden u aan deze nieuwe rol te gebruiken ten opzichte van het vorige, omdat deze rol ook in Azure SQL Database bestaat en zo helpt bij het gebruik van dezelfde scripts in verschillende omgevingen.

Leden van deze rol kunnen hun bevoegdheden onder bepaalde voorwaarden verhogen. Pas het principe van minimale bevoegdheden toe bij het toewijzen van deze rol en bewaak alle activiteiten die door de leden worden uitgevoerd.
##MS_ServerStateManager## Leden van de ##MS_ServerStateManager## vaste serverrol hebben dezelfde machtigingen als de ##MS_ServerStateReader##-rol. Het bevat ook de ALTER SERVER STATE machtiging, die toegang biedt tot verschillende beheerbewerkingen, zoals: DBCC FREEPROCCACHE, , DBCC FREESYSTEMCACHE ('ALL')DBCC SQLPERF()
##MS_ServerStateReader## Leden van de ##MS_ServerStateReader## vaste serverrol kunnen alle dynamische beheerweergaven (DMV's) en functies lezen die worden gedekt door VIEW SERVER STATE, en hebben VIEW DATABASE STATE respectievelijk machtigingen voor elke database waarop het lid van deze rol een gebruikersaccount heeft.
##MS_ServerPerformanceStateReader## Leden van de ##MS_ServerPerformanceStateReader## vaste serverrol kunnen alle dynamische beheerweergaven (DMV's) en functies lezen die worden gedekt door VIEW SERVER PERFORMANCE STATE, en hebben VIEW DATABASE PERFORMANCE STATE respectievelijk machtigingen voor elke database waarop het lid van deze rol een gebruikersaccount heeft. Subset van waartoe de ##MS_ServerStateReader## serverrol toegang heeft, wat helpt te voldoen aan het principe van minimale bevoegdheden.
##MS_ServerSecurityStateReader## Leden van de ##MS_ServerSecurityStateReader## vaste serverrol kunnen alle dynamische beheerweergaven (DMV's) en functies lezen die worden gedekt door VIEW SERVER SECURITY STATE, en hebben VIEW DATABASE SECURITY STATE respectievelijk machtigingen voor elke database waarop het lid van deze rol een gebruikersaccount heeft. Kleine subset van waartoe de ##MS_ServerStateReader## serverfunctie toegang heeft, wat helpt te voldoen aan het principe van minimale bevoegdheden.
##MS_DefinitionReader## Leden van de ##MS_DefinitionReader## vaste serverrol kunnen alle catalogusweergaven lezen die worden gedekt door VIEW ANY DEFINITIONen hebben respectievelijk VIEW DEFINITION machtigingen voor elke database waarop het lid van deze rol een gebruikersaccount heeft.
##MS_PerformanceDefinitionReader## Leden van de ##MS_PerformanceDefinitionReader## vaste serverrol kunnen alle catalogusweergaven lezen die worden gedekt door VIEW ANY PERFORMANCE DEFINITIONen hebben respectievelijk VIEW PERFORMANCE DEFINITION machtigingen voor elke database waarop het lid van deze rol een gebruikersaccount heeft. Subset van waartoe de ##MS_DefinitionReader## serverfunctie toegang heeft.
##MS_SecurityDefinitionReader## Leden van de ##MS_SecurityDefinitionReader## vaste serverrol kunnen alle catalogusweergaven lezen die worden gedekt door VIEW ANY SECURITY DEFINITIONen hebben respectievelijk VIEW SECURITY DEFINITION machtigingen voor elke database waarop het lid van deze rol een gebruikersaccount heeft. Kleine subset van waartoe de ##MS_DefinitionReader## serverfunctie toegang heeft, wat helpt te voldoen aan het principe van minimale bevoegdheden.

Machtigingen van vaste serverfuncties

Aan elke vaste serverfunctie zijn bepaalde machtigingen toegewezen.

Machtigingen voor nieuwe vaste serverfuncties in SQL Server 2022

In de volgende tabel ziet u de machtigingen die zijn toegewezen aan de rollen op serverniveau. Ook worden de machtigingen op databaseniveau weergegeven die worden overgenomen zolang de gebruiker verbinding kan maken met afzonderlijke databases.

Vaste rol op serverniveau Machtigingen op serverniveau Machtigingen op databaseniveau
##MS_DatabaseConnector## - CONNECT ANY DATABASE - CONNECT
##MS_LoginManager## - CREATE LOGIN
- ALTER ANY LOGIN
Niet van toepassing.
##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

Machtigingen van serverfuncties voor SQL Server 2019 en eerder

In de volgende afbeelding ziet u de machtigingen die zijn toegewezen aan de verouderde serverfuncties (SQL Server 2019 (15.x) en eerdere versies).

Diagram met machtigingen voor vaste serverfuncties.

De CONTROL SERVER machtiging is vergelijkbaar, maar niet identiek aan de vaste serverfunctie sysadmin . Principals met de CONTROL SERVER machtiging kunnen specifieke machtigingen worden geweigerd. Houd vanuit een beveiligingsperspectief rekening met principals die CONTROL SERVER identiek zijn aan sysadmin-leden, vanwege verschillende mogelijke manieren om machtigingen te verhogen van CONTROL SERVER naar volledig sysadmin. Voor verschillende DBCC opdrachten en veel systeemprocedures is lidmaatschap van de vaste serverfunctie sysadmin vereist.

Machtigingen op serverniveau

Alleen machtigingen op serverniveau kunnen worden toegevoegd aan door de gebruiker gedefinieerde serverfuncties. Voer de volgende instructie uit om de machtigingen op serverniveau weer te geven. De machtigingen op serverniveau zijn:

SELECT *
FROM sys.fn_builtin_permissions('SERVER')
ORDER BY permission_name;

Zie Machtigingen (Database Engine) en sys.fn_builtin_permissions voor meer informatie over machtigingen.

Werken met functies op serverniveau

In de volgende tabel worden de opdrachten, weergaven en functies uitgelegd die u kunt gebruiken om met serverfuncties te werken.

Feature Typologie Beschrijving
sp_helpsrvrole Metagegevens Retourneert een lijst met functies op serverniveau.
sp_helpsrvrolemember Metagegevens Retourneert informatie over de leden van een functie op serverniveau.
sp_srvrolepermission Metagegevens Geeft de machtigingen van een functie op serverniveau weer.
IS_SRVROLEMEMBER Metagegevens Hiermee wordt aangegeven of een SQL Server-aanmelding lid is van de opgegeven serverrol.
sys.server_role_members Metagegevens Retourneert één rij voor elk lid van elke rol op serverniveau.
SERVERFUNCTIE MAKEN Opdracht Hiermee maakt u een door de gebruiker gedefinieerde serverfunctie.
ALTER SERVER ROLE Opdracht Hiermee wijzigt u het lidmaatschap van een serverfunctie of wijzigt u de naam van een door de gebruiker gedefinieerde serverfunctie.
SERVERFUNCTIE NEERZETTEN Opdracht Hiermee verwijdert u een door de gebruiker gedefinieerde serverfunctie.
sp_addsrvrolemember Opdracht Hiermee voegt u een aanmelding toe als lid van een rol op serverniveau. Afgeschreven Gebruik in plaats daarvan ALTER SERVER ROLE .
sp_dropsrvrolemember Opdracht Hiermee verwijdert u een SQL Server-aanmelding of een Windows-gebruiker of -groep uit een serverrol. Afgeschreven Gebruik in plaats daarvan ALTER SERVER ROLE .

Rollen die specifiek zijn voor SQL Server die zijn ingeschakeld door Azure Arc

Wanneer u de Azure-extensie voor SQL Server installeert, wordt de volgende installatie uitgevoerd:

  1. Hiermee maakt u een rol op serverniveau: SQLArcExtensionServerRole

  2. Hiermee maakt u een rol op databaseniveau: SQLArcExtensionUserRole

  3. Voegt NT AUTHORITY\SYSTEM*-account toe aan elke rol

  4. Wijst NT AUTHORITY\SYSTEM* toe op databaseniveau voor elke database

  5. Verleent minimale machtigingen voor de ingeschakelde functies

    *U kunt OOK SQL Server configureren die door Azure Arc is ingeschakeld om in de modus met minimale bevoegdheden te worden uitgevoerd (beschikbaar in preview). Raadpleeg SQL Server uitvoeren die is ingeschakeld door Azure Arc met minimale bevoegdheden (preview)voor meer informatie.

Bovendien trekt de Azure-extensie voor SQL Server machtigingen voor deze rollen in wanneer deze niet meer nodig zijn voor specifieke functies.

SqlServerExtensionPermissionProvider is een Windows-taak. Er worden bevoegdheden in SQL Server verleend of ingetrokken wanneer deze detecteert:

  • Er is een nieuw SQL Server-exemplaar geïnstalleerd op de host
  • SQL Server-exemplaar wordt verwijderd van de host
  • Een functie op exemplaarniveau is ingeschakeld of uitgeschakeld of instellingen worden bijgewerkt
  • De extensieservice wordt opnieuw gestart

Opmerking

Vóór de release van juli 2024 is SqlServerExtensionPermissionProvider een geplande taak. Het draait elk uur.

Raadpleeg Windows-serviceaccounts en -machtigingen configureren voor de Azure-extensie voor SQL Servervoor meer informatie.

Als u de Azure-extensie voor SQL Server verwijdert, worden de functies op server- en databaseniveau verwijderd.

Raadpleeg machtigingen voor machtigingen.