SQL Server 에이전트 프록시 만들기Create a SQL Server Agent Proxy

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 SQL Server 에이전트 프록시를 만드는 방법에 대해 설명합니다.This topic describes how to create a SQL Server Agent proxy in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

SQL ServerSQL Server 에이전트 프록시 계정은 작업 단계를 실행할 수 있는 보안 컨텍스트를 정의합니다.A SQL ServerSQL Server Agent proxy account defines a security context in which a job step can run. 각 프록시는 보안 자격 증명에 해당됩니다.Each proxy corresponds to a security credential. 특정 작업 단계의 사용 권한을 설정하려면 SQL ServerSQL Server 에이전트 하위 시스템에 대한 필요 권한을 가진 프록시를 만든 다음 해당 프록시를 작업 단계에 할당하세요.To set permissions for a particular job step, create a proxy that has the required permissions for a SQL ServerSQL Server Agent subsystem, and then assign that proxy to the job step.

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

제한 사항Limitations and Restrictions

  • 사용 가능한 자격 증명이 없는 경우 프록시를 만들기 전에 먼저 자격 증명을 만들어야 합니다.You must create a credential before you create a proxy if one is not already available.

  • SQL ServerSQL Server 에이전트 프록시는 자격 증명을 사용하여 Windows 사용자 계정에 대한 정보를 저장합니다. Agent proxies use credentials to store information about Windows user accounts. 자격 증명에 지정된 사용자는 SQL ServerSQL Server가 실행 중인 컴퓨터에서 “네트워크에서 이 컴퓨터 액세스” 권한(SeNetworkLogonRight)이 있어야 합니다.The user specified in the credential must have "Access this computer from the network” permission (SeNetworkLogonRight) on the computer on which SQL ServerSQL Server is running.

  • SQL ServerSQL Server 에이전트는 프록시에 대한 하위 시스템 액세스 권한을 확인하고 작업 단계가 실행될 때마다 프록시에 대한 액세스 권한을 부여합니다. Agent checks subsystem access for a proxy and gives access to the proxy each time the job step runs. 프록시에 하위 시스템에 대한 액세스 권한이 없으면 작업 단계가 실패합니다.If the proxy no longer has access to the subsystem, the job step fails. 그렇지 않으면 SQL ServerSQL Server 에이전트가 프록시에 지정된 사용자를 가장하여 작업 단계를 실행합니다.Otherwise, SQL ServerSQL Server Agent impersonates the user that is specified in the proxy and runs the job step.

  • 프록시를 만들 때 프록시에 대한 자격 증명에 지정된 사용자의 권한은 변경되지 않습니다.Creation of a proxy does not change the permissions for the user that is specified in the credential for the proxy. 예를 들어 SQL ServerSQL Server의 인스턴스에 연결할 수 있는 권한이 없는 사용자에 대한 프록시를 만들 수 있습니다.For example, you can create a proxy for a user that does not have permission to connect to an instance of SQL ServerSQL Server. 이 경우 해당 프록시를 사용하는 작업 단계에서는 SQL ServerSQL Server에 연결할 수 없습니다.In this case, job steps that use that proxy are unable to connect to SQL ServerSQL Server.

  • 사용자의 로그인에 프록시에 대한 액세스 권한이 있거나 사용자가 프록시에 대한 액세스 권한이 있는 역할에 속하는 경우 해당 사용자는 작업 단계에서 프록시를 사용할 수 있습니다.If the login for the user has access to the proxy, or the user belongs to any role with access to the proxy, the user can use the proxy in a job step.

보안Security

PermissionsPermissions

  • sysadmin 고정 서버 역할의 멤버만 프록시 계정을 생성, 수정 또는 삭제할 수 있는 권한을 가집니다.Only members of the sysadmin fixed server role have permission to create, modify, or delete proxy accounts. 프록시를 사용하려면 sysadmin 고정 서버 역할의 멤버가 아닌 사용자를 SQL ServerSQL Server msdb 데이터베이스의 에이전트 고정 데이터베이스 역할 SQLAgentUserRole, SQLAgentReaderRole또는 SQLAgentOperatorRole중 하나에 추가해야 합니다.Users who are not members of the sysadmin fixed server role must be added to one of the following SQL ServerSQL Server Agent fixed database roles in the msdb database to use proxies: SQLAgentUserRole, SQLAgentReaderRole, or SQLAgentOperatorRole.

  • 프록시와 자격 증명을 만드는 경우 ALTER ANY CREDENTIAL 권한이 필요합니다.Requires ALTER ANY CREDENTIAL permission if creating a credential in addition to the proxy.

SQL Server Management Studio 사용Using SQL Server Management Studio

SQL Server 에이전트 프록시를 만들려면To create a SQL Server Agent proxy

  1. 개체 탐색기에서 더하기 기호를 클릭하여 SQL Server 에이전트에 프록시를 만들려는 서버를 확장합니다.In Object Explorer, click the plus sign to expand the server where you want to create a proxy on SQL Server Agent.

  2. 더하기 기호를 클릭하여 SQL Server 에이전트를 확장합니다.Click the plus sign to expand SQL Server Agent.

  3. 프록시 폴더를 마우스 오른쪽 단추로 클릭하고 새 프록시를 선택합니다.Right-click the Proxies folder and select New Proxy.

  4. 새 프록시 계정 대화 상자의 일반 페이지에서 인덱스 이름 상자에 프록시 계정의 이름을 입력합니다.On the New Proxy Account dialog box, on the General page, enter the name of the proxy account in the Proxy name box.

  5. 자격 증명 이름 대화 상자에서 프록시 계정에 사용할 보안 자격 증명의 이름을 입력합니다.In the Credential name box, enter the name of the security credential that the proxy account will use.

  6. 설명 상자에 프록시 계정에 대한 설명을 입력합니다.In the Description box, enter a description for the proxy account

  7. 다음 하위 시스템에 대해 활성화에서 이 프록시에 대한 적절한 하위 시스템을 선택합니다.Under Active to the following subsystems, select the appropriate subsystem or subsystems for this proxy.

  8. 보안 주체 페이지에서 프록시 계정에 대한 액세스 권한을 부여 또는 제거할 로그인이나 역할을 추가하거나 제거합니다.On the Principals page, add or remove logins or roles to grant or remove access to the proxy account.

  9. 완료되었으면 확인을 클릭합니다.When finished, click OK.

Transact-SQL 사용Using Transact-SQL

SQL Server 에이전트 프록시를 만들려면To create a SQL Server Agent proxy

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute.

    -- creates credential CatalogApplicationCredential  
    USE msdb ;  
    GO  
    CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser',   
        SECRET = 'G3$1o)lkJ8HNd!';  
    GO  
    -- creates proxy "Catalog application proxy" and assigns
    -- the credential 'CatalogApplicationCredential' to it.  
    EXEC dbo.sp_add_proxy  
        @proxy_name = 'Catalog application proxy',  
        @enabled = 1,  
        @description = 'Maintenance tasks on catalog application.',  
        @credential_name = 'CatalogApplicationCredential' ;  
    GO  
    -- grants the proxy "Catalog application proxy" access to 
    -- the ActiveX Scripting subsystem.  
    EXEC dbo.sp_grant_proxy_to_subsystem  
        @proxy_name = N'Catalog application proxy',  
        @subsystem_id = 2 ;  
    GO  
    

참조 항목:For more information, see: