Dela via


Fasta databasroller för SQL Server Agent

gäller för:SQL ServerAzure SQL Managed Instance

Viktig

Azure SQL Managed Instancestöds de flesta, men inte alla SQL Server Agent-funktioner för närvarande. Se skillnaderna i T-SQL mellan Azure SQL Managed Instance och SQL Server för detaljer.

SQL Server har följande msdb databas fasta databasroller, vilket ger administratörer bättre kontroll över åtkomsten till SQL Server Agent. De roller som anges från minst till mest privilegierad åtkomst är:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

När användare som inte är medlemmar i någon av dessa roller är anslutna till SQL Server i SQL Server Management Studio visas inte SQL Server-agent nod i Object Explorer. En användare måste vara medlem i någon av dessa fasta databasroller eller vara medlem i sysadmin fast serverroll för att kunna använda SQL Server Agent.

Behörigheter för fasta databasroller för SQL Server Agent

Behörigheterna för SQL Server Agent-databasrollen är koncentriska i förhållande till varandra. Med andra ord ärver mer privilegierade roller behörigheter för mindre privilegierade roller på SQL Server Agent-objekt (inklusive aviseringar, operatorer, jobb, scheman och proxyservrar). Om medlemmar i minst privilegierade SQLAgentUserRole har beviljats åtkomst till proxy_Ahar medlemmar i både SQLAgentReaderRole och SQLAgentOperatorRole automatiskt åtkomst till den här proxyn även om åtkomst till proxy_A inte uttryckligen har beviljats dem. Detta kan ha säkerhetskonsekvenser, som beskrivs i följande avsnitt om varje roll.

SQLAgentUserRole-behörigheter

SQLAgentUserRole är den minst privilegierade av de fasta databasrollerna för SQL Server Agent. Den har endast behörigheter för operatorer, lokala jobb och jobbscheman. Medlemmar i SQLAgentUserRole har endast behörighet på lokala jobb och jobbscheman som de äger. De kan inte använda multiserverjobb (huvud- och målserverjobb) och de kan inte ändra jobbägarskapet för att få åtkomst till jobb som de inte redan äger. Medlemmar av SQLAgentUserRole- kan endast visa en lista över tillgängliga proxyservrar i dialogrutan för egenskaper hos jobbsteg i SQL Server Management Studio. Endast noden Jobs i SQL Server Management Studio Object Explorer är synlig för medlemmar i SQLAgentUserRole.

Viktig

SQLAgentReaderRole och SQLAgentOperatorRole är automatiskt medlemmar i SQLAgentUserRole-. Det innebär att medlemmar i SQLAgentReaderRole och SQLAgentOperatorRole har åtkomst till alla SQL Server Agent-proxyservrar som har beviljats till SQLAgentUserRole och kan använda dessa proxyservrar.

I följande tabell sammanfattas SQLAgentUserRole behörigheter för SQL Server Agent-objekt.

Åtgärd Operatörer Lokala jobb (endast ägda jobb) Jobbscheman (endast egna scheman) Proxies
Skapa/ändra/ta bort Nej Ja

Det går inte att ändra jobbägarskapet.
Ja Nej
Visa lista (räkna upp) Ja

Kan hämta en lista över tillgängliga operatorer för användning i sp_notify_operator och dialogrutan Jobbegenskaper i Management Studio.
Ja Ja Ja

Lista över proxyservrar som endast är tillgängliga i dialogrutan Egenskaper för jobbsteg i Management Studio.
Aktivera/inaktivera Nej Ja Ja Ej tillämpligt
Visa egenskaper Nej Ja Ja Nej
Kör/stoppa/starta Ej tillämpligt Ja Ej tillämpligt Ej tillämpligt
Visa jobbhistorik Ej tillämpligt Ja Ej tillämpligt Ej tillämpligt
Ta bort jobbhistorik Ej tillämpligt Nej

