Dela via


Roller på servernivå

gäller för:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

SQL Server tillhandahåller roller på servernivå som hjälper dig att hantera behörigheterna på en server. Dessa roller är säkerhetsobjekt som grupperar andra huvudnamn. Roller på servernivå är serveromfattande i deras behörighetsomfång. (Roller är som grupper i Windows-operativsystemet.)

SQL Server 2019 (15.x) och tidigare versioner tillhandahöll nio fasta serverroller. Behörigheter som beviljas till fasta serverroller (utom offentliga) kan inte ändras. Från och med SQL Server 2012 (11.x) kan du skapa användardefinierade serverroller och lägga till behörigheter på servernivå till de användardefinierade serverrollerna. SQL Server 2022 (16.x) levereras med 10 extra serverroller som är utformade specifikt med principen om lägsta behörighet i åtanke, som har prefixet ##MS_ och suffixet ## för att skilja dem från andra vanliga användarskapade huvudkonton och anpassade serverroller. De nya rollerna innehåller behörigheter som gäller för serveromfånget men kan också ärva ned till enskilda databaser (förutom serverrollen ##MS_LoginManager## .)

Precis som lokal SQL Server ordnas serverbehörigheter hierarkiskt. De behörigheter som innehas av dessa roller på servernivå kan spridas till databasbehörigheter. För att behörigheterna ska vara effektivt användbara på databasnivå måste en inloggning antingen vara medlem i rollen ##MS_DatabaseConnector## på servernivå (från och med SQL Server 2022 (16.x)), som ger CONNECT behörighet till alla databaser eller har ett användarkonto i enskilda databaser. Detta gäller även för master databasen.

Tänk dig följande exempel: Rollen ##MS_ServerStateReader## på servernivå har behörigheten VIEW SERVER STATE. En inloggning som är medlem i den här rollen har ett användarkonto i databaserna master och WideWorldImporters . Den här användaren har också behörigheten VIEW DATABASE STATE i dessa två databaser efter arv.

Du kan lägga till huvudkonton på servernivå (SQL Server-inloggningar, Windows-konton och Windows-grupper) i roller på servernivå. Varje medlem i en fast serverroll kan lägga till andra inloggningar till samma roll. Medlemmar i användardefinierade serverroller kan inte lägga till andra serverhuvudnamn i rollen.

Fasta roller på servernivå

Anmärkning

Dessa roller på servernivå som introducerades före SQL Server 2022 (16.x) och är inte tillgängliga i Azure SQL Database eller Azure Synapse Analytics. Det finns särskilda Azure SQL Database-serverroller för behörighetshantering som motsvarar de roller på servernivå som introducerades i SQL Server 2022 (16.x). Mer information om SQL Database finns i Kontrollera och bevilja databasåtkomst..

I följande tabell visas de fasta rollerna på servernivå och deras funktioner.

Fastställd serverroll på servernivå Beskrivning
systemadministratör Medlemmar i den fasta sysadmin-serverrollen kan utföra alla aktiviteter på servern. Viktigt: behörigheter kan inte nekas till medlemmar i den här rollen.
serveradmin Medlemmar i serverdmins fasta serverroll kan ändra konfigurationsalternativ för hela servern och stänga av servern.
securityadmin Medlemmar i den fasta serverrollen securityadmin hanterar inloggningar och deras egenskaper. De kan GRANT, DENYoch REVOKE behörigheter på servernivå. securityadmin kan också GRANT, DENYoch REVOKE behörigheter på databasnivå om de har åtkomst till en databas. Dessutom kan securityadmin återställa lösenord för SQL Server-inloggningar.

