이벤트 알림에 대한 대화 보안 구성Configure Dialog Security for Event Notifications

Service BrokerService Broker 대화 보안을 구성해야 합니다. dialog security should be configured for event notifications that send messages to a service broker on a remote server. 대화 보안은 Service BrokerService Broker 의 높은 수준의 대화 보안 모델에 따라 수동으로 구성해야 합니다.Dialog security must be manually configured according to the Service BrokerService Broker dialog full-security model. 높은 수준의 보안 모델은 원격 서버와 주고 받는 메시지의 암호화 및 암호 해독을 가능하게 합니다.The full-security model enables encryption and decryption of messages that are sent to and from remote servers. 이벤트 알림은 한 방향으로 전송되지만 오류와 같은 다른 메시지는 반대 방향으로도 반환됩니다.Although event notifications are sent in one direction, other messages, such as errors, are also returned in the opposite direction.

이벤트 알림에 대한 대화 보안 구성Configuring Dialog Security for Event Notifications

다음 단계에서는 이벤트 알림에 대한 대화 보안을 구현하는 과정을 설명합니다.The process required to implement dialog security for event notification is described in the following steps. 이러한 단계에 포함된 동작은 원본 서버와 대상 서버 둘 다에서 수행해야 합니다.These steps include actions to take on both the source server and the target server. 원본 서버는 이벤트 알림이 생성되는 서버입니다.The source server is the server on which the event notification is being created. 대상 서버는 이벤트 알림 메시지를 받는 서버입니다.The target server is the server that receives the event notification message. 다음 단계로 넘어가기 전에 원본 서버와 대상 서버 둘 다에 대해 각 단계의 동작을 완료해야 합니다.You must complete the actions in each step for both the source server and the target server before you continue to the next step.

중요

모든 인증서는 유효한 시작 날짜와 만료 날짜를 사용하여 만들어야 합니다.All certificates must be created with valid start and expiration dates.

1단계: TCP 포트 번호와 대상 서비스 이름을 설정합니다.Step 1: Establish a TCP port number and target service name.

원본 서버와 대상 서버가 메시지를 받을 TCP 포트를 설정합니다.Establish the TCP port on which both the source server and the target server will receive messages. 대상 서비스의 이름도 결정해야 합니다.You must also determine the name of the target service.

2단계: 데이터베이스 수준 인증에 대한 암호화 및 인증서 공유를 구성합니다.Step 2: Configure encryption and certificate sharing for database-level authentication.

원본 서버와 대상 서버 둘 다에서 다음 동작을 완료합니다.Complete the following actions on both the source and target servers.

원본 서버Source server 대상 서버Target server
이벤트 알림과 마스터 키를 보관할 데이터베이스를 선택하거나 만듭니다.Choose or create a database to hold the event notification and master key. 마스터 키를 보관할 데이터베이스를 선택하거나 만듭니다.Choose or create a database to hold the master key.
원본 데이터베이스에 대한 마스터 키가 없으면 마스터 키를 만듭니다.If no master key exists for the source database, create a master key. 해당 인증서를 보호하려면 원본 데이터베이스와 대상 데이터베이스에 모두 마스터 키가 필요합니다.A master key is required on both the source and target databases to help secure their respective certificates. 대상 데이터베이스에 대한 마스터 키가 없으면 마스터 키를 만듭니다.If no master key exists for the target database, create a master key.
원본 데이터베이스에 대한로그인 및 해당 사용자 를 만듭니다.Create a login and a corresponding user for the source database. 대상 데이터베이스에 대한 로그인 및 해당 사용자를 만듭니다.Create a login and a corresponding user for the target database.
원본 데이터베이스의 사용자가 소유하는인증서를 만듭니다 .Create a certificate that is owned by the user of the source database. 대상 데이터베이스의 사용자가 소유하는 인증서를 만듭니다.Create a certificate that is owned by the user of the target database.
대상 서버가 액세스할 수 있는 파일에인증서를 백업합니다 .Back up the certificate to a file that can be accessed by the target server. 원본 서버가 액세스할 수 있는 파일에 인증서를 백업합니다.Back up the certificate to a file that can be accessed by the source server.
대상 데이터베이스의 사용자와 WITHOUT LOGIN을 지정하여사용자를 만듭니다.Create a user, specifying the user of the target database, and WITHOUT LOGIN. 이 사용자는 백업 파일로부터 생성될 대상 데이터베이스 인증서를 소유하게 됩니다.This user will own the target database certificate to be created from the backup file. 이 사용자는 다음 3단계에서 만드는 대상 데이터베이스 인증서를 소유하는 용도로만 사용되므로 사용자를 로그인에 매핑할 필요는 없습니다.The user does not have to be mapped to a login, because the only purpose of this user is to own the target database certificate created in step 3 that follows. 원본 데이터베이스의 사용자와 WITHOUT LOGIN을 지정하여 사용자를 만듭니다.Create a user, specifying the user of the source database, and WITHOUT LOGIN. 이 사용자는 백업 파일로부터 생성될 원본 데이터베이스 인증서를 소유하게 됩니다.This user will own the source database certificate to be created from the backup file. 이 사용자는 다음 3단계에서 만드는 원본 데이터베이스 인증서를 소유하는 용도로만 사용되므로 사용자를 로그인에 매핑할 필요는 없습니다.The user does not have to be mapped to a login, because the only purpose of this user is to own the source database certificate created in step 3 that follows.