Medlemmar i SQLAgentUserRole måste uttryckligen beviljas EXECUTE behörighet på sp_purge_jobhistory för att ta bort jobbhistorik för jobb som de äger. De kan inte ta bort jobbhistorik för andra jobb.
Ej tillämpligt Ej tillämpligt
Koppla/koppla från Ej tillämpligt Ej tillämpligt Ja Ej tillämpligt

SQLAgentReaderRole-behörigheter

SQLAgentReaderRole- innehåller alla SQLAgentUserRole- behörigheter, samt behörigheter för att visa listan över tillgängliga multiserverjobb, deras egenskaper och deras historik. Medlemmar i den här rollen kan även se listan över alla tillgängliga jobb och jobbscheman samt deras egenskaper, inte bara de jobb och jobbscheman som de själva äger. SQLAgentReaderRole medlemmar kan inte ändra jobbägarskapet för att få åtkomst till jobb som de inte redan äger. Endast noden Jobs i SQL Server Management Studio Object Explorer är synlig för medlemmar i SQLAgentReaderRole-.

Viktig

Medlemmar i SQLAgentReaderRole är automatiskt medlemmar i SQLAgentUserRole. Det innebär att medlemmar i SQLAgentReaderRole har åtkomst till alla SQL Server Agent-proxyservrar som har beviljats till SQLAgentUserRole- och kan använda dessa proxyservrar.

I följande tabell sammanfattas SQLAgentReaderRole behörigheter för SQL Server Agent-objekt.

Handling Operatörer Lokala jobb Multiserverjobb Jobbscheman Proxies
Skapa/ändra/ta bort Nej Ja (endast ägda jobb)

Det går inte att ändra jobbägarskapet.
Nej Ja (endast ägda scheman) Nej
Visa lista (räkna upp) Ja

Kan hämta en lista över tillgängliga operatorer för användning i sp_notify_operator och dialogrutan Jobbegenskaper i Management Studio.
Ja Ja Ja Ja

Lista över proxyservrar som endast är tillgängliga i dialogrutan Egenskaper för jobbsteg i Management Studio.
Aktivera/inaktivera Nej Ja (endast ägda jobb) Nej Ja (endast ägda scheman) Ej tillämpligt
Visa egenskaper Nej Ja Ja Ja Nej
Redigera egenskaper Nej Ja (endast ägda jobb) Nej Ja (endast scheman som ägs) Nej
Kör/stoppa/starta Ej tillämpligt Ja (endast egenägda jobb) Nej Ej tillämpligt Ej tillämpligt
Visa jobbhistorik Ej tillämpligt Ja Ja Ej tillämpligt Ej tillämpligt
Ta bort jobbhistorik Ej tillämpligt Nej

Medlemmar i SQLAgentReaderRole måste uttryckligen beviljas EXECUTE behörighet på sp_purge_jobhistory för att ta bort jobbhistorik för jobb som de äger. De kan inte ta bort jobbhistorik för andra jobb.
Nej Ej tillämpligt Ej tillämpligt
Koppla/koppla från Ej tillämpligt Ej tillämpligt Ej tillämpligt Ja (endast ägda scheman) Ej tillämpligt

SQLAgentOperatorRole-behörigheter

SQLAgentOperatorRole är den mest privilegierade av de fasta databasrollerna för SQL Server Agent. Den innehåller alla behörigheter för SQLAgentUserRole och SQLAgentReaderRole. Medlemmar i den här rollen kan också visa egenskaper för operatorer och proxyservrar och räkna upp tillgängliga proxyservrar och aviseringar på servern.