VIKTIG: Möjligheten att bevilja åtkomst till databasmotorn och konfigurera användarbehörigheter gör att säkerhetsadministratören kan tilldela de flesta serverbehörigheter. Rollen securityadmin ska behandlas som likvärdig med sysadmin-rollen. Alternativt kan du börja med SQL Server 2022 (16.x) och överväga att använda den nya fasta serverrollen ##MS_LoginManager##.
processadmin Medlemmar i den fasta serverrollen processadmin kan avsluta processer som körs i en instans av SQL Server.
setupadmin Medlemmar i den fasta serverrollen setupadmin kan lägga till och ta bort länkade servrar med hjälp av Transact-SQL-instruktioner. (sysadmin-medlemskap krävs när du använder Management Studio.)
bulkadmin Medlemmar i den fasta bulkadmin-serverrollen kan köra -instruktionen BULK INSERT . Medlemmar i den här rollen kan potentiellt höja sina privilegier under vissa förhållanden. Tillämpa principen om lägsta behörighet när du tilldelar den här rollen och övervaka all aktivitet som utförs av dess medlemmar.

Bulkadmin-rollen eller ADMINISTER BULK OPERATIONS behörigheterna stöds inte för SQL Server i Linux.

Massåtgärder (BULK INSERT instruktioner) stöds inte för inloggningar baserat på Microsoft Entra-autentisering, antingen i Linux eller Windows. I det här scenariot kan endast medlemmar i sysadmin-rollen utföra massinfogningar för SQL Server.
diskadmin Den fasta diskadmin-serverrollen används för att hantera diskfiler.
dbcreator Medlemmar i den fasta serverrollen dbcreator kan skapa, ändra, släppa och återställa valfri databas.
offentlig Varje SQL Server-inloggning tillhör den offentliga serverrollen. När ett serverhuvudnamn inte beviljas eller nekas specifika behörigheter för ett skyddsbart objekt ärver användaren de behörigheter som beviljats till allmänheten för objektet. Tilldela endast offentliga behörigheter för alla objekt när du vill att objektet ska vara tillgängligt för alla användare. Du kan inte ändra medlemskap offentligt.

Obs!Offentlig implementeras på ett annat sätt än andra roller och behörigheter kan beviljas, nekas eller återkallas från offentliga fasta serverroller.

Viktigt!

De flesta behörigheter som tillhandahålls av följande serverroller gäller inte för Azure Synapse Analytics – processadmin, serveradmin, setupadmin och diskadmin.

Fasta roller på servernivå som introducerades i SQL Server 2022

I följande tabell visas fasta roller på servernivå som introducerades i SQL Server 2022 (16.x) och deras funktioner.

Anmärkning

Dessa behörigheter på servernivå är inte tillgängliga för Azure SQL Managed Instance eller Azure Synapse Analytics. ##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader##och ##MS_ServerSecurityStateReader## introduceras i SQL Server 2022 (16.x) och är inte tillgängliga i Azure SQL Database.

Fastställd serverroll på servernivå Beskrivning
##MS_DatabaseConnector## Medlemmar i den ##MS_DatabaseConnector## fasta serverrollen kan ansluta till valfri databas utan att behöva ett användarkonto i databasen att ansluta till.

Om du vill neka CONNECT behörighet till en specifik databas kan användarna skapa ett matchande användarkonto för den här inloggningen i databasen och sedan DENYCONNECT behörighet till databasanvändaren. Den här DENY behörigheten åsidosätter GRANT CONNECT behörighet som kommer från den här rollen.
##MS_LoginManager## Medlemmar i den fasta serverrollen ##MS_LoginManager## kan skapa, ta bort och ändra inloggningar. I motsats till den gamla fasta serverrollen securityadmin tillåter den här rollen inte medlemmar behörigheter GRANT . Det är en mer begränsad roll som hjälper till att följa principen om lägsta behörighet.
##MS_DatabaseManager## Medlemmar i ##MS_DatabaseManager## fast serverroll kan skapa och ta bort databaser. En medlem i den ##MS_DatabaseManager## roll som skapar en databas blir ägare till databasen, vilket gör att användaren kan ansluta till databasen som dbo användare. Den dbo användaren har alla databasbehörigheter i databasen. Medlemmar i den ##MS_DatabaseManager## rollen har inte nödvändigtvis behörighet att komma åt databaser som de inte äger. Den här serverrollen har samma behörigheter som dbcreator-rollen i SQL Server, men vi rekommenderar att du använder den här nya rollen framför den förra, eftersom den här rollen även finns i Azure SQL Database och därmed hjälper till att använda samma skript i olika miljöer.

