복제 보안 설정 보기 및 수정

이 항목에서는 SQL Server Management Studio, Transact-SQL 또는 RMO(복제 관리 개체)를 사용하여 SQL Server 2012에서 복제 보안 설정을 보고 수정하는 방법에 대해 설명합니다. 예를 들어 게시자에 대한 로그 판독기 에이전트의 연결을 SQL Server 인증에서 Windows 통합 인증으로 변경해야 하거나 Windows 계정 암호가 변경되었을 때 에이전트 작업을 실행하는 데 사용된 자격 증명을 변경해야 할 경우가 있습니다. 각 에이전트에 필요한 사용 권한에 대한 자세한 내용은 복제 에이전트 보안 모델를 참조하십시오.

항목 내용

  • 시작하기 전 주의 사항:

    제한 사항

    보안

  • 다음을 사용하여 복제 보안 설정을 보고 수정하려면

    SQL Server Management Studio

    Transact-SQL

    RMO(복제 관리 개체)

  • 후속 작업:  복제 보안 설정 수정 후

시작하기 전 주의 사항

제한 사항

  • 사용되는 저장 프로시저는 에이전트의 유형과 서버 연결의 유형에 따라 다릅니다.

  • 사용하는 RMO 클래스 및 속성은 에이전트 유형 및 서버 연결 유형에 따라 달라집니다.

보안

보안을 위해 암호의 실제 값은 복제 저장 프로시저에 의해 반환된 결과 집합에서 마스킹됩니다.

사용 권한

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

SQL Server Management Studio 사용

다음 대화 상자에서 보안 설정을 확인하고 수정합니다.

  1. SQL Server Management Studio의 복제 폴더에서 사용할 수 있는 복제 암호 업데이트. 복제 토폴로지의 서버에서 Windows 계정이나 SQL Server 계정의 암호를 변경할 경우 해당 계정을 사용하는 각 에이전트의 암호를 업데이트하지 말고 이 대화 상자를 사용하십시오. 두 개 이상의 서버에 있는 에이전트에서 같은 계정을 사용할 경우 각 서버에 연결하고 암호를 변경해야 합니다. 해당 암호를 사용하는 복제가 있는 모든 위치에서 암호가 업데이트됩니다. 연결된 서버와 같은 다른 위치에서는 암호가 업데이트되지 않습니다.

  2. 게시 속성 - <Publication> 대화 상자의 에이전트 보안 페이지. 이 대화 상자에 액세스하는 방법은 게시 속성 보기 및 수정을 참조하십시오.

  3. 구독 속성 - <Subscription> 대화 상자. 이 대화 상자에 액세스하는 방법은 밀어넣기 구독 속성 보기 및 수정끌어오기 구독 속성 보기 및 수정을 참조하십시오.

  4. 배포자 속성 - <Distributor>배포 데이터베이스 속성 - <Database> 대화 상자. 이러한 대화 상자에 액세스하는 방법은 게시자 및 배포자 속성 보기 및 수정을 참조하십시오.

  5. 게시자 속성 - <Publisher> 대화 상자. 이 대화 상자에 액세스하는 방법은 게시자 및 배포자 속성 보기 및 수정을 참조하십시오.

하나 이상의 에이전트에서 사용하는 계정의 암호를 변경하려면

  1. SQL Server 계정을 사용하는 경우 이 대화 상자에서 SQL Server 계정 암호도 변경합니다. Windows 계정을 사용하는 경우에는 Windows에서 해당 암호부터 변경합니다. 자세한 내용은 Windows 설명서를 참조하십시오.

    [!참고]

    복제 암호를 변경한 후 해당 암호를 사용하는 각 에이전트를 중지한 다음 다시 시작해야 에이전트에 변경 내용이 적용됩니다.

  2. SQL Server Management Studio에서 서버에 연결한 다음 해당 서버 노드를 확장합니다.

  3. 복제 폴더를 마우스 오른쪽 단추로 클릭한 다음 복제 암호 업데이트를 클릭합니다.

  4. 복제 암호 업데이트 대화 상자에서 계정과 새 암호를 지정합니다.

  5. 확인을 클릭합니다.

스냅숏 에이전트의 보안 설정을 변경하려면

  1. _게시 속성 - <Publication> 대화 상자의 에이전트 보안 페이지에서 스냅숏 에이전트 입력란 옆에 있는 보안 설정 단추를 클릭합니다.

  2. 스냅숏 에이전트 보안 대화 상자에서 에이전트가 실행될 계정을 지정합니다.

    • 에이전트 계정 입력란에 새 Windows 계정을 입력합니다.

    • 암호암호 확인 입력란에 강력한 새 암호를 입력합니다.

  3. 에이전트가 배포자에서 게시자로 연결해야 하는 컨텍스트를 지정합니다. 다음 SQL Server 로그인 사용을 선택하면 로그인도 지정해야 합니다.

    • 로그인 입력란에 로그인을 입력합니다.

    • 암호암호 확인 입력란에 강력한 새 암호를 입력합니다.

    [!참고]

    게시자가 Oracle 게시자이면 배포자 속성 - <Distributor> 대화 상자에서 연결 컨텍스트를 지정합니다. 컨텍스트를 변경할 프로시저에 대한 내용은 아래를 참조하십시오.

  4. 확인을 클릭합니다.

