CREATE REMOTE SERVICE BINDING(Transact-SQL)CREATE REMOTE SERVICE BINDING (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

원격 서비스와 대화를 시작하는 데 사용할 보안 자격 증명을 정의하는 바인딩을 만듭니다.Creates a binding that defines the security credentials to use to initiate a conversation with a remote service.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax


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

인수Arguments

binding_namebinding_name
생성할 원격 서비스 바인딩의 이름입니다.Is the name of the remote service binding to be created. 서버, 데이터베이스 및 스키마 이름은 지정될 수 없습니다.Server, database, and schema names cannot be specified. binding_name은 유효한 sysname이어야 합니다.The binding_name must be a valid sysname.

AUTHORIZATION owner_nameAUTHORIZATION owner_name
지정한 데이터베이스 사용자 또는 역할로 바인딩 소유자를 설정합니다.Sets the owner of the binding to the specified database user or role. 현재 사용자가 dbo 또는 sa일 경우 owner_name은 유효한 사용자 또는 역할의 이름일 수 있습니다.When the current user is dbo or sa, owner_name can be the name of any valid user or role. 그렇지 않으면 owner_name은 현재 사용자 이름, 현재 사용자에 IMPERSONATE 권한이 있는 사용자 이름 또는 현재 사용자가 속해 있는 역할 이름 중 하나여야 합니다.Otherwise, owner_name must be the name of the current user, the name of a user who the current user has IMPERSONATE permissions for, or the name of a role to which the current user belongs.

TO SERVICE 'service_name'TO SERVICE 'service_name'
WITH USER 절에서 식별된 사용자에 바인딩할 원격 서비스를 지정합니다.Specifies the remote service to bind to the user identified in the WITH USER clause.

USER = user_nameUSER = user_name
TO SERVICE 절로 식별되는 원격 서비스와 연결된 인증서를 소유하는 데이터베이스 보안 주체를 지정합니다.Specifies the database principal that owns the certificate associated with the remote service identified by the TO SERVICE clause. 이 인증서는 원격 서비스와 교환한 메시지의 암호화 및 인증에 사용됩니다.This certificate is used for encryption and authentication of messages exchanged with the remote service.

ANONYMOUSANONYMOUS
원격 서비스와 통신할 경우 익명 인증을 사용할지 여부를 지정합니다.Specifies whether anonymous authentication is used when communicating with the remote service. ANONYMOUS가 ON인 경우에는 익명 인증이 사용되고 원격 데이터베이스의 작업은 public 고정 데이터베이스 역할의 멤버로 수행됩니다.If ANONYMOUS = ON, anonymous authentication is used and operations in the remote database occur as a member of the public fixed database role. ANONYMOUS가 OFF인 경우에는 원격 데이터베이스의 작업이 해당 데이터베이스의 특정 사용자로 수행됩니다.If ANONYMOUS = OFF, operations in the remote database occur as a specific user in that database. 이 절을 지정하지 않은 경우 기본값은 OFF입니다.If this clause is not specified, the default is OFF.

RemarksRemarks

Service BrokerService Broker는 원격 서비스 바인딩을 사용하여 새 대화에 사용할 인증서를 찾습니다. uses a remote service binding to locate the certificate to use for a new conversation. user_name과 연관된 인증서에 있는 공개 키는 원격 서비스로 전달된 메시지 인증 및 대화를 암호화하는 데 사용되는 세션 키의 암호화에 사용됩니다.The public key in the certificate associated with user_name is used to authenticate messages sent to the remote service and to encrypt a session key that is then used to encrypt the conversation. user_name에 대한 인증서는 원격 서비스를 호스팅하는 데이터베이스의 사용자에 대한 인증서와 일치해야 합니다.The certificate for user_name must correspond to the certificate for a user in the database that hosts the remote service.

원격 서비스 바인딩은 SQL ServerSQL Server 인스턴스 외부의 대상 서비스와 대화하는 시작 서비스에만 필요합니다.A remote service binding is only necessary for initiating services that communicate with target services outside of the SQL ServerSQL Server instance. 시작 서비스를 호스팅하는 데이터베이스에는 SQL ServerSQL Server 인스턴스 외부의 대상 서비스에 대한 원격 서비스 바인딩이 포함되어야 합니다.A database that hosts an initiating service must contain remote service bindings for any target services outside of the SQL ServerSQL Server instance. 대상 서비스를 호스팅하는 데이터베이스에는 대상 서비스와 대화하는 시작 서비스에 대한 원격 서비스 바인딩이 없어도 됩니다.A database that hosts a target service need not contain remote service bindings for the initiating services that communicate with the target service. 시작자와 대상 서비스가 동일한 SQL ServerSQL Server 인스턴스 내에 있는 경우에는 원격 서비스 바인딩이 필요 없습니다.When the initiator and target services are in the same instance of SQL ServerSQL Server, no remote service binding is necessary. 그러나 원격 서비스 바인딩이 있고 TO SERVICE에 지정된 service_name이 로컬 서비스 이름과 일치하면 Service BrokerService Broker이 해당 바인딩을 사용하게 됩니다.However, if a remote service binding is present where the service_name specified for TO SERVICE matches the name of the local service, Service BrokerService Broker will use the binding.

ANONYMOUS가 ON인 경우 시작 서비스는 public 고정 데이터베이스 역할의 멤버로 대상 서비스에 연결합니다.When ANONYMOUS = ON, the initiating service connects to the target service as a member of the public fixed database role. 기본적으로 이 역할의 멤버는 데이터베이스에 연결할 수 있는 권한이 없습니다.By default, members of this role do not have permission to connect to a database. 메시지를 보내려면 대상 데이터베이스가 데이터베이스에 대한 CONNECT 권한 및 대상 서비스에 대한 SEND 권한을 public 역할에 부여해야 합니다.To successfully send a message, the target database must grant the public role CONNECT permission for the database and SEND permission for the target service.

사용자가 인증서를 두 개 이상 소유하고 있는 경우 Service BrokerService Broker는 현재 유효하며 AVAILABLE FOR BEGIN_DIALOG로 표시된 인증서 중에서 만료 날짜가 가장 최근인 인증서를 선택합니다.When a user owns more than one certificate, Service BrokerService Broker selects the certificate with the latest expiration date from among the certificates that currently valid and marked as AVAILABLE FOR BEGIN_DIALOG.

사용 권한Permissions

원격 서비스 바인딩 생성 권한은 기본적으로 USER 절에 명명된 사용자, db_owner 고정 데이터베이스 역할의 멤버, db_ddladmin 고정 데이터베이스 역할의 멤버 및 sysadmin 고정 서버 역할의 멤버에게 있습니다.Permissions for creating a remote service binding default to the user named in the USER clause, members of the db_owner fixed database role, members of the db_ddladmin fixed database role, and members of the sysadmin fixed server role.

CREATE REMOTE SERVICE BINDING 문을 실행하는 사용자는 문에서 지정한 보안 주체에 대해 가장 권한이 있어야 합니다.The user that executes the CREATE REMOTE SERVICE BINDING statement must have impersonate permission for the principal specified in the statement.

원격 서비스 바인딩은 임시 개체가 될 수 없습니다.A remote service binding may not be a temporary object. 원격 서비스 바인딩 이름은 # 으로 시작할 수 있지만 영구 개체입니다.Remote service binding names beginning with # are allowed, but are permanent objects.

Examples

1.A. 원격 서비스 바인딩 만들기Creating a remote service binding

다음 예에서는 //Adventure-Works.com/services/AccountsPayable 서비스에 대한 바인딩을 만듭니다.The following example creates a binding for the service //Adventure-Works.com/services/AccountsPayable. Service BrokerService BrokerAPUser 데이터베이스 보안 주체가 소유한 인증서를 사용하여 해당 원격 서비스와 세션 암호화 키를 교환합니다. uses the certificate owned by the APUser database principal to authenticate to the remote service and to exchange the session encryption key with the remote service.

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

2.B. 익명 인증을 사용하여 원격 서비스 바인딩 만들기Creating a remote service binding using anonymous authentication

다음 예에서는 //Adventure-Works.com/services/AccountsPayable 서비스에 대한 바인딩을 만듭니다.The following example creates a binding for the service //Adventure-Works.com/services/AccountsPayable. Service BrokerService BrokerAPUser 데이터베이스 보안 주체가 소유한 인증서를 사용하여 해당 원격 서비스와 세션 암호화 키를 교환합니다. uses the certificate owned by the APUser database principal to exchange the session encryption key with the remote service. 원격 서비스를 인증하지는 않습니다.The broker does not authenticate to the remote service. 원격 서비스를 호스팅하는 데이터베이스에서 메시지는 guest 사용자로 배달됩니다.In the database that hosts the remote service, messages are delivered as the guest user.

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

참고 항목See Also

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