SQL Server 에이전트 고정 데이터베이스 역할SQL Server Agent Fixed Database Roles

SQL ServerSQL Server 관리자에게 에이전트에 대한 보다 세부적인 액세스 제어 기능을 제공하는 다음과 같은 msdb SQL ServerSQL Server 데이터베이스 고정 데이터베이스 역할을 제공합니다. Agent. 다음 역할은 액세스 권한이 적은 것부터 순서대로 나열되어 있습니다.The roles listed from least to most privileged access are:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

이러한 역할 중 하나의 멤버가 아닌 사용자가 SQL ServerSQL Server 에서 SQL Server Management StudioSQL Server Management Studio에 연결한 경우 개체 탐색기의 SQL Server 에이전트 노드가 표시되지 않습니다.When users who are not members of one of these roles are connected to SQL ServerSQL Server in SQL Server Management StudioSQL Server Management Studio, the SQL Server Agent node in Object Explorer is not visible. 사용자가 에이전트를 사용하려면 이러한 고정 데이터베이스 역할 중 하나의 멤버이거나 sysadmin SQL ServerSQL Server 고정 서버 역할의 멤버여야 합니다.A user must be a member of one of these fixed database roles or a member of the sysadmin fixed server role to use SQL ServerSQL Server Agent.

SQL Server 에이전트 고정 데이터베이스 역할의 사용 권한Permissions of SQL Server Agent Fixed Database Roles

SQL ServerSQL Server 에이전트 데이터베이스 역할 사용 권한은 상호 공통적 특성을 갖고 있으며, 사용 권한이 많은 역할은 SQL ServerSQL Server 에이전트 개체(예: 경고, 운영자, 작업, 일정 및 프록시)에 대해 사용 권한이 적은 역할의 사용 권한을 상속합니다.The SQL ServerSQL Server Agent database role permissions are concentric in relation to one another -- more privileged roles inherit the permissions of less privileged roles on SQL ServerSQL Server Agent objects (including alerts, operators, jobs, schedules, and proxies). 예를 들어 사용 권한이 가장 적은 SQLAgentUserRole 의 멤버에 proxy_A에 대한 액세스가 부여된 경우 SQLAgentReaderRoleSQLAgentOperatorRole 의 멤버는 proxy_A에 대한 액세스가 명시적으로 부여되지 않았더라도 이 프록시에 대한 액세스를 자동으로 갖습니다.For example, if members of least-privileged SQLAgentUserRole have been granted access to proxy_A, members of both SQLAgentReaderRole and SQLAgentOperatorRole automatically have access to this proxy even though access to proxy_A has not been explicitly granted to them. 이러한 방식은 보안 문제를 발생시킬 수 있으며 이에 대해서는 각 역할에 대한 다음 섹션에서 설명됩니다.This may have security implications, which are discussed in the following sections about each role.

SQLAgentUserRole 사용 권한SQLAgentUserRole Permissions

SQLAgentUserRoleSQL ServerSQL Server 에이전트 고정 데이터베이스 역할 중 가장 사용 권한이 적은 역할입니다.SQLAgentUserRole is the least privileged of the SQL ServerSQL Server Agent fixed database roles. 이 역할에는 운영자, 로컬 작업 및 작업 일정에 대한 사용 권한만 있습니다.It has permissions on only operators, local jobs, and job schedules. SQLAgentUserRole 의 멤버는 자신이 소유하는 로컬 작업 및 작업 일정에 대한 사용 권한만 갖습니다.Members of SQLAgentUserRole have permissions on only local jobs and job schedules that they own. 이 역할의 멤버는 다중 서버 작업(마스터 및 대상 서버 작업)을 사용할 수 없으며 자신이 소유하지 않는 작업에 대한 액세스를 얻기 위해 작업 소유권을 변경할 수 없습니다.They cannot use multiserver jobs (master and target server jobs), and they cannot change job ownership to gain access to jobs that they do not already own. SQLAgentUserRole 멤버는 작업 단계 속성 SQL Server Management StudioSQL Server Management Studio대화 상자에서만 사용 가능한 프록시 목록을 볼 수 있습니다.SQLAgentUserRole members can view a list of available proxies only in the Job Step Properties dialog box of SQL Server Management StudioSQL Server Management Studio. SQLAgentUserRole 멤버에게는 SQL Server Management StudioSQL Server Management Studio 개체 탐색기의 작업노드만 표시됩니다.Only the Jobs node in SQL Server Management StudioSQL Server Management Studio Object Explorer is visible to members of SQLAgentUserRole.

