CREATE REMOTE SERVICE BINDING(Transact-SQL)

업데이트: 2007년 9월 15일

원격 서비스와 대화를 시작하는 데 사용할 보안 자격 증명을 정의하는 바인딩을 만듭니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

CREATE REMOTE SERVICE BINDING binding_name 
   [ AUTHORIZATION owner_name ] 
   TO SERVICE 'service_name' 
   WITH  USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]

인수

  • binding_name
    생성할 원격 서비스 바인딩의 이름입니다. 서버, 데이터베이스 및 스키마 이름은 지정할 수 없습니다. binding_name은 유효한 sysname이어야 합니다.
  • AUTHORIZATION owner_name
    지정한 데이터베이스 사용자 또는 역할로 바인딩 소유자를 설정합니다. 현재 사용자가 dbo 또는 sa일 경우 owner_name은 유효한 사용자 또는 역할의 이름일 수 있습니다. 그렇지 않으면 owner_name은 현재 사용자 이름, 현재 사용자에 IMPERSONATE 권한이 있는 사용자 이름 또는 현재 사용자가 속해 있는 역할 이름 중 하나여야 합니다.
  • TO SERVICE 'service_name'
    WITH USER 절에서 식별된 사용자에 바인딩할 원격 서비스를 지정합니다.
  • USER = user_name
    TO SERVICE 절로 식별되는 원격 서비스와 연결된 인증서를 소유하는 데이터베이스 보안 주체를 지정합니다. 이 인증서는 원격 서비스와 교환한 메시지의 암호화 및 인증에 사용됩니다.
  • ANONYMOUS
    원격 서비스와 통신할 경우 익명 인증을 사용할지 여부를 지정합니다. ANONYMOUS가 ON인 경우에는 익명 인증이 사용되고 원격 데이터베이스의 작업은 public 고정 데이터베이스 역할의 멤버로 수행됩니다. ANONYMOUS가 OFF인 경우에는 원격 데이터베이스의 작업이 해당 데이터베이스의 특정 사용자로 수행됩니다. 이 절을 지정하지 않으면 기본값은 OFF입니다. Service Broker 대화 보안에서는 SQL Server 대화 보안이 원격 서비스 바인딩을 보안 주체에 매핑하는 방법에 대해 설명합니다.

주의

Service Broker는 원격 서비스 바인딩을 사용하여 새 대화에 사용할 인증서를 찾습니다. user_name과 연관된 인증서에 있는 공개 키는 원격 서비스로 전달된 메시지 인증 및 대화를 암호화하는 데 사용되는 세션 키의 암호화에 사용됩니다. user_name에 대한 인증서는 원격 서비스를 호스팅하는 데이터베이스의 사용자에 대한 인증서와 일치해야 합니다.

원격 서비스 바인딩은 SQL Server 인스턴스 외부의 대상 서비스와 대화하는 시작 서비스에만 필요합니다. 시작 서비스를 호스팅하는 데이터베이스에는 SQL Server 인스턴스 외부의 대상 서비스에 대한 원격 서비스 바인딩이 포함되어야 합니다. 대상 서비스를 호스팅하는 데이터베이스에는 대상 서비스와 대화하는 시작 서비스에 대한 원격 서비스 바인딩이 없어도 됩니다. 시작자 및 대상 서비스가 같은 SQL Server 인스턴스에 있는 경우에는 원격 서비스 바인딩이 필요 없습니다. 그러나 TO SERVICE에 지정된 service_name이 로컬 서비스 이름과 일치하는 원격 서비스 바인딩이 있는 경우 Service Broker는 바인딩을 사용합니다.

ANONYMOUS가 ON인 경우 시작 서비스는 public 고정 데이터베이스 역할의 멤버로 대상 서비스에 연결합니다. 기본적으로 이 역할의 멤버는 데이터베이스에 연결할 수 있는 권한이 없습니다. 메시지를 보내려면 대상 데이터베이스가 데이터베이스에 대한 CONNECT 권한 및 대상 서비스에 대한 SEND 권한을 public 역할에 부여해야 합니다.

사용자가 인증서를 두 개 이상 소유하고 있는 경우 Service Broker는 현재 유효하며 AVAILABLE FOR BEGIN_DIALOG로 표시된 인증서 중에서 만료 날짜가 가장 최근인 인증서를 선택합니다.

사용 권한

원격 서비스 바인딩 생성 권한은 기본적으로 USER 절에서 명명된 사용자, db_owner 고정 데이터베이스 역할의 멤버, db_ddladmin 고정 데이터베이스 역할의 멤버 및 sysadmin 고정 서버 역할의 멤버에게 있습니다.

CREATE REMOTE SERVICE BINDING 문을 실행하는 사용자는 문에서 지정한 보안 주체에 대해 가장 권한이 있어야 합니다.

원격 서비스 바인딩은 임시 개체가 될 수 없습니다. 원격 서비스 바인딩 이름은 **#**으로 시작할 수 있지만 영구 개체입니다.

1. 원격 서비스 바인딩 만들기

다음 예에서는 //Adventure-Works.com/services/AccountsPayable 서비스에 대한 바인딩을 만듭니다. Service Broker는 APUser 데이터베이스 보안 주체가 소유한 인증서를 사용하여 원격 서비스를 인증하고 원격 서비스와 세션 암호화 키를 교환합니다.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser ;

2. 익명 인증을 사용하여 원격 서비스 바인딩 만들기

다음 예에서는 //Adventure-Works.com/services/AccountsPayable 서비스에 대한 바인딩을 만듭니다. Service Broker는 APUser 데이터베이스 보안 주체가 소유한 인증서를 사용하여 원격 서비스와 세션 암호화 키를 교환합니다. 원격 서비스를 인증하지는 않습니다. 원격 서비스를 호스팅하는 데이터베이스에서 메시지는 guest 사용자로 배달됩니다.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser, ANONYMOUS=ON ;

참고 항목

참조

ALTER REMOTE SERVICE BINDING(Transact-SQL)
DROP REMOTE SERVICE BINDING(Transact-SQL)
EVENTDATA(Transact-SQL)

관련 자료

인스턴스 간의 대화 완료
Service Broker에 대한 보안 고려 사항
대화 보안 인증서

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2007년 9월 15일

변경된 내용
  • 원격 서비스 바인딩이 로컬 서비스에 적용된다는 설명을 추가했습니다.