다음을 통해 공유


SQL Server 에이전트 고정 데이터베이스 역할

적용 대상:SQL ServerAzure SQL Managed Instance

중요합니다

Azure SQL Managed Instance에서는 현재 대부분의 SQL Server 에이전트 기능이 지원되지만, 모든 기능이 지원되는 것은 아닙니다. 자세한 내용은 Azure SQL Managed Instance의 T-SQL과 SQL Server의 차이점 또는 SQL Managed Instance의 SQL 에이전트 작업 제한을 참조하세요.

SQL Server에는 관리자가 SQL Server 에이전트에 대한 액세스를 더 세부적으로 제어할 수 있는 다음과 같은 msdb 데이터베이스 고정 데이터베이스 역할이 있습니다. 최소 권한 액세스에서 가장 권한 있는 액세스까지 나열된 역할은 다음과 같습니다.

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

이러한 역할 중 하나의 멤버가 아닌 사용자가 SQL Server Management Studio의 SQL Server에 연결된 경우 개체 탐색기의 SQL Server 에이전트 노드가 표시되지 않습니다. 사용자는 SQL Server 에이전트를 사용하려면 이러한 고정 데이터베이스 역할 중 하나의 멤버이거나 sysadmin 고정 서버 역할의 멤버여야 합니다.

SQL Server 에이전트 고정 데이터베이스 역할의 권한

SQL Server 에이전트 데이터베이스 역할 권한은 서로 관련하여 동심입니다. 즉, 더 많은 권한 있는 역할은 SQL Server 에이전트 개체(경고, 연산자, 작업, 일정 및 프록시 포함)에 대해 권한이 적은 역할의 권한을 상속합니다. 예를 들어 최소 권한의 SQLAgentUserRole 멤버에 proxy_A대한 액세스 권한이 부여된 경우 SQLAgentReaderRoleSQLAgentOperatorRole 의 멤버는 액세스 권한이 명시적으로 부여되지 않았더라도 이 프록시에 proxy_A 자동으로 액세스할 수 있습니다. 이는 각 역할에 대한 다음 섹션에서 설명하는 보안에 영향을 미칠 수 있습니다.

SQLAgentUserRole 권한

SQLAgentUserRole 은 SQL Server 에이전트 고정 데이터베이스 역할의 최소 권한입니다. 연산자, 로컬 작업 및 작업 일정에 대한 권한만 있습니다. SQLAgentUserRole의 멤버는 자신이 소유한 로컬 작업 및 작업 일정에 대한 권한만 갖습니다. 다중 서버 작업(마스터 및 대상 서버 작업)을 사용할 수 없으며 작업 소유권을 변경하여 아직 소유하지 않은 작업에 액세스할 수 없습니다. SQLAgentUserRole 멤버는 SQL Server Management Studio의 작업 단계 속성 대화 상자에서만 사용 가능한 프록시 목록을 볼 수 있습니다. SQL Server Management Studio 개체 탐색기의 작업 노드만 SQLAgentUserRole의 멤버에게 표시됩니다.

중요합니다

SQLAgentReaderRoleSQLAgentOperatorRole자동으로 SQLAgentUserRole의 멤버입니다. 즉 , SQLAgentReaderRoleSQLAgentOperatorRole 의 멤버는 SQLAgentUserRole 에 부여된 모든 SQL Server 에이전트 프록시에 액세스할 수 있으며 이러한 프록시를 사용할 수 있습니다.

다음 표에서는 SQL Server 에이전트 개체에 대한 SQLAgentUserRole 권한을 요약합니다.

조치 운영자 로컬 작업(소유 작업만 해당) 작업 일정(소유 일정만 해당) 프록시
만들기/수정/삭제 아니오

작업 소유권을 변경할 수 없습니다.
아니오
목록 보기(열거형)

사용할 sp_notify_operator 수 있는 연산자 목록과 Management Studio의 작업 속성 대화 상자를 가져올 수 있습니다.