중요

* SQL ServerSQL Server*Agentdatabaseroles멤버에 프록시 액세스 권한을 부여하기 전에 보안 문자를 신중히 고려해야 합니다.Consider the security implications before granting proxy access to members of the SQL ServerSQL ServerAgentdatabaseroles. SQLAgentReaderRoleSQLAgentOperatorRole 은 자동으로 SQLAgentUserRole의 멤버가 됩니다.The SQLAgentReaderRole and the SQLAgentOperatorRole are automatically members of the SQLAgentUserRole. 즉, SQLAgentReaderRoleSQLAgentOperatorRole 의 멤버는 SQL ServerSQL Server SQLAgentUserRole 에 부여된 모든 에이전트 프록시에 대한 액세스를 가지며 이러한 프록시를 사용할 수 있습니다.This means that members of SQLAgentReaderRole and SQLAgentOperatorRole have access to all SQL ServerSQL Server Agent proxies that have been granted to the SQLAgentUserRole and can use those proxies.

다음 표에서는 에이전트 개체에 대한 SQLAgentUserRole SQL ServerSQL Server 사용 권한을 요약합니다.The following table summarizes SQLAgentUserRole permissions on SQL ServerSQL Server Agent objects.

동작Action 연산자Operators 로컬 작업Local jobs

(소유한 작업만 해당)(owned jobs only)
작업 일정Job schedules

(소유한 작업만 해당)(owned schedules only)
프록시Proxies
생성/수정/삭제Create/modify/delete 아니오No Yes

작업 소유권을 변경할 수 없습니다.Cannot change job ownership.
Yes 아니오No
목록 보기(열거)View list (enumerate) Yes

sp_notify_operator 및 Management Studio의 작업 속성 대화 상자에서 사용할 수 있는 운영자 목록을 가져올 수 있습니다.Can get list of available operators for use in sp_notify_operator and the Job Properties dialog box of Management Studio.
Yes Yes Yes

Management Studio의 작업 단계 속성 대화 상자에서 사용할 수 있는 프록시만 나열합니다.List of proxies only available in the Job Step Properties dialog box of Management Studio.
설정/해제Enable/disable 아니오No Yes Yes 해당 사항 없음Not applicable
속성 보기View properties 아니오No Yes Yes 아니오No
실행/중지/시작Execute/stop/start 해당 사항 없음Not applicable Yes 해당 사항 없음Not applicable 해당 사항 없음Not applicable
작업 기록 보기View job history 해당 사항 없음Not applicable Yes 해당 사항 없음Not applicable 해당 사항 없음Not applicable
작업 기록 삭제Delete job history 해당 사항 없음Not applicable 아니오No

SQLAgentUserRole 의 멤버가 자신이 소유한 작업에 대한 작업 기록을 삭제하려면 sp_purge_jobhistory 에 대한 EXECUTE 권한이 명시적으로 부여되어야 합니다.Members of SQLAgentUserRole must explicitly be granted the EXECUTE permission on sp_purge_jobhistory to delete job history on jobs that they own. 이 멤버는 다른 작업에 대한 작업 기록은 삭제할 수 없습니다.They cannot delete job history for any other jobs.
해당 사항 없음Not applicable 해당 사항 없음Not applicable
연결/분리Attach/detach 해당 사항 없음Not applicable 해당 사항 없음Not applicable Yes 해당 사항 없음Not applicable

SQLAgentReaderRole 사용 권한SQLAgentReaderRole Permissions

SQLAgentReaderRole 에는 모든 SQLAgentUserRole 사용 권한 뿐만 아니라 사용 가능한 다중 서버 작업, 해당 속성 및 해당 기록 목록을 볼 수 있는 권한이 포함됩니다.SQLAgentReaderRole includes all the SQLAgentUserRole permissions as well as permissions to view the list of available multiserver jobs, their properties, and their history. 이 역할의 멤버는 또한 자신이 소유하는 작업과 작업 일정뿐만 아니라 사용 가능한 모든 작업과 작업 일정 및 해당 속성 목록을 볼 수 있습니다.Members of this role can also view the list of all available jobs and job schedules and their properties, not just those jobs and job schedules that they own. SQLAgentReaderRole 멤버는 자신이 소유하지 않는 작업에 대한 액세스를 얻기 위해 작업 소유권을 변경할 수 없습니다.SQLAgentReaderRole members cannot change job ownership to gain access to jobs that they do not already own. SQLAgentReaderRole 멤버에게는 SQL Server Management StudioSQL Server Management Studio 개체 탐색기의 작업노드만 표시됩니다.Only the Jobs node in SQL Server Management StudioSQL Server Management Studio Object Explorer is visible to members of the SQLAgentReaderRole.

