SQL Server 에이전트 보안 구현
SQL Server 에이전트를 사용하면 데이터베이스 관리자가 SQL Server 에이전트 프록시에 의해 결정된 각 작업 단계를 수행하는 데 필요한 사용 권한만 있는 보안 컨텍스트에서 각 작업 단계를 실행할 수 있습니다. 특정 작업 단계의 사용 권한을 설정하려면 필요 사용 권한을 가진 프록시를 만든 다음 해당 프록시를 작업 단계에 할당하십시오. 프록시는 둘 이상의 작업 단계에 대해 지정할 수 있습니다. 동일 사용 권한이 필요한 작업 단계에 대해서는 동일한 프록시를 사용합니다.
[!참고] SQL Server 2000 에서 SQL Server 2005 로 업그레이드하면 업그레이드 전의 모든 사용자 프록시 계정은 임시 전역 프록시 계정인 UpgradedProxyAccount로 변경됩니다. 업그레이드 후 UpgradedProxyAccount에는 명시적으로 사용되던 하위 시스템에 대한 액세스 권한만 부여되고 전체 하위 시스템에 대한 액세스 권한은 없습니다.
다음 섹션에서는 SQL Server 에이전트를 사용하여 작업을 만들거나 실행할 수 있도록 사용자에게 부여해야 하는 데이터베이스 역할에 대해 설명합니다.
SQL Server 에이전트에 액세스 부여
SQL Server 에이전트를 사용하려면 사용자가 다음 고정 데이터베이스 역할 중 하나 이상의 멤버여야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할은 msdb 데이터베이스에 저장됩니다. 기본적으로 사용자는 이러한 데이터베이스 역할의 멤버가 아닙니다. 이러한 역할의 멤버는 명시적으로 부여되어야 합니다. sysadmin 고정 서버 역할의 멤버인 사용자는 SQL Server 에이전트에 대해 모든 권한을 가지며 SQL Server 에이전트를 사용하기 위해 이러한 고정 데이터베이스 역할의 멤버일 필요가 없습니다. 이러한 데이터베이스 역할 또는 sysadmin 역할의 멤버가 아닌 사용자는 SQL Server Management Studio 를 사용하여 SQL Server 에 연결할 때 SQL Server 에이전트 노드를 사용할 수 없습니다.
이러한 데이터베이스 역할의 멤버는 자신이 소유하는 작업을 보고 실행할 수 있으며 기존 프록시 계정으로 실행되는 작업 단계를 만들 수 있습니다. 이러한 각 역할과 연결된 특정 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하십시오.
sysadmin 고정 서버 역할의 멤버에게는 프록시 계정을 만들고 수정하고 삭제할 수 있는 권한이 있습니다. sysadmin 역할의 멤버는 프록시를 지정하지 않는 작업 단계를 만들 수 있는 권한이 있지만 그 대신 SQL Server 에이전트를 시작하는 데 사용되는 계정인 SQL Server 에이전트 서비스 계정으로 실행합니다.
지침
SQL Server 에이전트 구현에 대한 보안을 향상시키려면 다음 지침을 따르십시오.
- 프록시에 대한 전용 사용자 계정을 만들고 이러한 프록시 사용자 계정만 사용하여 작업 단계를 실행합니다.
- 프록시 사용자 계정에 필요한 사용 권한만 부여합니다. 특정 프록시 계정에 할당된 작업 단계를 실행하는 데 실제로 필요한 사용 권한만 부여합니다.
- Windows Administrators 그룹의 멤버인 Microsoft Windows 계정을 사용하여 SQL Server 에이전트 서비스를 실행하지 않습니다.
참고 항목
개념
SQL Server 에이전트 서비스의 계정 선택
SQL Server 에이전트 관리 보안
관련 자료
미리 정의된 역할 개요
sp_addrolemember(Transact-SQL)
sp_droprolemember(Transact-SQL)
SQL Server의 보안 고려 사항