SQLAgentOperatorRole medlemmar har extra behörighet för lokala jobb och scheman. De kan köra, stoppa eller starta alla lokala jobb och de kan ta bort jobbhistoriken för alla lokala jobb på servern. De kan också aktivera eller inaktivera alla lokala jobb och scheman på servern. Om du vill aktivera eller inaktivera lokala jobb eller scheman måste medlemmar i den här rollen använda de lagrade procedurerna sp_update_job och sp_update_schedule. Endast de parametrar som anger jobb- eller schemanamnet eller identifieraren och parametern @enabled kan anges av medlemmar i SQLAgentOperatorRole. Om de anger andra parametrar misslyckas körningen av dessa lagrade procedurer. SQLAgentOperatorRole medlemmar kan inte ändra jobbägarskapet för att få åtkomst till jobb som de inte redan äger.

Jobs, Alerts, Operatorsoch Proxies nodes i SQL Server Management Studio Object Explorer är synliga för medlemmar i SQLAgentOperatorRole. Endast noden felloggar är synlig för medlemmar i den här rollen.

Viktig

Medlemmar i SQLAgentOperatorRole är automatiskt medlemmar i SQLAgentUserRole och SQLAgentReaderRole. Det innebär att medlemmar i SQLAgentOperatorRole har åtkomst till alla SQL Server Agent-proxyservrar som har beviljats till antingen SQLAgentUserRole eller SQLAgentReaderRole och kan använda dessa proxyservrar.

I följande tabell sammanfattas SQLAgentOperatorRole behörigheter för SQL Server Agent-objekt.

Handling Varningar Operatörer Lokala jobb Multiserverjobb Jobbscheman Proxyer
Skapa/ändra/ta bort Nej Nej Ja (endast ägda jobb)

Det går inte att ändra jobbägarskapet.
Nej Ja (endast egna scheman) Nej
Visa lista (räkna upp) Ja Ja

Kan hämta en lista över tillgängliga operatorer för användning i sp_notify_operator och dialogrutan Jobbegenskaper i Management Studio.
Ja Ja Ja Ja
Aktivera/inaktivera Nej Nej Ja

SQLAgentOperatorRole- medlemmar kan aktivera eller inaktivera lokala jobb som de inte äger genom att använda den lagrade proceduren sp_update_job och ange värden för parametrarna @enabled och @job_id (eller @job_name). Om en medlem i den här rollen anger andra parametrar för den här lagrade proceduren misslyckas körningen av proceduren.
Nej Ja

SQLAgentOperatorRole medlemmar kan aktivera eller inaktivera scheman som de inte äger med hjälp av den lagrade proceduren sp_update_schedule och ange värden för parametrarna @enabled och @schedule_id (eller @name). Om en medlem i den här rollen anger andra parametrar för den här lagrade proceduren misslyckas körningen av proceduren.
Ej tillämpligt
Visa egenskaper Ja Ja Ja Ja Ja Ja
Redigera egenskaper Nej Nej Ja (endast ägda jobb) Nej Ja (endast egna scheman) Nej
Kör/stoppa/starta Ej tillämpligt Ej tillämpligt Ja Nej Ej tillämpligt Ej tillämpligt
Visa jobbhistorik Ej tillämpligt Ej tillämpligt Ja Ja Ej tillämpligt Ej tillämpligt
Ta bort jobbhistorik Ej tillämpligt Ej tillämpligt Ja Nej Ej tillämpligt Ej tillämpligt
Koppla/koppla från Ej tillämpligt Ej tillämpligt Ej tillämpligt Ej tillämpligt Ja (endast ägarscheman) Ej tillämpligt

Tilldela flera roller till användare

Medlemmar i sysadmin fast serverroll har åtkomst till alla SQL Server Agent-funktioner. Om en användare inte är medlem i sysadmin roll, men är medlem i mer än en fast databasroll för SQL Server Agent, är det viktigt att komma ihåg modellen med koncentriska behörigheter för dessa roller. Eftersom fler privilegierade roller alltid innehåller alla behörigheter för mindre privilegierade roller, har en användare som är medlem i mer än en roll automatiskt de behörigheter som är associerade med den mest privilegierade rollen som användaren är medlem i.