Management Studio의 작업 단계 속성 대화 상자에서만 사용할 수 있는 프록시 목록입니다.
사용/사용 안 함 아니오 해당 없음
속성 보기 아니오 아니오
실행/중지/시작 해당 없음 해당 없음 해당 없음
작업 기록 보기 해당 없음 해당 없음 해당 없음
작업 기록 삭제 해당 없음 아니오

SQLAgentUserRole의 멤버는 자신이 소유한 작업에 대한 EXECUTE 작업 기록을 삭제할 수 있는 권한을 명시적으로 부여 sp_purge_jobhistory 해야 합니다. 다른 작업에 대한 작업 기록은 삭제할 수 없습니다.
해당 없음 해당 없음
연결/분리 해당 없음 해당 없음 해당 없음

SQLAgentReaderRole 권한

SQLAgentReaderRole 에는 사용 가능한 다중 서버 작업 목록, 해당 속성 및 기록을 볼 수 있는 권한뿐만 아니라 모든 SQLAgentUserRole 권한이 포함됩니다. 이 역할의 멤버는 자신이 소유한 작업 및 작업 일정뿐만 아니라 사용 가능한 모든 작업 및 작업 일정 및 해당 속성 목록을 볼 수도 있습니다. SQLAgentReaderRole 멤버는 아직 소유하지 않은 작업에 액세스하기 위해 작업 소유권을 변경할 수 없습니다. SQL Server Management Studio 개체 탐색기의 작업 노드만 SQLAgentReaderRole의 멤버에게 표시됩니다.

중요합니다

SQLAgentReaderRole의 멤버는 자동으로 SQLAgentUserRole의 멤버입니다. 즉 , SQLAgentReaderRole 의 멤버는 SQLAgentUserRole 에 부여된 모든 SQL Server 에이전트 프록시에 액세스할 수 있으며 이러한 프록시를 사용할 수 있습니다.

다음 표에서는 SQL Server 에이전트 개체에 대한 SQLAgentReaderRole 권한을 요약합니다.

조치 운영자 로컬 작업 다중 서버 작업 작업 일정 프록시
만들기/수정/삭제 아니오 예(소유 작업만 해당)

작업 소유권을 변경할 수 없습니다.
아니오 예(소유 일정만 해당) 아니오
목록 보기(열거형)

사용할 sp_notify_operator 수 있는 연산자 목록과 Management Studio의 작업 속성 대화 상자를 가져올 수 있습니다.


Management Studio의 작업 단계 속성 대화 상자에서만 사용할 수 있는 프록시 목록입니다.
사용/사용 안 함 아니오 예(소유 작업만 해당) 아니오 예(소유 일정만 해당) 해당 없음
속성 보기 아니오 아니오
속성 편집 아니오 예(소유 작업만 해당) 아니오 예(소유 일정만 해당) 아니오
실행/중지/시작 해당 없음 예(소유 작업만 해당) 아니오 해당 없음 해당 없음
작업 기록 보기 해당 없음 해당 없음 해당 없음
작업 기록 삭제 해당 없음 아니오

SQLAgentReaderRole의 멤버는 자신이 소유한 작업에 대한 작업 기록을 삭제하기 위해 EXECUTEsp_purge_jobhistory 권한을 명시적으로 부여받아야 합니다. 다른 작업에 대한 작업 기록은 삭제할 수 없습니다.
아니오 해당 없음 해당 없음
연결/분리 해당 없음 해당 없음 해당 없음 예(소유 일정만 해당) 해당 없음

SQLAgentOperatorRole 권한

SQLAgentOperatorRole 은 SQL Server 에이전트 고정 데이터베이스 역할의 가장 권한이 있습니다. 여기에는 SQLAgentUserRoleSQLAgentReaderRole의 모든 권한이 포함됩니다. 이 역할의 멤버는 연산자 및 프록시에 대한 속성을 보고 서버에서 사용 가능한 프록시 및 경고를 열거할 수도 있습니다.