3단계: 데이터베이스 수준 인증에 대한 인증서를 공유하고 사용 권한을 부여합니다.Step 3: Share certificates and grant permissions for database-level authentication.

원본 서버와 대상 서버 둘 다에서 다음 동작을 완료합니다.Complete the following actions on both the source and target servers.

원본 서버Source server 대상 서버Target server
대상 데이터베이스 사용자를 소유자로 지정하여 대상 인증서의 백업 파일로부터인증서를 만듭니다 .Create a certificate from the backup file of the target certificate, specifying the target database user as the owner. 원본 데이터베이스 사용자를 소유자로 지정하여 원본 인증서의 백업 파일로부터 인증서를 만듭니다.Create a certificate from the backup file of the source certificate, specifying the source database user as the owner.
원본 데이터베이스 사용자에게 이벤트 알림을 만들 수 있는권한을 부여합니다 .Grant permission to create the event notification to the source database user. 이 사용 권한에 대한 자세한 내용은 CREATE EVENT NOTIFICATION(Transact-SQL).For more information about this permission, see CREATE EVENT NOTIFICATION (Transact-SQL). 기존 이벤트 알림 Service BrokerService Broker 계약의 대상 데이터베이스 사용자에게 REFERENCES 권한을 부여합니다. http://schemas.microsoft.com/SQL/Notifications/PostEventNotificationGrant REFERENCES permission to the target database user on the existing event notifications Service BrokerService Broker contract: http://schemas.microsoft.com/SQL/Notifications/PostEventNotification.
대상 서비스에 대한원격 서비스 바인딩을 만들고 대상 데이터베이스 사용자의 자격 증명을 지정합니다.Create a remote service binding to the target service and specify the credentials of the target database user. 원격 서비스 바인딩은 원본 데이터베이스 사용자가 소유한 인증서의 공개 키가 대상 서버로 전송되는 메시지를 인증하도록 합니다.The remote service binding guarantees that the public key in the certificate owned by the source database user will authenticate messages that are sent to the target server. 대상 데이터베이스 사용자에게 CREATE QUEUE, CREATE SERVICE 및 CREATE SCHEMA 권한을부여합니다 .Grant CREATE QUEUE, CREATE SERVICE, and CREATE SCHEMA permissions to the target database user.
대상 데이터베이스 사용자로 데이터베이스에 연결되어 있지 않으면 지금 연결합니다.If not already connected to the database as the target database user, do so now.
이벤트 알림 메시지를 받을큐를 만들고 메시지를 배달할 서비스를 만듭니다 .Create a queue to receive the event notification messages and create a service to deliver the messages.
원본 데이터베이스 사용자에게 대상 서비스에 대한SEND 권한을 부여합니다 .Grant SEND permission on the target service to the source database user.
대상 서버에 원본 데이터베이스의 Service Broker 식별자를 제공합니다.Provide the service broker identifier of the source database to the target server. 이 식별자는 sys.databases 카탈로그 뷰의 service_broker_guid 열을 쿼리하면 얻을 수 있습니다.This identifier can be obtained by querying the service_broker_guid column of the sys.databases catalog view. 서버 수준 이벤트 알림의 경우 msdb의 Service Broker 식별자를 사용합니다.For a server-level event notification, use the service broker identifier of msdb. 원본 서버에 대상 데이터베이스의 Service Broker 식별자를 제공합니다.Provide the service broker identifier of the target database to the source server.

4단계: 경로를 만들고 서버 수준의 인증을 설정합니다.Step 4: Create routes and set up server-level authentication.

원본 서버와 대상 서버 둘 다에서 다음 동작을 완료합니다.Complete the following actions on both the source and target servers.

