Sql Server Agent vaste databaserollen
van toepassing op:SQL Server
Azure SQL Managed Instance
Belangrijk
Op Azure SQL Managed Instanceworden de meeste, maar niet alle FUNCTIES van SQL Server Agent momenteel ondersteund. Zie T-SQL-verschillen tussen Azure SQL Managed Instance en SQL Server voor meer informatie.
SQL Server heeft de volgende msdb
vaste databaserollen, die beheerders meer controle geven over toegang tot SQL Server Agent. De rollen die worden vermeld van de minst tot de meeste bevoegde toegang, zijn:
- SQLAgentUserRole-
- SQLAgentReaderRol
- SQLAgentOperatorRole
Wanneer gebruikers die geen lid zijn van een van deze rollen zijn verbonden met SQL Server in SQL Server Management Studio, is het knooppunt van SQL Server Agent in Objectverkenner niet zichtbaar. Een gebruiker moet lid zijn van een van deze vaste databaserollen of lid zijn van de sysadmin vaste serverrol om SQL Server Agent te kunnen gebruiken.
Machtigingen van vaste rollen in de SQL Server Agent-database
De databaserolmachtigingen van SQL Server Agent zijn concentrisch ten opzichte van elkaar. Met andere woorden, meer bevoorrechte rollen nemen de machtigingen over van minder bevoorrechte rollen op SQL Server Agent-objecten (waaronder waarschuwingen, operators, taken, planningen en proxy's). Als leden van SQLAgentUserRole bijvoorbeeld toegang hebben gekregen tot proxy_A
, hebben leden van zowel SQLAgentReaderRole als SQLAgentOperatorRole automatisch toegang tot deze proxy, ook al is de toegang tot proxy_A
niet expliciet aan hen verleend. Dit kan gevolgen hebben voor de beveiliging, die worden besproken in de volgende secties over elke rol.
SQLAgentUserRole-machtigingen
SQLAgentUserRole is de minst bevoegde van de vaste databaserollen van SQL Server Agent. Het heeft alleen machtigingen voor operators, lokale taken en taakplanningen. Leden van SQLAgentUserRole beschikken alleen over machtigingen voor lokale taken en taakschema's waarvan ze eigenaar zijn. Ze kunnen geen taken met meerdere servers (master- en doelservertaken) gebruiken en ze kunnen het eigendom van taken niet wijzigen om toegang te krijgen tot taken die ze nog niet bezitten. SQLAgentUserRole leden kunnen alleen een lijst met beschikbare proxy's weergeven in de eigenschappen van taakstap dialoogvenster van SQL Server Management Studio. Alleen het knooppunt Taken in SQL Server Management Studio Object Explorer is zichtbaar voor leden van SQLAgentUserRole.
Belangrijk
De SQLAgentReaderRole- en de SQLAgentOperatorRole- zijn automatisch lid van de SQLAgentUserRole-. Dit betekent dat leden van SQLAgentReaderRole en SQLAgentOperatorRole toegang hebben tot alle SQL Server Agent-proxy's die zijn verleend aan de SQLAgentUserRole- en die proxy's kunnen gebruiken.
De volgende tabel bevat een overzicht van SQLAgentUserRole machtigingen voor SQL Server Agent-objecten.
Actie | Bedieners | Lokale taken (alleen in eigendom) | Taakplanningen (alleen planningen in eigendom) | Proxy's |
---|---|---|---|---|
Maken/wijzigen/verwijderen | Nee | Ja Kan het eigendom van taken niet wijzigen. |
Ja | Nee |
Lijst weergeven (opsommen) | Ja Kan een lijst met beschikbare operators ophalen voor gebruik in sp_notify_operator en de taakeigenschappen dialoogvenster van Management Studio. |
Ja | Ja | Ja Lijst met proxy's die alleen beschikbaar zijn in het Taakstap Eigenschappen dialoogvenster van Management Studio. |
In-/uitschakelen | Nee | Ja | Ja | Niet van toepassing |
Eigenschappen weergeven | Nee | Ja | Ja | Nee |
Uitvoeren/stoppen/starten | Niet van toepassing | Ja | Niet van toepassing | Niet van toepassing |
Taakgeschiedenis weergeven | Niet van toepassing | Ja | Niet van toepassing | Niet van toepassing |
Taakgeschiedenis verwijderen | Niet van toepassing | Nee Leden van SQLAgentUserRole- moeten expliciet de EXECUTE machtiging krijgen voor sp_purge_jobhistory om de taakgeschiedenis te verwijderen voor taken waarvan ze eigenaar zijn. Ze kunnen de taakgeschiedenis voor andere taken niet verwijderen. |
Niet van toepassing | Niet van toepassing |
Koppelen/loskoppelen | Niet van toepassing | Niet van toepassing | Ja | Niet van toepassing |
SQLAgentReaderRole-machtigingen
SQLAgentReaderRole- bevat alle sqlAgentUserRole- machtigingen, evenals machtigingen voor het weergeven van de lijst met beschikbare multiservertaken, hun eigenschappen en hun geschiedenis. Leden van deze rol kunnen ook de lijst met alle beschikbare taken en taakplanningen en hun eigenschappen bekijken, niet alleen die taken en taakplanningen waarvan ze eigenaar zijn. SQLAgentReaderRole leden kunnen het eigendom van taken niet wijzigen om toegang te krijgen tot taken die ze nog niet bezitten. Alleen het knooppunt Taken in SQL Server Management Studio Object Explorer is zichtbaar voor leden van de SQLAgentReaderRole-.
Belangrijk
Leden van SQLAgentReaderRole zijn automatisch lid van de SQLAgentUserRole. Dit betekent dat leden van SQLAgentReaderRole toegang hebben tot alle SQL Server Agent-proxy's die zijn verleend aan SQLAgentUserRole- en deze proxy's kunnen gebruiken.
De volgende tabel bevat een overzicht van SQLAgentReaderRole machtigingen voor SQL Server Agent-objecten.
Actie | Exploitanten | Lokale banen | Taken met meerdere servers | Taakplanningen | Proxies |
---|---|---|---|---|---|
Maken/wijzigen/verwijderen | Nee | Ja (alleen eigen taken) Kan het eigendom van de functie niet wijzigen. |
Nee | Ja (alleen eigen planningen) | Nee |
Lijst weergeven (opsommen) | Ja Kan een lijst met beschikbare operators ophalen voor gebruik in sp_notify_operator en de taakeigenschappen dialoogvenster van Management Studio. |
Ja | Ja | Ja | Ja Lijst met proxy's die alleen beschikbaar zijn in het dialoogvenster voor taakstapeigenschappen van Management Studio. |
In-/uitschakelen | Nee | Ja (alleen eigen banen) | Nee | Ja (alleen eigen planningen) | Niet van toepassing |
Eigenschappen weergeven | Nee | Ja | Ja | Ja | Nee |
Eigenschappen bewerken | Nee | Ja (alleen eigen taken) | Nee | Ja (alleen eigen planningen) | Nee |
Uitvoeren/stoppen/starten | Niet van toepassing | Ja (alleen eigen taken) | Nee | Niet van toepassing | Niet van toepassing |
Taakgeschiedenis weergeven | Niet van toepassing | Ja | Ja | Niet van toepassing | Niet van toepassing |
Taakgeschiedenis verwijderen | Niet van toepassing | Nee Leden van SQLAgentReaderRole- moeten expliciet de EXECUTE machtiging krijgen voor sp_purge_jobhistory om de taakgeschiedenis te verwijderen voor taken waarvan ze eigenaar zijn. Ze kunnen de taakgeschiedenis voor andere taken niet verwijderen. |
Nee | Niet van toepassing | Niet van toepassing |
Koppelen/loskoppelen | Niet van toepassing | Niet van toepassing | Niet van toepassing | Ja (alleen planningen in eigendom) | Niet van toepassing |
SQLAgentOperatorRole-machtigingen
SQLAgentOperatorRole- is de meest bevoegde van de vaste databaserollen van SQL Server Agent. Het bevat alle machtigingen van SQLAgentUserRole en SQLAgentReaderRole. Leden van deze rol kunnen ook eigenschappen voor operators en proxy's bekijken en beschikbare proxy's en waarschuwingen op de server inventariseren.
SQLAgentOperatorRole leden extra machtigingen hebben voor lokale taken en planningen. Ze kunnen alle lokale taken uitvoeren, stoppen of starten en ze kunnen de taakgeschiedenis voor elke lokale taak op de server verwijderen. Ze kunnen ook alle lokale taken en planningen op de server in- of uitschakelen. Als u lokale taken of planningen wilt in- of uitschakelen, moeten leden van deze rol de opgeslagen procedures sp_update_job
en sp_update_schedule
gebruiken. Alleen de parameters die de taak- of planningsnaam of -id opgeven en de parameter @enabled
kunnen worden opgegeven door leden van SQLAgentOperatorRole. Als ze andere parameters opgeven, mislukt de uitvoering van deze opgeslagen procedures.
SQLAgentOperatorRole leden kunnen het eigendom van taken niet wijzigen om toegang te krijgen tot taken die ze nog niet bezitten.
De jobs, alerts, operatorsen proxy's in de Object Explorer van SQL Server Management Studio zijn zichtbaar voor leden van de rol SQLAgentOperatorRole. Alleen het foutenlogboeken knooppunt is niet zichtbaar voor leden van deze rol.
Belangrijk
Leden van SQLAgentOperatorRole- zijn automatisch lid van SQLAgentUserRole en SQLAgentReaderRole. Dit betekent dat leden van SQLAgentOperatorRole toegang hebben tot alle SQL Server Agent-proxy's die zijn verleend aan SQLAgentUserRole- of SQLAgentReaderRole en die proxy's kunnen gebruiken.
De volgende tabel bevat een overzicht van SQLAgentOperatorRole machtigingen voor SQL Server Agent-objecten.
Actie | Waarschuwingen | Bedieners | Lokale banen | Taken met meerdere servers | Taakplanningen | Proxies |
---|---|---|---|---|---|---|
Maken/wijzigen/verwijderen | Nee | Nee | Ja (alleen eigen taken) Kan het eigendom van functies niet wijzigen. |
Nee | Ja (alleen planningen in eigendom) | Nee |
Lijst weergeven (opsommen) | Ja | Ja Kan een lijst met beschikbare operators ophalen voor gebruik in sp_notify_operator en de taakeigenschappen dialoogvenster van Management Studio. |
Ja | Ja | Ja | Ja |
In-/uitschakelen | Nee | Nee | Ja SQLAgentOperatorRole leden kunnen lokale taken in- of uitschakelen die ze niet bezitten met behulp van de opgeslagen procedure sp_update_job en waarden voor de @enabled en de parameters @job_id (of @job_name ) specificeren. Als een lid van deze rol andere parameters voor deze opgeslagen procedure opgeeft, mislukt de uitvoering van de procedure. |
Nee | Ja SQLAgentOperatorRole leden kunnen schema's die ze niet bezitten, in- of uitschakelen door de opgeslagen procedure sp_update_schedule te gebruiken en waarden op te geven voor de parameters @enabled en @schedule_id (of @name ). Als een lid van deze rol andere parameters voor deze opgeslagen procedure opgeeft, mislukt de uitvoering van de procedure. |
Niet van toepassing |
Eigenschappen weergeven | Ja | Ja | Ja | Ja | Ja | Ja |
Eigenschappen bewerken | Nee | Nee | Ja (alleen voor eigen taken) | Nee | Ja (alleen eigen schema's) | Nee |
Uitvoeren/stoppen/starten | Niet van toepassing | Niet van toepassing | Ja | Nee | Niet van toepassing | Niet van toepassing |
Taakgeschiedenis weergeven | Niet van toepassing | Niet van toepassing | Ja | Ja | Niet van toepassing | Niet van toepassing |
Taakgeschiedenis verwijderen | Niet van toepassing | Niet van toepassing | Ja | Nee | Niet van toepassing | Niet van toepassing |
Koppelen/loskoppelen | Niet van toepassing | Niet van toepassing | Niet van toepassing | Niet van toepassing | Ja (alleen eigendom van de gebruiker planningen) | Niet van toepassing |
Meerdere rollen toewijzen aan gebruikers
Leden van de sysadmin vaste serverfunctie hebben toegang tot alle sql Server Agent-functionaliteit. Als een gebruiker geen lid is van de sysadmin rol, maar lid is van meer dan één vaste SQL Server Agent-databaserol, is het belangrijk om het concentrische machtigingsmodel van deze rollen te onthouden. Omdat meer bevoorrechte rollen altijd alle machtigingen van minder bevoorrechte rollen bevatten, heeft een gebruiker die lid is van meer dan één rol automatisch de machtigingen die zijn gekoppeld aan de meest bevoorrechte rol waarvan de gebruiker lid is.