SQL Server 에이전트 고정 데이터베이스 역할
SQL Server 2005는 관리자에게 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에 대한 액세스가 부여된 경우 SQLAgentReaderRole 및 SQLAgentOperatorRole의 멤버는 proxy_A에 대한 액세스가 명시적으로 부여되지 않았더라도 이 프록시에 대한 액세스를 자동으로 갖습니다. 이러한 방식은 보안 문제를 발생시킬 수 있으며 이에 대해서는 각 역할에 대한 다음 섹션에서 설명됩니다.
SQLAgentUserRole 사용 권한
SQLAgentUserRole은 SQL Server 에이전트 고정 데이터베이스 역할 중 가장 사용 권한이 적은 역할입니다. 이 역할에는 운영자, 로컬 작업 및 작업 일정에 대한 사용 권한만 있습니다. SQLAgentUserRole의 멤버는 자신이 소유하는 로컬 작업 및 작업 일정에 대한 사용 권한만 갖습니다. 이 역할의 멤버는 다중 서버 작업(마스터 및 대상 서버 작업)을 사용할 수 없으며 자신이 소유하지 않는 작업에 대한 액세스를 얻기 위해 작업 소유권을 변경할 수 없습니다. SQLAgentUserRole 멤버는 SQL Server Management Studio의 작업 단계 속성 대화 상자에서만 사용 가능한 프록시 목록을 볼 수 있습니다. SQLAgentUserRole 멤버에게는 SQL Server Management Studio 개체 탐색기의 작업 노드만 표시됩니다.
보안 정보 |
---|
SQL Server 에이전트 데이터베이스 역할 멤버에 프록시 액세스 권한을 부여하기 전에 보안 문제를 신중히 고려해야 합니다. SQLAgentReaderRole 및 SQLAgentOperatorRole은 자동으로 SQLAgentUserRole의 멤버가 됩니다. 즉, SQLAgentReaderRole 및 SQLAgentOperatorRole의 멤버는 SQLAgentUserRole에 부여된 모든 SQL Server 에이전트 프록시에 대한 액세스를 가지며 이러한 프록시를 사용할 수 있습니다. |
다음 표에서는 SQL Server 에이전트 개체에 대한 SQLAgentUserRole 사용 권한을 요약합니다.
동작 |
운영자 |
로컬 작업 (소유한 작업만 해당) |
작업 일정 (소유한 작업만 해당) |
프록시 |
---|---|---|---|---|
생성/수정/삭제 |
지원되지 않음 |
지원됨1 |
지원됨 |
지원되지 않음 |
목록 보기(열거) |
지원됨2 |
지원됨 |
지원됨 |
지원됨3 |
설정/해제 |
지원되지 않음 |
지원됨 |
지원됨 |
해당 사항 없음 |
속성 보기 |
지원되지 않음 |
지원됨 |
지원됨 |
지원되지 않음 |
실행/중지/시작 |
해당 사항 없음 |
지원됨 |
해당 사항 없음 |
해당 사항 없음 |
작업 기록 보기 |
해당 사항 없음 |
예 |
해당 사항 없음 |
해당 사항 없음 |
작업 기록 삭제 |
해당 사항 없음 |
아니요4 |
해당 사항 없음 |
해당 사항 없음 |
연결/분리 |
해당 사항 없음 |
해당 사항 없음 |
예 |
해당 사항 없음 |
1 작업 소유권을 변경할 수 없습니다.
2 sp_notify_operator 및 Management Studio의 작업 속성 대화 상자에서 사용할 수 있는 운영자 목록을 가져올 수 있습니다.
3 Management Studio의 작업 단계 속성 대화 상자에서만 사용할 수 있는 프록시를 나열합니다.
4 SQLAgentUserRole의 멤버가 자신이 소유한 작업에 대한 작업 기록을 삭제하려면 sp_purge_jobhistory에 대한 EXECUTE 권한이 명시적으로 부여되어야 합니다. 이 멤버는 다른 작업에 대한 작업 기록은 삭제할 수 없습니다.
SQLAgentReaderRole 사용 권한
SQLAgentReaderRole에는 모든 SQLAgentUserRole 사용 권한 뿐만 아니라 사용 가능한 다중 서버 작업, 해당 속성 및 해당 기록 목록을 볼 수 있는 권한이 포함됩니다. 이 역할의 멤버는 또한 자신이 소유하는 작업과 작업 일정뿐만 아니라 사용 가능한 모든 작업과 작업 일정 및 해당 속성 목록을 볼 수 있습니다. SQLAgentReaderRole 멤버는 자신이 소유하지 않는 작업에 대한 액세스를 얻기 위해 작업 소유권을 변경할 수 없습니다. SQLAgentReaderRole 멤버에게는 SQL Server Management Studio 개체 탐색기의 작업 노드만 표시됩니다.
보안 정보 |
---|
SQL Server 에이전트 데이터베이스 역할 멤버에 프록시 액세스 권한을 부여하기 전에 보안 문제를 신중히 고려해야 합니다. SQLAgentReaderRole의 멤버는 자동으로 SQLAgentUserRole의 멤버가 됩니다. 즉, SQLAgentReaderRole의 멤버는 SQLAgentUserRole에 부여된 모든 SQL Server 에이전트 프록시에 대한 액세스를 가지며 이러한 프록시를 사용할 수 있습니다. |
다음 표에서는 SQL Server 에이전트 개체에 대한 SQLAgentReaderRole 사용 권한을 요약합니다.
동작 |
운영자 |
로컬 작업 |
다중 서버 작업 |
작업 일정 |
프록시 |
---|---|---|---|---|---|
생성/수정/삭제 |
지원되지 않음 |
지원됨1(소유한 작업만 해당) |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
목록 보기(열거) |
지원됨2 |
지원됨 |
지원됨 |
지원됨 |
지원됨3 |
설정/해제 |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
예(소유한 작업만 해당) |
해당 사항 없음 |
속성 보기 |
지원되지 않음 |
지원됨 |
지원됨 |
지원됨 |
지원되지 않음 |
속성 편집 |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
실행/중지/시작 |
해당 사항 없음 |
예(소유한 작업만 해당) |
아니요 |
해당 사항 없음 |
해당 사항 없음 |
작업 기록 보기 |
해당 사항 없음 |
지원됨 |
지원됨 |
해당 사항 없음 |
해당 사항 없음 |
작업 기록 삭제 |
해당 사항 없음 |
아니요4 |
지원되지 않음 |
해당 사항 없음 |
해당 사항 없음 |
연결/분리 |
해당 사항 없음 |
해당 사항 없음 |
해당 사항 없음 |
예(소유한 작업만 해당) |
해당 사항 없음 |
1 작업 소유권을 변경할 수 없습니다.
2 sp_notify_operator 및 Management Studio의 작업 속성 대화 상자에서 사용할 수 있는 운영자 목록을 가져올 수 있습니다.
3 Management Studio의 작업 단계 속성 대화 상자에서만 사용할 수 있는 프록시를 나열합니다.
4 SQLAgentReaderRole의 멤버가 자신이 소유한 작업에 대한 작업 기록을 삭제하려면 sp_purge_jobhistory에 대한 EXECUTE 권한이 명시적으로 부여되어야 합니다. 이 멤버는 다른 작업에 대한 작업 기록은 삭제할 수 없습니다.
SQLAgentOperatorRole 사용 권한
SQLAgentOperatorRole은 SQL Server 에이전트 고정 데이터베이스 역할 중 가장 사용 권한이 많은 역할입니다. 여기에는 SQLAgentUserRole 및 SQLAgentReaderRole의 모든 사용 권한이 포함됩니다. 이 역할의 멤버는 또한 운영자 및 프록시의 속성을 볼 수 있으며 서버에서 사용 가능한 프록시와 경고를 열거할 수 있습니다.
SQLAgentOperatorRole 멤버는 로컬 작업 및 일정에 대한 추가 사용 권한을 갖습니다. 이 멤버는 모든 로컬 작업을 실행, 중지 또는 시작할 수 있으며 서버의 모든 로컬 작업에 대한 작업 기록을 삭제할 수 있습니다. 또한 서버의 모든 로컬 작업과 일정을 설정 또는 해제할 수 있습니다. 로컬 작업이나 일정을 설정 또는 해제하려면 이 역할의 멤버가 sp_update_job 및 sp_update_schedule 저장 프로시저를 사용해야 합니다. SQLAgentOperatorRole 멤버는 작업 또는 일정 이름이나 식별자를 지정하는 매개 변수와 @enabled 매개 변수만 지정할 수 있습니다. 다른 매개 변수를 지정하면 해당 저장 프로시저 실행이 실패합니다. SQLAgentOperatorRole 멤버는 자신이 소유하지 않는 작업에 대한 액세스를 얻기 위해 작업 소유권을 변경할 수 없습니다.
SQL Server Management Studio 개체 탐색기의 작업, 경고, 운영자 및 프록시는 SQLAgentOperatorRole의 멤버에게 표시됩니다. 이 역할의 멤버에게는 오류 로그 노드만 표시되지 않습니다.
보안 정보 |
---|
SQL Server 에이전트 데이터베이스 역할 멤버에 프록시 액세스 권한을 부여하기 전에 보안 문제를 신중히 고려해야 합니다. SQLAgentOperatorRole의 멤버는 자동으로 SQLAgentUserRole 및 SQLAgentReaderRole의 멤버가 됩니다. 즉, SQLAgentOperatorRole의 멤버는 SQLAgentUserRole 또는 SQLAgentReaderRole에 부여된 모든 SQL Server 에이전트 프록시에 대한 액세스를 가지며 이러한 프록시를 사용할 수 있습니다. |
다음 표에서는 SQL Server 에이전트 개체에 대한 SQLAgentOperatorRole 사용 권한을 요약합니다.
동작 |
경고 |
운영자 |
로컬 작업 |
다중 서버 작업 |
작업 일정 |
프록시 |
---|---|---|---|---|---|---|
생성/수정/삭제 |
지원되지 않음 |
지원되지 않음 |
지원됨2(소유한 작업만 해당) |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
목록 보기(열거) |
지원됨 |
지원됨1 |
지원됨 |
지원됨 |
지원됨 |
지원됨 |
설정/해제 |
지원되지 않음 |
지원되지 않음 |
지원됨3 |
지원되지 않음 |
지원됨4 |
해당 사항 없음 |
속성 보기 |
지원됨 |
지원됨 |
지원됨 |
지원됨 |
지원됨 |
지원됨 |
속성 편집 |
지원되지 않음 |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
예(소유한 작업만 해당) |
지원되지 않음 |
실행/중지/시작 |
해당 사항 없음 |
해당 사항 없음 |
지원됨 |
지원되지 않음 |
해당 사항 없음 |
해당 사항 없음 |
작업 기록 보기 |
해당 사항 없음 |
해당 사항 없음 |
지원됨 |
지원됨 |
해당 사항 없음 |
해당 사항 없음 |
작업 기록 삭제 |
해당 사항 없음 |
해당 사항 없음 |
지원됨 |
지원되지 않음 |
해당 사항 없음 |
해당 사항 없음 |
연결/분리 |
해당 사항 없음 |
해당 사항 없음 |
해당 사항 없음 |
해당 사항 없음 |
예(소유한 작업만 해당) |
해당 사항 없음 |
1 sp_notify_operator 및 Management Studio의 작업 속성 대화 상자에서 사용할 수 있는 운영자 목록을 가져올 수 있습니다.
2 작업 소유권을 변경할 수 없습니다.
3 SQLAgentOperatorRole 멤버는 sp_update_job 저장 프로시저를 사용하고 @enabled 및 @job_id(또는 @job_name) 매개 변수를 지정하여 자신이 소유하지 않은 로컬 작업을 설정 또는 해제할 수 있습니다. 이 역할의 멤버가 이 저장 프로시저에 다른 매개 변수를 지정하는 경우 프로시저 실행이 실패합니다.
4 SQLAgentOperatorRole 멤버는 sp_update_schedule 저장 프로시저를 사용하고 @enabled 및 @schedule_id(또는 @name) 매개 변수를 지정하여 자신이 소유하지 않은 일정을 설정 또는 해제할 수 있습니다. 이 역할의 멤버가 이 저장 프로시저에 다른 매개 변수를 지정하는 경우 프로시저 실행이 실패합니다.
사용자에게 다중 역할 할당
sysadmin 고정 서버 역할의 멤버는 모든 SQL Server 에이전트 기능에 액세스할 수 있습니다. 사용자가 sysadmin 역할의 멤버가 아니지만 하나 이상의 SQL Server 에이전트 고정 데이터베이스 역할의 멤버인 경우 이러한 역할에 대한 공통적 사용 권한 모델을 고려해야 합니다. 사용 권한이 많은 역할은 항상 사용 권한이 적은 역할의 모든 사용 권한을 포함하기 때문에 두 개 이상의 역할의 멤버는 해당 사용자가 멤버로 속한 사용 권한이 가장 많은 역할과 관련된 사용 권한을 자동으로 갖습니다.
참고 항목
참조
sp_update_schedule(Transact-SQL)
sp_notify_operator(Transact-SQL)
sp_purge_jobhistory(Transact-SQL)