로그 판독기 에이전트의 보안 설정을 변경하려면

  1. 게시 속성 - <Publication> 대화 상자의 에이전트 보안 페이지에서 로그 판독기 에이전트 입력란 옆에 있는 보안 설정 단추를 클릭합니다.

  2. 로그 판독기 에이전트 보안 대화 상자에서 에이전트가 실행될 계정을 지정합니다.

    • 에이전트 계정 입력란에 새 Windows 계정을 입력합니다.

    • 암호암호 확인 입력란에 강력한 새 암호를 입력합니다.

  3. 에이전트가 배포자에서 게시자로 연결해야 하는 컨텍스트를 지정합니다. 다음 SQL Server 로그인 사용을 선택하면 로그인도 지정해야 합니다.

    • 로그인 입력란에 로그인을 입력합니다.

    • 암호암호 확인 입력란에 강력한 새 암호를 입력합니다.

    [!참고]

    게시자가 Oracle 게시자이면 배포자 속성 - <Distributor> 대화 상자에서 연결 컨텍스트를 지정합니다. 다음 프로시저를 사용하여 컨텍스트를 변경합니다.

  4. 확인을 클릭합니다.

    [!참고]

    게시된 각 데이터베이스에 대해 하나의 로그 판독기 에이전트가 있습니다. 하나의 게시에 있는 에이전트의 보안 설정을 변경하면 게시 데이터베이스에 있는 모든 게시의 설정에 영향을 미치게 됩니다.

Oracle 게시에 대한 게시자에 스냅숏 에이전트 및 로그 판독기 에이전트를 연결하는 컨텍스트를 변경하려면

  1. 배포자 속성 - <Distributor> 대화 상자의 게시자 페이지에서 게시자 옆에 있는 속성 단추 (...)를 클릭합니다.

  2. 에이전트에서 게시자 연결 섹션에서 사용자가 구성한 복제 관리 사용자 스키마에서 사용하는 로그인 및 암호를 지정합니다. 자세한 내용은 Oracle 게시자 구성을 참조하십시오.

  3. 확인을 클릭합니다.

밀어넣기 구독에 대한 배포 에이전트의 보안 설정을 변경하려면

  1. 게시자의 구독 속성 - <Subscription> 대화 상자에서 다음과 같이 변경할 수 있습니다.

    • 배포 에이전트를 실행하고 배포자에 배포 에이전트를 연결하는 계정을 변경하려면 에이전트 프로세스 계정 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 배포 에이전트 보안 대화 상자에서 계정과 암호를 지정합니다.

    • 구독자에 배포 에이전트를 연결하는 컨텍스트를 변경하려면 구독자 연결 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 연결 정보 입력 대화 상자에서 컨텍스트를 지정합니다.

      지연 업데이트 구독을 사용할 경우 큐 판독기 에이전트도 구독자에 연결하기 위해 여기에서 지정한 컨텍스트를 사용합니다.

  2. 확인을 클릭합니다.

끌어오기 구독에 대한 배포 에이전트의 보안 설정을 변경하려면

  1. 구독자의 구독 속성 - <Subscription> 대화 상자에서 다음과 같이 변경할 수 있습니다.

    • 배포 에이전트를 실행하고 구독자에 배포 에이전트를 연결하는 계정을 변경하려면 에이전트 프로세스 계정 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 배포 에이전트 보안 대화 상자에서 계정과 암호를 지정합니다.

      지연 업데이트 구독을 사용할 경우 큐 판독기 에이전트도 구독자에 연결하기 위해 여기에서 지정한 컨텍스트를 사용합니다.

    • 배포자에 배포 에이전트를 연결하는 컨텍스트를 변경하려면 배포자 연결 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 연결 정보 입력 대화 상자에서 컨텍스트를 지정합니다.

  2. 확인을 클릭합니다.

밀어넣기 구독에 대한 병합 에이전트의 보안 설정을 변경하려면

  1. 게시자의 구독 속성 - <Subscription> 대화 상자에서 다음과 같이 변경할 수 있습니다.

    • 병합 에이전트를 실행하고 게시자 및 배포자에 병합 에이전트를 연결하는 계정을 변경하려면 에이전트 프로세스 계정 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 병합 에이전트 보안 대화 상자에서 계정과 암호를 지정합니다.

    • 구독자에 병합 에이전트를 연결하는 컨텍스트를 변경하려면 구독자 연결 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 연결 정보 입력 대화 상자에서 컨텍스트를 지정합니다.

  2. 확인을 클릭합니다.