Medlemmar i den här rollen kan potentiellt höja sina privilegier under vissa förhållanden. Tillämpa principen om lägsta behörighet när du tilldelar den här rollen och övervaka all aktivitet som utförs av dess medlemmar.
##MS_ServerStateManager## Medlemmar i ##MS_ServerStateManager## fast serverroll har samma behörigheter som rollen ##MS_ServerStateReader##. Dessutom har den behörigheten ALTER SERVER STATE som ger åtkomst till flera hanteringsåtgärder, till exempel: DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF()
##MS_ServerStateReader## Medlemmar i den ##MS_ServerStateReader## fasta serverrollen kan läsa alla dynamiska hanteringsvyer (DMV:er) och funktioner som omfattas av VIEW SERVER STATE, respektive har VIEW DATABASE STATE behörighet för alla databaser där medlemmen i den här rollen har ett användarkonto.
##MS_ServerPerformanceStateReader## Medlemmar i den ##MS_ServerPerformanceStateReader## fasta serverrollen kan läsa alla dynamiska hanteringsvyer (DMV:er) och funktioner som omfattas av VIEW SERVER PERFORMANCE STATE, respektive har VIEW DATABASE PERFORMANCE STATE behörighet för alla databaser där medlemmen i den här rollen har ett användarkonto. Delmängd av vad serverrollen ##MS_ServerStateReader## har åtkomst till, vilket bidrar till att följa principen om lägsta behörighet.
##MS_ServerSecurityStateReader## Medlemmar i den ##MS_ServerSecurityStateReader## fasta serverrollen kan läsa alla dynamiska hanteringsvyer (DMV:er) och funktioner som omfattas av VIEW SERVER SECURITY STATE, respektive har VIEW DATABASE SECURITY STATE behörighet för alla databaser där medlemmen i den här rollen har ett användarkonto. Liten delmängd av vad serverrollen ##MS_ServerStateReader## har åtkomst till, vilket bidrar till att följa principen om lägsta behörighet.
##MS_DefinitionReader## Medlemmar i den ##MS_DefinitionReader## fasta serverrollen kan läsa alla katalogvyer som omfattas av VIEW ANY DEFINITIONoch respektive har VIEW DEFINITION behörighet på alla databaser där medlemmen i den här rollen har ett användarkonto.
##MS_PerformanceDefinitionReader## Medlemmar i den ##MS_PerformanceDefinitionReader## fasta serverrollen kan läsa alla katalogvyer som omfattas av VIEW ANY PERFORMANCE DEFINITIONoch respektive har VIEW PERFORMANCE DEFINITION behörighet på alla databaser där medlemmen i den här rollen har ett användarkonto. Delmängd av vad serverrollen ##MS_DefinitionReader## har åtkomst till.
##MS_SecurityDefinitionReader## Medlemmar i den ##MS_SecurityDefinitionReader## fasta serverrollen kan läsa alla katalogvyer som omfattas av VIEW ANY SECURITY DEFINITIONoch respektive har VIEW SECURITY DEFINITION behörighet på alla databaser där medlemmen i den här rollen har ett användarkonto. Liten delmängd av vad serverrollen ##MS_DefinitionReader## har åtkomst till, vilket bidrar till att följa principen om lägsta behörighet.

Behörigheter för fasta serverroller

Varje fast serverroll har vissa behörigheter tilldelade till sig.

Behörigheter för nya fasta serverroller i SQL Server 2022

I följande tabell visas de behörigheter som tilldelats till rollerna på servernivå. Den visar också behörigheter på databasnivå som ärvs så länge användaren kan ansluta till enskilda databaser.

Fastställd serverroll på servernivå Behörigheter på servernivå Behörigheter på databasnivå
##MS_DatabaseConnector## - CONNECT ANY DATABASE - CONNECT
##MS_LoginManager## - CREATE LOGIN
- ALTER ANY LOGIN
Inte tillgänglig
##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

Behörigheter för serverroller för SQL Server 2019 och tidigare

