Fasta databasroller för SQL Server Agent
gäller för:SQL Server
Azure SQL Managed Instance
Viktig
På 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_A
har 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.