끌어오기 구독에 대한 병합 에이전트의 보안 설정을 변경하려면

  1. 구독자의 구독 속성 - <Subscription> 대화 상자에서 다음과 같이 변경할 수 있습니다.

    • 병합 에이전트를 실행하고 구독자에 병합 에이전트를 연결하는 계정을 변경하려면 에이전트 프로세스 계정 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 병합 에이전트 보안 대화 상자에서 계정과 암호를 지정합니다.

    • 게시자 및 배포자에 병합 에이전트를 연결하는 컨텍스트를 변경하려면 게시자 연결 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다. 연결 정보 입력 대화 상자에서 컨텍스트를 지정합니다.

  2. 확인을 클릭합니다.

큐 판독기 에이전트가 실행되는 계정을 변경하려면

  1. 배포자 속성 - <Distributor> 대화 상자의 일반 페이지에서 배포 데이터베이스 옆에 있는 속성 단추 (...)를 클릭합니다.

  2. 배포 데이터베이스 속성 - <Database> 대화 상자에서 에이전트 프로세스 계정 입력란 옆에 있는 보안 설정 단추를 클릭합니다.

  3. 큐 판독기 에이전트 보안 대화 상자에서 에이전트를 실행하고 배포자에 에이전트를 연결하는 계정을 지정합니다.

    • 프로세스 계정 입력란에 새 Windows 계정을 입력합니다.

    • 암호암호 확인 입력란에 강력한 새 암호를 입력합니다.

  4. 확인을 클릭합니다.

    [!참고]

    각 배포 데이터베이스에 대해 하나의 큐 판독기 에이전트가 있습니다. 에이전트에 대한 보안 설정을 변경하면 이 배포 데이터베이스를 사용하는 모든 게시자의 모든 게시 설정이 영향을 받습니다.

게시자에 큐 판독기 에이전트를 연결하는 컨텍스트를 변경하려면

  1. 배포자 속성 - <Distributor> 대화 상자의 게시자 페이지에서 게시자 옆에 있는 속성 단추 (...)를 클릭합니다.

  2. 에이전트에서 게시자 연결 섹션에서 에이전트 연결 모드 옵션에 대해 에이전트 프로세스 계정 가장 또는 SQL Server 인증의 값을 지정합니다. SQL Server 인증을 지정하면 로그인암호 값도 지정해야 합니다.

  3. 확인을 클릭합니다.

    [!참고]

    각 배포 데이터베이스에 대해 하나의 큐 판독기 에이전트가 있습니다. 에이전트에 대한 보안 설정을 변경하면 이 배포 데이터베이스를 사용하는 모든 게시자의 모든 게시 설정이 영향을 받습니다.

구독자에 큐 판독기 에이전트를 연결하는 컨텍스트를 변경하려면

  • 큐 판독기 에이전트는 배포 에이전트가 구독에 연결할 때 사용하는 것과 동일한 연결 컨텍스트를 사용합니다. 자세한 내용은 배포 에이전트에 대한 위의 절차를 참조하십시오.

끌어오기 구독 즉시 업데이트에 대한 보안 설정을 변경하려면

  1. 구독자의 구독 속성 - <Subscription> 대화 상자에서 게시자 연결 행을 클릭한 다음 행에 있는 속성 단추 (...)를 클릭합니다.

  2. 연결 정보 입력 대화 상자에서 다음 옵션 중 하나를 선택합니다.

    • 연결된 서버나 원격 서버의 로그인 사용. sp_addserver(Transact-SQL), sp_addlinkedserver(Transact-SQL), SQL Server Management Studio 또는 다른 메서드를 사용하여 구독자와 게시자 간에 원격 서버 또는 연결된 서버를 정의한 경우 이 옵션을 선택하십시오.

    • 다음 로그인 및 암호로 SQL Server 인증 사용. 구독자와 게시자 간에 원격 서버 또는 연결된 서버를 정의하지 않은 경우 이 옵션을 선택하십시오. 복제 시 연결된 서버가 자동으로 생성됩니다. 지정한 계정은 게시자에 이미 있어야 합니다.

  3. 확인을 클릭합니다.

[!참고]

이 프로시저는 구독자에서 변경 내용이 발생하면 복제 트리거가 구독자에서 게시자로 연결할 때 사용하는 메서드를 변경합니다. 즉시 업데이트 구독에 대한 배포 에이전트와 관련된 설정 또한 변경할 수 있습니다. 자세한 내용은 이 항목 앞부분의 절차를 참조하십시오.

이 프로시저는 끌어오기 구독에만 적용됩니다. 밀어넣기 구독의 경우 저장 프로시저 sp_link_publication(Transact-SQL)을 사용합니다.

관리 연결의 암호를 게시자에서 배포자로 변경하려면

  1. 배포자 속성 - <Distributor> 대화 상자의 게시자 페이지에서 암호암호 확인 입력란에 강력한 암호를 입력합니다.

  2. 확인을 클릭합니다.

  3. 게시자 속성 - <Publisher> 대화 상자의 일반 페이지에서 암호암호 확인 입력란에 강력한 암호를 입력합니다.

  4. 확인을 클릭합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

Transact-SQL 사용

보안 정보보안 정보

가능한 경우 다음의 모든 절차에서 런타임에 사용자에게 보안 자격 증명을 입력하라는 메시지를 표시하십시오. 스크립트 파일에 자격 증명을 저장하는 경우에는 무단으로 액세스하지 못하도록 파일에 보안을 설정해야 합니다.

