Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Analytics 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äkerhetsprincipaler som grupperar andra principaler. 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. Du kan inte ändra behörigheterna som ges till de fasta serverrollerna (förutom offentliga). 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) kommer med 10 extra serverroller som är särskilt utformade med principen om minsta privilegium i åtanke. Dessa roller bär prefixet ##MS_ och suffixet ##, vilket skiljer dem från vanliga användarskapade principaler och anpassade serverroller. Dessa nya roller innehåller privilegier som gäller på servernivå men som även kan ärvas ned till enskilda databaser (utom för 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 krav gäller även för databasen master .
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 introducerades före SQL Server 2022 (16.x), och de finns inte tillgängliga i Azure SQL Database eller Azure Synapse Analytics. Azure SQL Database har egna servernivåroller, vilka motsvarar de roller som introducerades i SQL Server 2022 (16.x). För mer information finns information i Azure SQL Database-serverroller för behörighetshantering och Auktorisera databasåtkomst till SQL Database, SQL Managed Instance och Azure Synapse Analytics.
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, DENY och REVOKE behörigheter på servernivå. De kan också GRANT, DENY, och REVOKE databasnivåbehörigheter om de har tillgång till en databas. Dessutom kan de å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. Behandla säkerhetsadministratörsrollen 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 serverrollen bulkadmin kan köra BULK INSERT-instruktionen. 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-satser) stöds inte för inloggningar som baseras på Microsoft Entra-autentisering, varken i Linux eller Windows. I det här scenariot kan endast medlemmar i sysadmin-rollen utföra massinfogningar för SQL Server. |
| diskadmin | Medlemmar i den fasta diskadmin-serverrollen kan 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:Public fungerar annorlunda än de andra rollerna. Du kan ge, neka eller återkalla behörigheter för den fasta serverrollen public. |
Viktigt!
De flesta av de behörigheter som ges 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
Azure SQL Database och Azure SQL Managed Instance stödjer dessa roller. Azure Synapse Analytics gör det inte.
För att se vilka roller en server har, sök sys.server_principals efter rader där type_desc är SERVER_ROLE.
| 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 inte denna roll medlemmar att hantera 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 den fasta serverrollen ##MS_DatabaseManager## kan skapa databaser och ta bort databaser som de äger. 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 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. På Azure SQL Database använder du den här serverrollen i stället för den fasta databasrollen dbmanager som finns i master. |
##MS_ServerStateManager## |
Medlemmar i ##MS_ServerStateManager## fast serverroll har samma behörigheter som rollen ##MS_ServerStateReader##. Rollen har också behörigheten ALTER SERVER STATE, vilket ger tillgång till flera hanteringsåtgärder, såsom: DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF(). |
##MS_ServerStateReader## |
Medlemmar i den ##MS_ServerStateReader## fasta serverrollen kan läsa alla dynamiska hanteringsvyer (DMV) och funktioner som täcks av VIEW SERVER STATE. Medlemmar har VIEW DATABASE STATE också behörighet i alla databaser där de har ett användarkonto. |
##MS_ServerPerformanceStateReader## |
Medlemmar i den ##MS_ServerPerformanceStateReader## fasta serverrollen kan läsa alla dynamiska hanteringsvyer (DMV) och funktioner som täcks av VIEW SERVER PERFORMANCE STATE. Medlemmar har VIEW DATABASE PERFORMANCE STATE också behörighet i alla databaser där de har ett användarkonto. Denna roll är en delmängd av ##MS_ServerStateReader##, vilket hjälper till att följa principen om minsta privilegium. |
##MS_ServerSecurityStateReader## |
Medlemmar i den ##MS_ServerSecurityStateReader## fasta serverrollen kan läsa alla dynamiska hanteringsvyer (DMV) och funktioner som täcks av VIEW SERVER SECURITY STATE. Medlemmar har VIEW DATABASE SECURITY STATE också behörighet i alla databaser där de har ett användarkonto. Denna roll är en liten delmängd av ##MS_ServerStateReader##, vilket hjälper till att följa principen om minsta privilegium. |
##MS_DefinitionReader## |
Medlemmar i den ##MS_DefinitionReader## fasta serverrollen kan läsa alla katalogvyer som täcks av VIEW ANY DEFINITION. Medlemmar har VIEW DEFINITION också behörighet i alla databaser där de har ett användarkonto. |
##MS_PerformanceDefinitionReader## |
Medlemmar i den ##MS_PerformanceDefinitionReader## fasta serverrollen kan läsa alla katalogvyer som täcks av VIEW ANY PERFORMANCE DEFINITION. Medlemmar har VIEW PERFORMANCE DEFINITION också behörighet i alla databaser där de har ett användarkonto. Denna roll är en delmängd av ##MS_DefinitionReader##. |
##MS_SecurityDefinitionReader## |
Medlemmar i den ##MS_SecurityDefinitionReader## fasta serverrollen kan läsa alla katalogvyer som täcks av VIEW ANY SECURITY DEFINITION. Medlemmar har VIEW SECURITY DEFINITION också behörighet i alla databaser där de har ett användarkonto. Denna roll är en liten delmängd av ##MS_DefinitionReader##, vilket hjälper till att följa principen om minsta privilegium. |
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).
Behörigheten CONTROL SERVER liknar men är inte identisk med den fasta serverrollen sysadmin . Användare med behörigheten CONTROL SERVER kan nekas specifika behörigheter. Ur ett säkerhetsperspektiv bör du betrakta roller med CONTROL SERVER som identiska med sysadmin-medlemmar, eftersom det finns 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å. |
| CREATE SERVER ROLE | Command | Skapar en användardefinierad serverroll. |
| ALTER SERVER ROLE | Command | Ändrar medlemskapet för en serverroll eller ändrar namnet på en användardefinierad serverroll. |
| DROP SERVER ROLE | 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 i icke-lägsta behörighetsläge, installationen:
- Skapar en roll på servernivå:
SQLArcExtensionServerRole - Skapar en roll på databasnivå:
SQLArcExtensionUserRole - Lägger till
NT AUTHORITY\SYSTEMkontot till varje roll - Mappar
NT AUTHORITY\SYSTEMpå databasnivå för varje databas - Beviljar minsta behörighet för de aktiverade funktionerna
Du kan också konfigurera SQL Server som aktiveras av Azure Arc att köras i läge med minst behörighet. Mer information finns i Operate SQL Server aktiverad av Azure Arc med minst behörighet.
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.
Anmärkning
De tidigare beskrivna åtgärderna kräver att Deployer ansluter till SQL Server som NT AUTHORITY\SYSTEM. Om inloggningen NT AUTHORITY\SYSTEM tas bort, inaktiveras eller nekas CONNECT SQL behörighet kan distribueraren inte utföra någon av dessa åtgärder och Azure-tillägget för SQL Server kan inte etableras. Se Krav för steg för att verifiera och återställa den här inloggningen.
SqlServerExtensionPermissionProvider är en Windows-uppgift. Den kör Deployer.exe för att bevilja eller återkalla privilegier i SQL Server när den identifierar:
- En ny SQL Server-instans installeras på värd
- En instans av SQL Server avinstalleras från värdmaskinen
- En funktion på instansnivå är aktiverad eller inaktiverad, eller så uppdateras inställningarna
- Tilläggstjänsten startas om
- Jit-behörigheter (just-in-time) är aktiverade eller inaktiverade
Anmärkning
Före versionen från juli 2024 var SqlServerExtensionPermissionProvider en schemalagd aktivitet som kördes 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.
För att granska behörigheter, se Behörigheter.
Relaterat innehåll
- Roller på databasnivå
- säkerhetskatalogvyer (Transact-SQL)
- Säkerhetsfunktioner (Transact-SQL)
- Skydda SQL Server-
- GRANT Behörigheter för serverhuvudnamn (Transact-SQL)
- REVOKE Behörigheter för serverhuvudnamn (Transact-SQL)
- DENY Behörigheter för serverhuvudnamn (Transact-SQL)
- Skapa en serverroll
- Azure SQL Database-serverroller för behörighetshantering