원본 서버Source server 대상 서버Target server
대상 서비스로의경로를 만들고 대상 데이터베이스의 Service Broker 식별자 및 합의된 TCP 포트 번호를 지정합니다.Create a route to the target service, and specify the service broker identifier of the target database and the agreed-upon TCP port number. 원본 서비스로의 경로를 만들고 원본 데이터베이스의 Service Broker 식별자 및 합의된 TCP 포트 번호를 지정합니다.Create a route to the source service, and specify the service broker identifier of the source database and the agreed-upon TCP port number. 원본 서비스를 지정하려면 다음과 같은 제공된 서비스를 사용합니다. http://schemas.microsoft.com/SQL/Notifications/EventNotificationServiceTo specify the source service, use the following supplied service: http://schemas.microsoft.com/SQL/Notifications/EventNotificationService.
master 데이터베이스로 전환하여 서버 수준의 인증을 구성합니다.Switch to the master database to configure server-level authentication. master 데이터베이스로 전환하여 서버 수준의 인증을 구성합니다.Switch to the master database to configure server-level authentication.
master 데이터베이스에 대한 마스터 키가 없으면 마스터 키를 만듭니다.If no master key exists for the master database, create a master key. master 데이터베이스에 대한 마스터 키가 없으면 마스터 키를 만듭니다.If no master key exists for the master database, create a master key.
데이터베이스를 인증하는인증서를 만듭니다 .Create a certificate that authenticates the database. 데이터베이스를 인증하는 인증서를 만듭니다.Create a certificate that authenticates the database.
대상 서버가 액세스할 수 있는 파일에인증서를 백업합니다 .Back up the certificate to a file that can be accessed by the target server. 원본 서버가 액세스할 수 있는 파일에 인증서를 백업합니다.Back up the certificate to a file that can be accessed by the source server.
끝점을 만들고합의된 TCP 포트 번호, FOR SERVICE_BROKER(AUTHENTICATION = CERTIFICATE certificate_name) 및 인증하는 인증서의 이름을 지정합니다.Create an endpoint, and specify the agreed-upon TCP port number, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name), and the name of the authenticating certificate. 끝점을 만들고 합의된 TCP 포트 번호, FOR SERVICE_BROKER(AUTHENTICATION = CERTIFICATE certificate_name) 및 인증하는 인증서의 이름을 지정합니다.Create an endpoint, and specify the agreed-upon TCP port number, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name), and the name of the authenticating certificate.
로그인을 만들고대상 서버의 로그인을 지정합니다.Create a login, and specify the login of the target server. 로그인을 만들고 원본 서버의 로그인을 지정합니다.Create a login, and specify the login of the source server.
대상 인증자 로그인에 끝점에 대한CONNECT 권한을 부여합니다 .Grant CONNECT permission on the endpoint to the target authenticator login. 원본 인증자 로그인에 끝점에 대한 CONNECT 권한을 부여합니다.Grant CONNECT permission on the endpoint to the source authenticator login.
사용자를 만들고대상 인증자 로그인을 지정합니다.Create a user, and specify the target authenticator login. 사용자를 만들고 원본 인증자 로그인을 지정합니다.Create a user, and specify the source authenticator login.

5단계: 서버 수준의 인증에 대한 인증서를 공유하고 이벤트 알림을 만듭니다.Step 5: Share certificates for server-level authentication and create the event notification.

원본 서버와 대상 서버 둘 다에서 다음 동작을 완료합니다.Complete the following actions on both the source and target servers.

원본 서버Source server 대상 서버Target server
대상 인증자 사용자를 소유자로 지정하여 대상 인증서의 백업 파일로부터인증서를 만듭니다 .Create a certificate from the backup file of the target certificate, specifying the target authenticator user as the owner. 원본 인증자 사용자를 소유자로 지정하여 원본 인증서의 백업 파일로부터 인증서를 만듭니다.Create a certificate from the backup file of the source certificate, specifying the source authenticator user as the owner.
이벤트 알림을 만들 원본 데이터베이스로 전환하고 원본 데이터베이스 사용자로 연결되어 있지 않으면 지금 연결합니다.Switch to the source database on which to create the event notification, and if you are not already connected as the source database user, do so now. 이벤트 알림 메시지를 받을 대상 데이터베이스로 전환합니다.Switch to the target database to receive event notification messages.
이벤트 알림을 만들고대상 데이터베이스의 Service Broker 식별자를 지정합니다.Create the event notification, and specify the broker service and identifier of the target database.

참고 항목See Also

GRANT(Transact-SQL) GRANT (Transact-SQL)
BACKUP CERTIFICATE(Transact-SQL) BACKUP CERTIFICATE (Transact-SQL)
sys.databases(Transact-SQL) sys.databases (Transact-SQL)
암호화 계층 Encryption Hierarchy
이벤트 알림 구현 Implement Event Notifications
CREATE MASTER KEY(Transact-SQL) CREATE MASTER KEY (Transact-SQL)
CREATE LOGIN (Transact-SQL) CREATE LOGIN (Transact-SQL)
CREATE USER(Transact-SQL) CREATE USER (Transact-SQL)
CREATE CERTIFICATE(Transact-SQL) CREATE CERTIFICATE (Transact-SQL)
CREATE REMOTE SERVICE BINDING(Transact-SQL) CREATE REMOTE SERVICE BINDING (Transact-SQL)
GRANT(Transact-SQL) GRANT (Transact-SQL)
CREATE ROUTE(Transact-SQL) CREATE ROUTE (Transact-SQL)
CREATE QUEUE(Transact-SQL) CREATE QUEUE (Transact-SQL)
CREATE SERVICE(Transact-SQL) CREATE SERVICE (Transact-SQL)
CREATE ENDPOINT(Transact-SQL) CREATE ENDPOINT (Transact-SQL)
CREATE EVENT NOTIFICATION(Transact-SQL) CREATE EVENT NOTIFICATION (Transact-SQL)