복제 서버에서 저장된 암호의 모든 인스턴스를 변경하려면

  1. master 데이터베이스의 복제 토폴로지에 있는 서버에서 sp_changereplicationserverpasswords를 실행합니다. @login에 Microsoft Windows 계정 또는 암호를 변경할 Microsoft SQL Server 로그인을 지정하고 @password에 계정이나 로그인에 대한 새 암호를 지정합니다. 이렇게 하면 토폴로지의 다른 서버에 연결할 때 서버의 모든 에이전트에서 사용되는 암호의 모든 인스턴스가 변경됩니다.

    [!참고]

    토폴로지의 특정 서버에 대한 연결(예: 배포자 또는 구독자)의 로그인과 암호만 변경하려면 @server에 이 서버의 이름을 지정합니다.

  2. 암호를 업데이트해야 하는 복제 토폴로지의 모든 서버에서 1단계를 반복합니다.

    [!참고]

    복제 암호를 변경한 후 해당 암호를 사용하는 각 에이전트를 중지한 다음 다시 시작해야 에이전트에 변경 내용이 적용됩니다.

스냅숏 에이전트의 보안 설정을 변경하려면

  1. 게시자에서 sp_helppublication_snapshot을 실행하고 @publication을 지정합니다. 이렇게 하면 스냅숏 에이전트에 대한 현재 보안 설정이 반환됩니다.

  2. 게시자에서 sp_changepublication_snapshot을 실행하고 @publication 및 다음 중 변경할 보안 설정을 하나 이상 지정합니다.

    • 에이전트가 실행되는 Windows 계정을 변경하거나 이 계정에 대한 암호만 변경하려면 @job_login@job_password를 지정합니다.

    • 게시자에 연결할 때 사용되는 보안 모드를 변경하려면 @publisher_security_mode1 또는 0 값을 지정합니다.

    • 게시자 연결할 때 사용되는 보안 모드를 1에서 0으로 변경하는 경우 또는 이 연결에 사용되는 SQL Server 로그인을 변경하는 경우에는 @publisher_login@publisher_password를 지정합니다.

    보안 정보보안 정보

    게시자를 원격 배포자로 구성할 경우 job_login 및 job_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하십시오.

로그 판독기 에이전트의 보안 설정을 변경하려면

  1. 게시자에서 sp_helplogreader_agent를 실행하고 @publisher를 지정합니다. 이렇게 하면 로그 판독기 에이전트에 대한 현재 보안 설정이 반환됩니다.

  2. 게시자에서 sp_changelogreader_agent를 실행하고 @publication 및 다음 중 변경할 보안 설정을 하나 이상 지정합니다.

    • 에이전트가 실행되는 Windows 계정을 변경하거나 이 계정에 대한 암호만 변경하려면 @job_login@job_password를 지정합니다.

    • 게시자에 연결할 때 사용되는 보안 모드를 변경하려면 @publisher_security_mode1 또는 0 값을 지정합니다.

    • 게시자 연결할 때 사용되는 보안 모드를 1에서 0으로 변경하는 경우 또는 이 연결에 사용되는 SQL Server 로그인을 변경하는 경우에는 @publisher_login@publisher_password를 지정합니다.

    [!참고]

    에이전트 로그인 또는 암호를 변경한 후 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다.

    보안 정보보안 정보

    게시자를 원격 배포자로 구성할 경우 job_login 및 job_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하십시오.

밀어넣기 구독에 대한 배포 에이전트의 보안 설정을 변경하려면

  1. 게시 데이터베이스의 게시자에서 sp_helpsubscription을 실행하고 @publication@subscriber를 지정합니다. 이렇게 하면 배포자에서 실행되는 배포 에이전트에 대한 보안 설정을 포함하는 구독 속성이 반환됩니다.

  2. 게시 데이터베이스의 게시자에서 sp_changesubscription을 실행하고 @publication, @subscriber, @subscriber_db를 지정하고, @articleall 값을, @property에 보안 속성의 이름을, @value에 속성의 새 값을 지정합니다.

  3. 변경할 다음 각 보안 속성에 대해 2단계를 반복합니다.

    • 에이전트가 실행되는 Windows 계정을 변경하거나 이 계정에 대한 암호만 변경하려면 @propertydistrib_job_password 값을 지정하고 @value에 새 암호를 지정합니다. 계정 자체를 변경하는 경우 @propertydistrib_job_login 값을, @value에 새 Windows 계정을 지정하고 2단계를 반복합니다.

    • 구독자에 연결하는 데 사용되는 보안 모드를 변경하려면 @propertysubscriber_security_mode 값, @value1(Windows 통합 인증) 또는 0(SQL Server 인증) 값을 지정합니다.

    • 구독자 보안 모드를 SQL Server 인증으로 변경하거나 SQL Server 인증에 대한 로그인 정보를 변경하는 경우 @propertysubscriber_password 값을 지정하고 @value에 새 암호를 지정합니다. 2단계를 반복하고 @propertysubscriber_login 값을, @value에 새 로그인을 지정합니다.

    [!참고]

    에이전트 로그인 또는 암호를 변경한 후 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다.

    보안 정보보안 정보

    원격 배포자로 게시자를 구성할 경우 distrib_job_logindistrib_job_password를 포함하여 모든 속성에 제공된 값이 일반 텍스트로 배포자에 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하십시오.