중요

* SQL ServerSQL Server*Agentdatabaseroles멤버에 프록시 액세스 권한을 부여하기 전에 보안 문자를 신중히 고려해야 합니다.Consider the security implications before granting proxy access to members of the SQL ServerSQL ServerAgentdatabaseroles. SQLAgentReaderRole 의 멤버는 자동으로 SQLAgentUserRole의 멤버가 됩니다.Members of SQLAgentReaderRole are automatically members of the SQLAgentUserRole. 즉, SQLAgentReaderRole 의 멤버는 SQL ServerSQL Server SQLAgentUserRole 에 부여된 모든 에이전트 프록시에 대한 액세스를 가지며 이러한 프록시를 사용할 수 있습니다.This means that members of SQLAgentReaderRole have access to all SQL ServerSQL Server Agent proxies that have been granted to SQLAgentUserRole and can use those proxies.

다음 표에서는 에이전트 개체에 대한 SQLAgentReaderRole SQL ServerSQL Server 사용 권한을 요약합니다.The following table summarizes SQLAgentReaderRole permissions on SQL ServerSQL Server Agent objects.

동작Action 연산자Operators 로컬 작업Local jobs 다중 서버 작업Multiserver jobs 작업 일정Job schedules 프록시Proxies
생성/수정/삭제Create/modify/delete 아니오No 예(소유한 작업만 해당)Yes (owned jobs only)

작업 소유권을 변경할 수 없습니다.Cannot change job ownership.
아니오No 예(소유한 작업만 해당)Yes (owned schedules only) 아니오No
목록 보기(열거)View list (enumerate) Yes

sp_notify_operator 및 Management Studio의 작업 속성 대화 상자에서 사용할 수 있는 운영자 목록을 가져올 수 있습니다.Can get list of available operators for use in sp_notify_operator and the Job Properties dialog box of Management Studio.
Yes Yes Yes Yes

Management Studio의 작업 단계 속성 대화 상자에서 사용할 수 있는 프록시만 나열합니다.List of proxies only available in the Job Step Properties dialog box of Management Studio.
설정/해제Enable/disable 아니오No 예(소유한 작업만 해당)Yes (owned jobs only) 아니오No 예(소유한 작업만 해당)Yes (owned schedules only) 해당 사항 없음Not applicable
속성 보기View properties 아니오No Yes Yes Yes 아니오No
속성 편집Edit properties 아니오No 예(소유한 작업만 해당)Yes (owned jobs only) 아니오No 예(소유한 작업만 해당)Yes (owned schedules only) 아니오No
실행/중지/시작Execute/stop/start 해당 사항 없음Not applicable 예(소유한 작업만 해당)Yes (owned jobs only) 아니오No 해당 사항 없음Not applicable 해당 사항 없음Not applicable
작업 기록 보기View job history 해당 사항 없음Not applicable Yes Yes 해당 사항 없음Not applicable 해당 사항 없음Not applicable
작업 기록 삭제Delete job history 해당 사항 없음Not applicable 아니오No

SQLAgentReaderRole 의 멤버가 자신이 소유한 작업에 대한 작업 기록을 삭제하려면 sp_purge_jobhistory 에 대한 EXECUTE 권한이 명시적으로 부여되어야 합니다.Members of SQLAgentReaderRole must explicitly be granted the EXECUTE permission on sp_purge_jobhistory to delete job history on jobs that they own. 이 멤버는 다른 작업에 대한 작업 기록은 삭제할 수 없습니다.They cannot delete job history for any other jobs.
아니오No 해당 사항 없음Not applicable 해당 사항 없음Not applicable
연결/분리Attach/detach 해당 사항 없음Not applicable 해당 사항 없음Not applicable 해당 사항 없음Not applicable 예(소유한 작업만 해당)Yes (owned schedules only) 해당 사항 없음Not applicable

SQLAgentOperatorRole 사용 권한SQLAgentOperatorRole Permissions