Följande bild visar de behörigheter som tilldelats till de äldre serverrollerna (SQL Server 2019 (15.x) och tidigare versioner).

Diagram som visar behörigheter för fast serverroll.

Behörigheten CONTROL SERVER liknar men är inte identisk med den fasta serverrollen sysadmin . Huvudnamn med behörigheten CONTROL SERVER kan nekas specifika behörigheter. Ur ett säkerhetsperspektiv bör du betrakta huvudnamn med som identiska med CONTROL SERVER sysadmin-medlemmar på grund av flera möjliga sätt att höja behörigheter från CONTROL SERVER till fullständig sysadmin. Flera DBCC kommandon och många systemprocedurer kräver medlemskap i den fasta serverrollen sysadmin .

Behörigheter på servernivå

Endast behörigheter på servernivå kan läggas till i användardefinierade serverroller. Kör följande instruktion om du vill visa en lista över behörigheter på servernivå. Behörigheterna på servernivå är:

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

Mer information om behörigheter finns i Behörigheter (databasmotor) och sys.fn_builtin_permissions.

Arbeta med roller på servernivå

I följande tabell beskrivs kommandon, vyer och funktioner som du kan använda för att arbeta med roller på servernivå.

Feature Typ Beskrivning
sp_helpsrvrole Metainformation Returnerar en lista över roller på servernivå.
sp_helpsrvrolemember Metainformation Returnerar information om medlemmar i en roll på servernivå.
sp_srvrolepermission Metainformation Visar behörigheter för en roll på servernivå.
IS_SRVROLEMEMBER Metainformation Anger om en SQL Server-inloggning är medlem i den angivna rollen på servernivå.
sys.server_role_members Metainformation Returnerar en rad för varje medlem i varje roll på servernivå.
SKAPA SERVER-ROLL Command Skapar en användardefinierad serverroll.
ÄNDRA SERVERROLL Command Ändrar medlemskapet för en serverroll eller ändrar namnet på en användardefinierad serverroll.
TA BORT SERVERROLL Command Tar bort en användardefinierad serverroll.
sp_addsrvrolemember Command Lägger till en inloggning som medlem i en roll på servernivå. Avrådd. Använd ALTER SERVER ROLE i stället.
sp_dropsrvrolemember Command Tar bort en SQL Server-inloggning eller en Windows-användare eller -grupp från en roll på servernivå. Avrådd. Använd ALTER SERVER ROLE i stället.

Roller som är specifika för SQL Server som aktiveras av Azure Arc

När du installerar Azure-tillägget för SQL Server installerar du:

  1. Skapar en roll på servernivå: SQLArcExtensionServerRole

  2. Skapar en roll på databasnivå: SQLArcExtensionUserRole

  3. Lägger till NT AUTHORITY\SYSTEM* konto till varje roll

  4. Mappar NT AUTHORITY\SYSTEM* på databasnivå för varje databas

  5. Beviljar minsta behörighet för de aktiverade funktionerna

    *Du kan också konfigurera SQL Server som aktiveras av Azure Arc för att köras i läget för lägsta behörighet (finns i förhandsversion). Mer information finns i Använda SQL Server som aktiverats av Azure Arc med minst behörighet (förhandsversion).

Dessutom återkallar Azure-tillägget för SQL Server behörigheter för dessa roller när de inte längre behövs för specifika funktioner.

SqlServerExtensionPermissionProvider är en Windows-uppgift. Den beviljar eller återkallar behörigheter i SQL Server när den identifierar:

  • En ny SQL Server-instans installeras på värden
  • SQL Server-instansen avinstalleras från värden
  • En instansnivåfunktion är aktiverad eller inaktiverad eller inställningarna uppdateras
  • Tilläggstjänsten startas om

Anmärkning

Före lanseringen i juli 2024 är SqlServerExtensionPermissionProvider en schemalagd uppgift. Den körs varje timme.

Mer information finns i Konfigurera Windows-tjänstkonton och behörigheter för Azure-tillägget för SQL Server.

Om du avinstallerar Azure-tillägget för SQL Server tas rollerna på server- och databasnivå bort.

Behörigheter finns i Behörigheter.