끌어오기 구독에 대한 배포 에이전트의 보안 설정을 변경하려면

  1. 구독자에서 sp_helppullsubscription을 실행하고 @publication을 지정합니다. 이렇게 하면 구독자에서 실행되는 배포 에이전트에 대한 보안 설정을 포함하는 구독 속성이 반환됩니다.

  2. 구독 데이터베이스의 구독자에서 sp_change_subscription_properties를 실행하고 @publisher, @publisher_db, @publication을 지정하고 @property에 보안 속성의 이름을, @value에 속성의 새 값을 지정합니다.

  3. 변경할 다음 각 보안 속성에 대해 2단계를 반복합니다.

    • 에이전트가 실행되는 Windows 계정을 변경하거나 이 계정에 대한 암호만 변경하려면 @propertydistrib_job_password 값을 지정하고 @value에 새 암호를 지정합니다. 계정 자체를 변경하는 경우 @propertydistrib_job_login 값을, @value에 새 Windows 계정을 지정지정하고 2단계를 반복합니다.

    • 배포자에 연결하는 데 사용되는 보안 모드를 변경하려면 @propertydistributor_security_mode 값, @value1(Windows 통합 인증) 또는 0(SQL Server 인증) 값을 지정합니다.

    • 배포자 보안 모드를 SQL Server 인증으로 변경하거나 SQL Server 인증에 대한 로그인 정보를 변경하는 경우 @propertydistributor_password 값을 지정하고 @value에 새 암호를 지정합니다. 2단계를 반복하고 @propertydistributor_login 값을, @value에 새 로그인을 지정합니다.

    [!참고]

    에이전트 로그인 또는 암호를 변경한 후 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다.

밀어넣기 구독에 대한 병합 에이전트의 보안 설정을 변경하려면

  1. 게시 데이터베이스의 게시자에서 sp_helpmergesubscription을 실행하고 @publication, @subscriber@subscriber_db를 지정합니다. 이렇게 하면 배포자에서 실행되는 병합 에이전트에 대한 보안 설정을 포함하는 구독 속성이 반환됩니다.

  2. 게시 데이터베이스의 게시자에서 sp_changemergesubscription을 실행하고 @publication, @subscriber, @subscriber_db를 지정하고, @property에 보안 속성의 이름을, @value에 속성의 새 값을 지정합니다.

  3. 변경할 다음 각 보안 속성에 대해 2단계를 반복합니다.

    • 에이전트가 실행되는 Windows 계정을 변경하거나 이 계정에 대한 암호만 변경하려면 @propertymerge_job_password 값을 지정하고 @value에 새 암호를 지정합니다. 계정 자체를 변경하는 경우 2단계를 반복하고 @propertymerge_job_login 값을, @value에 새 Windows 계정을 지정합니다.

    • 구독자에 연결하는 데 사용되는 보안 모드를 변경하려면 @propertysubscriber_security_mode 값, @value1(Windows 통합 인증) 또는 0(SQL Server 인증) 값을 지정합니다.

    • 구독자 보안 모드를 SQL Server 인증으로 변경하거나 SQL Server 인증에 대한 로그인 정보를 변경하는 경우 @propertysubscriber_password 값을 지정하고 @value에 새 암호를 지정합니다. 2단계를 반복하고 @propertysubscriber_login 값을, @value에 새 로그인을 지정합니다.

    • 게시자에 연결하는 데 사용되는 보안 모드를 변경하려면 @propertypublisher_security_mode 값, @value1(Windows 통합 인증) 또는 0(SQL Server 인증) 값을 지정합니다.

    • 게시자 보안 모드를 SQL Server 인증으로 변경하거나 SQL Server 인증에 대한 로그인 정보를 변경하는 경우 @propertypublisher_password 값을 지정하고 @value에 새 암호를 지정합니다. 2단계를 반복하고 @propertypublisher_login 값을, @value에 새 로그인을 지정합니다.

    [!참고]

    에이전트 로그인 또는 암호를 변경한 후 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다.

    보안 정보보안 정보

    원격 배포자로 게시자를 구성할 경우 merge_job_loginmerge_job_password를 포함하여 모든 속성에 제공된 값이 일반 텍스트로 배포자에 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하십시오.