SQLAgentOperatorRoleSQL ServerSQL Server 에이전트 고정 데이터베이스 역할 중 가장 사용 권한이 많은 역할입니다.SQLAgentOperatorRole is the most privileged of the SQL ServerSQL Server Agent fixed database roles. 여기에는 SQLAgentUserRoleSQLAgentReaderRole의 모든 사용 권한이 포함됩니다.It includes all the permissions of SQLAgentUserRole and SQLAgentReaderRole. 이 역할의 멤버는 또한 운영자 및 프록시의 속성을 볼 수 있으며 서버에서 사용 가능한 프록시와 경고를 열거할 수 있습니다.Members of this role can also view properties for operators and proxies, and enumerate available proxies and alerts on the server.

SQLAgentOperatorRole 멤버는 로컬 작업 및 일정에 대한 추가 사용 권한을 갖습니다.SQLAgentOperatorRole members have additional permissions on local jobs and schedules. 이 멤버는 모든 로컬 작업을 실행, 중지 또는 시작할 수 있으며 서버의 모든 로컬 작업에 대한 작업 기록을 삭제할 수 있습니다.They can execute, stop, or start all local jobs, and they can delete the job history for any local job on the server. 또한 서버의 모든 로컬 작업과 일정을 설정 또는 해제할 수 있습니다.They can also enable or disable all local jobs and schedules on the server. 로컬 작업이나 일정을 설정 또는 해제하려면 이 역할의 멤버가 sp_update_jobsp_update_schedule저장 프로시저를 사용해야 합니다.To enable or disable local jobs or schedules, members of this role must use the stored procedures sp_update_job and sp_update_schedule. SQLAgentOperatorRole 멤버는 작업 또는 일정 이름이나 식별자를 지정하는 매개 변수와 @enabled 매개 변수만 지정할 수 있습니다.Only the parameters that specify the job or schedule name or identifier and the @enabled parameter can be specified by members of SQLAgentOperatorRole. 다른 매개 변수를 지정하면 해당 저장 프로시저 실행이 실패합니다.If they specify any other parameters, execution of these stored procedures fails. SQLAgentOperatorRole 멤버는 자신이 소유하지 않는 작업에 대한 액세스를 얻기 위해 작업 소유권을 변경할 수 없습니다.SQLAgentOperatorRole members cannot change job ownership to gain access to jobs that they do not already own.

개체 탐색기의작업 ,경고 ,운영자 프록시 SQL Server Management StudioSQL Server Management StudioSQLAgentOperatorRole의 멤버에게 표시됩니다.The Jobs, Alerts, Operators, and Proxies nodes in SQL Server Management StudioSQL Server Management Studio Object Explorer are visible to members of SQLAgentOperatorRole. 이 역할의 멤버에게는 오류 로그 노드만 표시되지 않습니다.Only the Error Logs node is not visible to members of this role.

중요

* SQL ServerSQL Server*Agentdatabaseroles멤버에 프록시 액세스 권한을 부여하기 전에 보안 문자를 신중히 고려해야 합니다.Consider the security implications before granting proxy access to members of the SQL ServerSQL ServerAgentdatabaseroles. SQLAgentOperatorRole 의 멤버는 자동으로 SQLAgentUserRoleSQLAgentReaderRole의 멤버가 됩니다.Members of SQLAgentOperatorRole are automatically members of SQLAgentUserRole and SQLAgentReaderRole. 즉, SQLAgentOperatorRole 의 멤버는 SQL ServerSQL Server SQLAgentUserRole 또는 SQLAgentReaderRole 에 부여된 모든 에이전트 프록시에 대한 액세스를 가지며 이러한 프록시를 사용할 수 있습니다.This means that members of SQLAgentOperatorRole have access to all SQL ServerSQL Server Agent proxies that have been granted to either SQLAgentUserRole or SQLAgentReaderRole and can use those proxies.

다음 표에서는 에이전트 개체에 대한 SQLAgentOperatorRole SQL ServerSQL Server 사용 권한을 요약합니다.The following table summarizes SQLAgentOperatorRole permissions on SQL ServerSQL Server Agent objects.

동작Action ,Alerts 연산자Operators 로컬 작업Local jobs 다중 서버 작업Multiserver jobs 작업 일정Job schedules 프록시Proxies
생성/수정/삭제Create/modify/delete 아니오No 아니오No 예(소유한 작업만 해당)Yes (owned jobs only)

작업 소유권을 변경할 수 없습니다.Cannot change job ownership.
아니오No 예(소유한 작업만 해당)Yes (owned schedules only) 아니오No
목록 보기(열거)View list (enumerate) Yes Yes