SQLAgentOperatorRole 멤버에는 로컬 작업 및 일정에 대한 추가 권한이 있습니다. 모든 로컬 작업을 실행, 중지 또는 시작할 수 있으며 서버의 모든 로컬 작업에 대한 작업 기록을 삭제할 수 있습니다. 서버에서 모든 로컬 작업 및 일정을 사용하거나 사용하지 않도록 설정할 수도 있습니다. 로컬 작업 또는 일정을 활성화하거나 비활성화하려면 이 역할의 멤버가 저장 프로시저 sp_update_jobsp_update_schedule를 사용해야 합니다. 작업 또는 일정 이름 또는 식별자를 지정하는 매개 변수와 @enabled 매개 변수만 SQLAgentOperatorRole의 멤버로 지정할 수 있습니다. 다른 매개 변수를 지정하면 이러한 저장 프로시저의 실행이 실패합니다. SQLAgentOperatorRole 멤버는 아직 소유하지 않은 작업에 액세스하기 위해 작업 소유권을 변경할 수 없습니다.

SQL Server Management Studio 개체 탐색기의 작업, 경고, 연산자 및 프록시 노드는 SQLAgentOperatorRole의 멤버에게 표시됩니다. 오류 로그 노드만 이 역할의 멤버에게 표시되지 않습니다.

중요합니다

SQLAgentOperatorRole의 멤버는 SQLAgentUserRoleSQLAgentReaderRole의 자동으로 멤버입니다. 즉 , SQLAgentOperatorRole 의 멤버는 SQLAgentUserRole 또는 SQLAgentReaderRole 에 부여된 모든 SQL Server 에이전트 프록시에 액세스할 수 있으며 이러한 프록시를 사용할 수 있습니다.

다음 표에서는 SQL Server 에이전트 개체에 대한 SQLAgentOperatorRole 권한을 요약합니다.

조치 경고 운영자 로컬 작업 다중 서버 작업 작업 일정 프록시
만들기/수정/삭제 아니오 아니오 예(소유 작업만 해당)

작업 소유권을 변경할 수 없습니다.
아니오 예(소유 일정만 해당) 아니오
목록 보기(열거형)

사용할 sp_notify_operator 수 있는 연산자 목록과 Management Studio의 작업 속성 대화 상자를 가져올 수 있습니다.
사용/사용 안 함 아니오 아니오

SQLAgentOperatorRole 멤버는 저장 프로시저 sp_update_job를 사용하고 @enabled@job_id (또는 @job_name) 매개 변수 값을 지정하여 소유하지 않은 로컬 작업을 활성화하거나 비활성화할 수 있습니다. 이 역할의 멤버가 이 저장 프로시저에 대한 다른 매개 변수를 지정하면 프로시저 실행이 실패합니다.
아니오

SQLAgentOperatorRole 멤버는 저장 프로시저 sp_update_schedule를 사용하고 @enabled, @schedule_id (또는 @name) 매개 변수의 값을 지정하여 소유하지 않은 일정을 활성화하거나 비활성화할 수 있습니다. 이 역할의 멤버가 이 저장 프로시저에 대한 다른 매개 변수를 지정하면 프로시저 실행이 실패합니다.
해당 없음
속성 보기
속성 편집 아니오 아니오 예(소유 작업만 해당) 아니오 예(소유 일정만 해당) 아니오
실행/중지/시작 해당 없음 해당 없음 아니오 해당 없음 해당 없음
작업 기록 보기 해당 없음 해당 없음 해당 없음 해당 없음
작업 기록 삭제 해당 없음 해당 없음 아니오 해당 없음 해당 없음
연결/분리 해당 없음 해당 없음 해당 없음 해당 없음 예(소유 일정만 해당) 해당 없음

사용자에게 여러 역할 할당

sysadmin 고정 서버 역할의 멤버는 모든 SQL Server 에이전트 기능에 액세스할 수 있습니다. 사용자가 sysadmin 역할의 멤버가 아니지만 둘 이상의 SQL Server 에이전트 고정 데이터베이스 역할의 멤버인 경우 이러한 역할의 동심 권한 모델을 기억해야 합니다. 더 많은 권한 있는 역할에는 항상 권한이 적은 역할의 모든 권한이 포함되므로 둘 이상의 역할의 멤버인 사용자는 사용자가 구성원인 가장 권한 있는 역할과 연결된 사용 권한을 자동으로 갖습니다.