끌어오기 구독에 대한 병합 에이전트의 보안 설정을 변경하려면

  1. 구독자에서 sp_helpmergepullsubscription을 실행하고 @publication을 지정합니다. 이렇게 하면 구독자에서 실행되는 병합 에이전트에 대한 보안 설정을 포함하는 구독 속성이 반환됩니다.

  2. 구독 데이터베이스의 구독자에서 sp_change_subscription_properties를 실행하고 @publisher, @publisher_db, @publication을 지정하고 @property에 보안 속성의 이름을, @value에 속성의 새 값을 지정합니다.

  3. 변경할 다음 각 보안 속성에 대해 2단계를 반복합니다.

    • 에이전트가 실행되는 Windows 계정을 변경하거나 이 계정에 대한 암호만 변경하려면 @propertymerge_job_password 값을 지정하고 @value에 새 암호를 지정합니다. 계정 자체를 변경하는 경우 2단계를 반복하고 @propertymerge_job_login 값을, @value에 새 Windows 계정을 지정합니다.

    • 배포자에 연결하는 데 사용되는 보안 모드를 변경하려면 @propertydistributor_security_mode 값, @value1(Windows 통합 인증) 또는 0(SQL Server 인증) 값을 지정합니다.

    • 배포자 보안 모드를 SQL Server 인증으로 변경하거나 SQL Server 인증에 대한 로그인 정보를 변경하는 경우 @propertydistributor_password 값을 지정하고 @value에 새 암호를 지정합니다. 2단계를 반복하고 @propertydistributor_login 값을, @value에 새 로그인을 지정합니다.

    • 게시자에 연결하는 데 사용되는 보안 모드를 변경하려면 @propertypublisher_security_mode 값, @value1(Windows 통합 인증) 또는 0(SQL Server 인증) 값을 지정합니다.

    • 게시자 보안 모드를 SQL Server 인증으로 변경하거나 SQL Server 인증에 대한 로그인 정보를 변경하는 경우 @propertypublisher_password 값을 지정하고 @value 에 새 암호를 지정합니다. 2단계를 반복하고 @propertypublisher_login 값을, @value에 새 로그인을 지정합니다.

    [!참고]

    에이전트 로그인 또는 암호를 변경한 후 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다.

구독자에 대한 필터링된 스냅숏을 생성하도록 스냅숏 에이전트의 보안 설정을 변경하려면

  1. 게시자에서 sp_helpdynamicsnapshot_job을 실행하고 @publication을 지정합니다. 결과 집합에서 변경할 구독자 파티션의 job_name 값을 확인합니다.

  2. 게시자에서 sp_changedynamicsnapshot_job을 실행하고 @publication을 지정하고 @dynamic_snapshot_jobname에 1단계에서 얻은 값을, @job_password에 새 암호를, @job_login@job_password에 에이전트가 실행되는 Windows 계정의 로그인과 암호를 지정합니다.

    보안 정보보안 정보

    게시자를 원격 배포자로 구성할 경우 job_login 및 job_password를 비롯한 모든 매개 변수에 제공된 값이 일반 텍스트로 배포자에게 보내집니다. 이 저장 프로시저를 실행하기 전에 게시자와 해당 원격 배포자 간 연결을 암호화해야 합니다. 자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하십시오.

큐 판독기 에이전트의 보안 설정을 변경하려면

  1. 배포자에서 sp_helpqreader_agent를 실행합니다. 이렇게 하면 큐 판독기 에이전트가 실행되는 현재 Windows 계정이 반환됩니다.

    • 배포자에서 sp_changeqreader_agent를 실행하고 @job_login@job_passwsord에 Windows 계정 설정을 지정합니다.

    [!참고]

    에이전트 로그인 또는 암호를 변경한 후 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다. 각 배포 데이터베이스에 대해 하나의 큐 판독기 에이전트가 있습니다. 에이전트에 대한 보안 설정을 변경하면 이 배포 데이터베이스를 사용하는 모든 게시자의 모든 게시 설정이 영향을 받습니다.

  2. 큐 판독기 에이전트는 구독에 대한 배포 에이전트와 동일한 연결 컨텍스트를 사용하여 구독자에 연결합니다.

게시자에 연결할 때 즉시 업데이트 구독자에서 사용되는 보안 모드를 변경하려면

  • 구독 데이터베이스의 구독자에서 sp_link_publication을 실행합니다. @publisher, @publication, @publisher_db에 대해 게시 데이터베이스의 이름, @security_mode에 대해 다음 값 중 하나를 지정합니다.

    • 0 - 게시자에서 업데이트할 때 SQL Server 인증을 사용합니다. 이 옵션을 사용하려면 @login@password에 대해 게시자에 유효한 로그인을 지정해야 합니다.

    • 1 - 게시자에 연결할 때 구독자에서 변경 작업을 수행하는 사용자의 보안 컨텍스트를 사용합니다. 이 보안 모드에 관한 제한 사항에 대해서는 sp_link_publication을 참조하십시오.

    • 2 - sp_addlinkedserver(Transact-SQL)를 사용하여 만든 기존의 사용자 정의 연결된 서버 로그인을 사용합니다.

원격 배포자에 대한 암호를 변경하려면

  1. 배포 데이터베이스의 배포자에서 sp_changedistributor_password를 실행하고 @password에 이 로그인의 새 암호를 지정합니다.

    중요 정보중요

    distributor_admin의 암호를 직접 변경하지 마십시오.

  2. 이 원격 배포자를 사용하는 모든 게시자에서 sp_changedistributor_password를 실행하고 @password에 1단계의 암호를 지정합니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