sp_notify_operator 및 Management Studio의 작업 속성 대화 상자에서 사용할 수 있는 운영자 목록을 가져올 수 있습니다.Can get list of available operators for use in sp_notify_operator and the Job Properties dialog box of Management Studio.
Yes Yes Yes Yes
설정/해제Enable/disable 아니오No 아니요No Yes

SQLAgentOperatorRole 멤버는 sp_update_job 저장 프로시저를 사용하고 @enabled@job_id (또는 @job_name) 매개 변수를 지정하여 자신이 소유하지 않은 로컬 작업을 설정 또는 해제할 수 있습니다.SQLAgentOperatorRole members can enable or disable local jobs they do not own by using the stored procedure sp_update_job and specifying values for the @enabled and the @job_id (or @job_name) parameters. 이 역할의 멤버가 이 저장 프로시저에 다른 매개 변수를 지정하는 경우 프로시저 실행이 실패합니다.If a member of this role specifies any other parameters for this stored procedure, execution of the procedure will fail.
아니오No Yes

SQLAgentOperatorRole 멤버는 sp_update_schedule 저장 프로시저를 사용하고 @enabled@schedule_id (또는 @name) 매개 변수를 지정하여 자신이 소유하지 않은 로컬 작업을 설정 또는 해제할 수 있습니다.SQLAgentOperatorRole members can enable or disable schedules they do not own by using the stored procedure sp_update_schedule and specifying values for the @enabled and the @schedule_id (or @name) parameters. 이 역할의 멤버가 이 저장 프로시저에 다른 매개 변수를 지정하는 경우 프로시저 실행이 실패합니다.If a member of this role specifies any other parameters for this stored procedure, execution of the procedure will fail.
해당 사항 없음Not applicable
속성 보기View properties Yes Yes Yes Yes Yes Yes
속성 편집Edit properties 아니오No 아니오No 예(소유한 작업만 해당)Yes (owned jobs only) 아니오No 예(소유한 작업만 해당)Yes (owned schedules only) 아니오No
실행/중지/시작Execute/stop/start 해당 사항 없음Not applicable 해당 사항 없음Not applicable Yes 아니오No 해당 사항 없음Not applicable 해당 사항 없음Not applicable
작업 기록 보기View job history 해당 사항 없음Not applicable 해당 사항 없음Not applicable Yes Yes 해당 사항 없음Not applicable 해당 사항 없음Not applicable
작업 기록 삭제Delete job history 해당 사항 없음Not applicable 해당 사항 없음Not applicable Yes 아니오No 해당 사항 없음Not applicable 해당 사항 없음Not applicable
연결/분리Attach/detach 해당 사항 없음Not applicable 해당 사항 없음Not applicable 해당 사항 없음Not applicable 해당 사항 없음Not applicable 예(소유한 작업만 해당)Yes (owned schedules only) 해당 사항 없음Not applicable

사용자에게 다중 역할 할당Assigning Users Multiple Roles

sysadmin 고정 서버 역할의 멤버는 모든 SQL ServerSQL Server 에이전트 기능에 액세스할 수 있습니다.Members of the sysadmin fixed server role have access to all SQL ServerSQL Server Agent functionality. 사용자가 sysadmin 역할의 멤버가 아니지만 하나 이상의 SQL ServerSQL Server 에이전트 고정 데이터베이스 역할의 멤버인 경우 이러한 역할에 대한 공통적 사용 권한 모델을 고려해야 합니다.If a user is not a member of the sysadmin role, but is a member of more than one SQL ServerSQL Server Agent fixed database role, it is important to remember the concentric permissions model of these roles. 사용 권한이 많은 역할은 항상 사용 권한이 적은 역할의 모든 사용 권한을 포함하기 때문에 두 개 이상의 역할의 멤버는 해당 사용자가 멤버로 속한 사용 권한이 가장 많은 역할과 관련된 사용 권한을 자동으로 갖습니다.Because more privileged roles always contain all the permissions of less privileged roles, a user who is a member of more than one role automatically has the permissions associated with the most privileged role that the user is a member of.

참고 항목See Also

SQL Server 에이전트 보안 구현Implement SQL Server Agent Security
sp_update_job(Transact-SQL)sp_update_job (Transact-SQL)
sp_update_schedule(Transact-SQL)sp_update_schedule (Transact-SQL)
sp_notify_operator(Transact-SQL)sp_notify_operator (Transact-SQL)
sp_purge_jobhistory(Transact-SQL)sp_purge_jobhistory (Transact-SQL)