다음을 통해 공유


SQL Server 에이전트 프록시 만들기

적용 대상: SQL Server

이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 SQL Server 에이전트 프록시를 만드는 방법을 설명합니다.

SQL Server 에이전트 프록시 계정은 작업 단계를 실행할 수 있는 보안 컨텍스트를 정의합니다. 각 프록시는 보안 자격 증명에 해당됩니다. 특정 작업 단계의 사용 권한을 설정하려면 SQL Server 에이전트 하위 시스템에 대한 필요 권한을 가진 프록시를 만든 다음 해당 프록시를 작업 단계에 할당하세요.

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

제한 사항

아직 사용할 수 없는 경우 프록시를 만들기 전에 자격 증명을 만들어야 합니다.

SQL Server 에이전트 프록시는 자격 증명을 사용하여 Windows 사용자 계정에 대한 정보를 저장합니다. 자격 증명에 지정된 사용자는 SQL Server가 실행 중인 컴퓨터에서 “네트워크에서 이 컴퓨터 액세스” 권한(SeNetworkLogonRight)이 있어야 합니다.

SQL Server 에이전트는 프록시에 대한 하위 시스템 액세스 권한을 확인하고 작업 단계가 실행될 때마다 프록시에 대한 액세스 권한을 부여합니다. 프록시가 더 이상 하위 시스템에 액세스할 수 없으면 작업 단계가 실패합니다. 그렇지 않으면 SQL Server 에이전트 프록시에 지정된 사용자를 가장하고 작업 단계를 실행합니다. 프록시 하위 시스템 목록은 sp_grant_proxy_to_subsystem을 참조하세요.

프록시를 만들면 프록시에 대한 자격 증명에 지정된 사용자에 대한 사용 권한이 변경되지 않습니다. 예를 들어 SQL Server 인스턴스에 연결할 수 있는 권한이 없는 사용자에 대한 프록시를 만들 수 있습니다. 이 경우 해당 프록시를 사용하는 작업 단계에서는 SQL Server에 연결할 수 없습니다.

사용자의 로그인에 프록시에 대한 액세스 권한이 있거나 사용자가 프록시에 대한 액세스 권한이 있는 역할에 속하는 경우 해당 사용자는 작업 단계에서 프록시를 사용할 수 있습니다.

사용 권한

sysadmin 고정 서버 역할의 멤버만 프록시 계정을 만들고 수정하고 삭제할 수 있는 권한이 있습니다. sysadmin 고정 서버 역할의 멤버가 아닌 사용자는 프록시를 사용하려면 데이터베이스의 SQL Server 에이전트 고정 데이터베이스 역할 msdb 중 하나에 추가해야 합니다. SQLAgentUserRole, SQLAgentReaderRole 또는 SQLAgentOperatorRole.

ALTER ANY CREDENTIAL 프록시 외에도 자격 증명을 만드는 경우 권한이 필요합니다.

SSMS(SQL Server Management Studio) 사용

  1. 개체 탐색기에서 더하기 기호를 선택하여 SQL Server 에이전트에 프록시를 만들려는 서버를 확장합니다.

  2. 더하기 기호를 선택하여 SQL Server 에이전트를 확장합니다.

  3. 프록시 폴더를 마우스 오른쪽 단추로 클릭하고 새 프록시를 선택합니다.

  4. 새 프록시 계정 대화 상자의 일반 페이지에서 프록시 이름 상자에 프록시 계정의 이름을 입력합니다.

  5. 자격 증명 이름 상자에 프록시 계정에서 사용할 보안 자격 증명의 이름을 입력합니다.

  6. 설명 상자에 프록시 계정의 설명을 입력합니다.

  7. 다음 하위 시스템에 대한 활성 아래에서 이 프록시에 적절한 하위 시스템 또는 하위 시스템을 선택합니다.

  8. 보안 주체 페이지에서 로그인 또는 역할을 추가하거나 제거하여 프록시 계정에 대한 액세스 권한을 부여하거나 제거합니다.

  9. 작업을 마쳤으면 확인을 선택합니다.

Transact-SQL 사용

다음 스크립트는 CatalogApplicationCredential이라는 자격 증명을 만들고, 프록시 Catalog application proxy를 만들고, 자격 증명 CatalogApplicationCredential을 할당하고, ActiveX 스크립팅 하위 시스템에 대한 프록시 액세스 권한을 부여합니다.

  1. 자격 증명을 만듭니다 CatalogApplicationCredential.

    USE msdb;
    GO
    
    CREATE CREDENTIAL CatalogApplicationCredential
        WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!';
    GO
    
  2. 프록시 Catalog application proxy 를 만들고 자격 증명을 CatalogApplicationCredential 할당합니다.

    EXECUTE dbo.sp_add_proxy
        @proxy_name = 'Catalog application proxy',
        @enabled = 1,
        @description = 'Maintenance tasks on catalog application.',
        @credential_name = 'CatalogApplicationCredential';
    GO
    
    
  3. ActiveX 스크립팅 하위 시스템에 대한 프록시 Catalog application proxy 액세스 권한을 부여합니다.

    EXECUTE dbo.sp_grant_proxy_to_subsystem
        @proxy_name = N'Catalog application proxy',
        @subsystem_id = 2;
    GO