RMO(복제 관리 개체) 사용

보안 정보보안 정보

가능한 경우 런타임 시 사용자에게 보안 자격 증명을 입력하라는 메시지가 표시됩니다. 자격 증명을 저장해야 하는 경우 Microsoft Windows .NET Framework에서 제공하는 암호화 서비스를 사용합니다.

복제 서버에 저장된 암호의 모든 인스턴스를 변경하려면

  1. ServerConnection 클래스를 사용하여 복제 서버에 대한 연결을 만듭니다.

  2. 1단계에서 만든 연결을 사용하여 ReplicationServer 클래스의 인스턴스를 만듭니다.

  3. ChangeReplicationServerPasswords 메서드를 호출합니다. 다음 매개 변수를 지정합니다.

    • security_mode - 모든 암호 인스턴스를 변경할 때 사용할 인증 유형을 지정하는 ReplicationSecurityMode

    • login - 변경 중인 암호의 모든 인스턴스에 대한 로그인

    • password - 새 암호 값

      보안 정보보안 정보

      가능하면 런타임에 사용자에게 자격 증명을 입력하라는 메시지를 표시하십시오. 자격 증명을 저장해야 하는 경우 Windows .NET Framework에서 제공하는 암호화 서비스를 사용합니다.

      [!참고]

      sysadmin 고정 서버 역할의 멤버만 이 메서드를 호출할 수 있습니다.

  4. 복제 토폴로지에서 암호를 업데이트해야 하는 모든 서버에 대해 1 - 3단계를 반복합니다.

트랜잭션 게시에 대한 밀어넣기 구독의 배포 에이전트 보안 설정을 변경하려면

  1. ServerConnection 클래스를 사용하여 게시자 연결을 만듭니다.

  2. TransSubscription 클래스의 인스턴스를 만듭니다.

  3. 구독에 대한 PublicationName, DatabaseName, SubscriberNameSubscriptionDBName 속성을 설정하고, 1단계에서 만든 연결을 ConnectionContext 속성에 대해 설정합니다.

  4. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다. 이 메서드가 false를 반환하는 경우 3단계에서 구독 속성이 올바르게 정의되지 않았거나 구독이 없습니다.

  5. TransSubscription 인스턴스의 다음 보안 속성 중 하나 이상을 설정합니다.

  6. (옵션) CachePropertyChanges에 대해 true 값을 지정했으면 CommitPropertyChanges 메서드를 호출하여 서버의 변경 내용을 커밋합니다. CachePropertyChanges에 대해 false 값을 지정했으면(기본값) 변경 내용이 즉시 서버로 전송됩니다.

트랜잭션 게시에 대한 끌어오기 구독의 배포 에이전트 보안 설정을 변경하려면

  1. ServerConnection 클래스를 사용하여 구독자 연결을 만듭니다.

  2. TransPullSubscription 클래스의 인스턴스를 만듭니다.

  3. 구독에 대한 PublicationName, DatabaseName, PublisherNamePublicationDBName 속성을 설정하고, 1단계에서 만든 연결을 ConnectionContext 속성에 대해 설정합니다.

  4. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다. 이 메서드가 false를 반환하는 경우 3단계에서 구독 속성이 올바르게 정의되지 않았거나 구독이 없습니다.

  5. TransPullSubscription 인스턴스의 다음 보안 속성 중 하나 이상을 설정합니다.

  6. (옵션) CachePropertyChanges에 대해 true 값을 지정했으면 CommitPropertyChanges 메서드를 호출하여 서버의 변경 내용을 커밋합니다. CachePropertyChanges에 대해 false 값을 지정했으면(기본값) 변경 내용이 즉시 서버로 전송됩니다.

병합 게시에 대한 끌어오기 구독의 병합 에이전트 보안 설정을 변경하려면

  1. ServerConnection 클래스를 사용하여 구독자 연결을 만듭니다.

  2. MergePullSubscription 클래스의 인스턴스를 만듭니다.

  3. 구독에 대한 PublicationName, DatabaseName, PublisherNamePublicationDBName 속성을 설정하고, 1단계에서 만든 연결을 ConnectionContext 속성에 대해 설정합니다.

  4. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다. 이 메서드가 false를 반환하는 경우 3단계에서 구독 속성이 올바르게 정의되지 않았거나 구독이 없습니다.

  5. MergePullSubscription 인스턴스의 다음 보안 속성 중 하나 이상을 설정합니다.

  6. (옵션) CachePropertyChanges에 대해 true 값을 지정했으면 CommitPropertyChanges 메서드를 호출하여 서버의 변경 내용을 커밋합니다. CachePropertyChanges에 대해 false 값을 지정했으면(기본값) 변경 내용이 즉시 서버로 전송됩니다.

병합 게시에 대한 밀어넣기 구독의 병합 에이전트 보안 설정을 변경하려면

  1. ServerConnection 클래스를 사용하여 게시자 연결을 만듭니다.

  2. MergeSubscription 클래스의 인스턴스를 만듭니다.

  3. 구독에 대한 PublicationName, DatabaseName, SubscriberNameSubscriptionDBName 속성을 설정하고, 1단계에서 만든 연결을 ConnectionContext 속성에 대해 설정합니다.

  4. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다. 이 메서드가 false를 반환하는 경우 3단계에서 구독 속성이 올바르게 정의되지 않았거나 구독이 없습니다.

  5. MergeSubscription 인스턴스의 다음 보안 속성 중 하나 이상을 설정합니다.

  6. (옵션) CachePropertyChanges에 대해 true 값을 지정했으면 CommitPropertyChanges 메서드를 호출하여 서버의 변경 내용을 커밋합니다. CachePropertyChanges에 대해 false 값을 지정했으면(기본값) 변경 내용이 즉시 서버로 전송됩니다.

트랜잭션 게시자에 연결할 때 즉시 업데이트 구독자에서 사용하는 로그인 정보를 변경하려면

  1. ServerConnection 클래스를 사용하여 구독자 연결을 만듭니다.

  2. 구독 데이터베이스에 대한 ReplicationDatabase 클래스의 인스턴스를 만듭니다. Name을 지정하고 ConnectionContext에 1단계에서 만든 ServerConnection을 지정합니다.

  3. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다. 이 메서드가 false를 반환하는 경우 2단계에서 데이터베이스 속성이 잘못 정의되었거나 구독 데이터베이스가 없는 것입니다.

  4. 다음 매개 변수를 전달하는 LinkPublicationForUpdateableSubscription 메서드를 호출합니다.

    • Publisher - 게시자 이름

    • PublisherDB - 게시 데이터베이스 이름

    • Publication - 즉시 업데이트 구독자가 구독하는 게시 이름

    • Distributor - 배포자 이름

    • PublisherSecurity - 게시자에 연결할 때 즉시 업데이트 구독자가 사용하는 보안 모드 유형 및 연결 시 사용하는 로그인 자격 증명을 지정하는 PublisherConnectionSecurityContext 개체

예(RMO)

이 예에서는 제공된 로그인 값을 확인하고 서버에서 복제로 저장된 SQL Server 로그인 또는 제공된 Windows 로그인의 모든 암호를 변경합니다.

            // Set the Distributor and distribution database names.
            string serverName = publisherInstance;

            ReplicationServer server;
            
            // Create a connection to the Distributor using Windows Authentication.
            ServerConnection conn = new ServerConnection(serverName);

            try
            {
                // Open the connection. 
                conn.Connect();

                server = new ReplicationServer(conn);

                // Load server properties, if it exists.
                if (server.LoadProperties())
                {
                    string[] slash = new string[1];
                    slash[1] = @"\";

                    // If the login is in the form string\string, assume we are 
                    // changing the password for a Windows login.
                    if (login.Split(slash, StringSplitOptions.None).Length == 2)
                    {
                        //Change the password for the all connections that use
                        // the Windows login. 
                        server.ChangeReplicationServerPasswords(
                                ReplicationSecurityMode.Integrated, login, password);
                    }
                    else
                    {
                        // Change the password for the all connections that use
                        // the SQL Server login. 
                        server.ChangeReplicationServerPasswords(
                                ReplicationSecurityMode.SqlStandard, login, password);
                    }
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "Properties for {0} could not be retrieved.", publisherInstance));
                }
            }
            catch (Exception ex)
            {
                // Implement the appropriate error handling here. 
                throw new ApplicationException(String.Format(
                    "An error occured when changing agent login " +
                    " credentials on {0}.",serverName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Distributor and distribution database names.
Dim serverName As String = publisherInstance

Dim server As ReplicationServer

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(serverName)

Try
    ' Open the connection. 
    conn.Connect()

    server = New ReplicationServer(conn)

    ' Load server properties, if it exists.
    If server.LoadProperties() Then

        ' If the login is in the form string\string, assume we are 
        ' changing the password for a Windows login.
        If login.Split("\").Length = 2 Then

            ' Change the password for the all connections that use
            ' the Windows login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.Integrated, login, password)
        Else

            ' Change the password for the all connections that use
            ' the SQL Server login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.SqlStandard, login, password)
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "Properties for {0} could not be retrieved.", publisherInstance))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException(String.Format( _
     "An error occured when changing agent login " + _
     " credentials on {0}.", serverName), ex)
Finally
    conn.Disconnect()
End Try

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

후속 작업: 복제 보안 설정 수정 후

에이전트 로그인 또는 암호를 변경한 후에는 에이전트를 중지하고 다시 시작해야 변경 내용이 적용됩니다.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘[Top]

참고 항목

태스크

복제 스크립트 업그레이드(복제 Transact-SQL 프로그래밍)

개념

복제 관리 개체 개념

복제 에이전트 보안 모델

복제 보안을 위한 최선의 구현 방법

복제 시스템 저장 프로시저 개념

관련 자료

복제의 로그인 및 암호 관리

보안 및 보호(복제)