Vorgehensweise: Konfigurieren der initiierenden Dienste auf anonyme Dialogsicherheit (Transact-SQL)

SQL Server verwendet Dialogsicherheit für jede Konversation mit einem Dienst, für den eine Remotedienstbindung vorhanden ist. Wenn die Datenbank, die den Zieldienst hostet, keinen Benutzer enthält, der dem Benutzer entspricht, der den Dialog erstellt hat, verwendet der Dialog anonyme Sicherheit.

SicherheitshinweisSicherheitshinweis

Installieren Sie Zertifikate nur von vertrauenswürdigen Quellen.

So stellen Sie sicher, dass ein initiierender Dienst Dialogsicherheit verwendet

  1. Rufen Sie in der Remotedatenbank von einer vertrauenswürdigen Quelle ein Zertifikat für einen Benutzer ab.

  2. Erstellen Sie einen Benutzer ohne Anmeldenamen.

  3. Installieren Sie das Zertifikat für den Remotedienst. Der im Schritt 3 erstellte Benutzer ist Besitzer des Zertifikats. Standardmäßig ist das Zertifikat für BEGIN DIALOG aktiv.

  4. Erstellen Sie eine Remotedienstbindung, die den Benutzer und den Zieldienst angibt. Für anonyme Dialogsicherheit gibt die Remotedienstbindung ANONYMOUS = ON an.

Beispiel

In diesem Beispiel wird die anonyme Dialogsicherheit für Konversationen zwischen dem Dienst mit der Bezeichnung OrderParts in der aktuellen Instanz und dem Dienst mit der Bezeichnung SupplierOrders in der Remoteinstanz konfiguriert.

USE AdventureWorks2008R2 ;
GO

-- Given a certificate for a remote user for the remote service
-- SupplierOrders, create a remote service binding for
-- the service.  The remote user will be granted permission
-- to send messages to the local service OrderParts. 
-- This example assumes that the certificate for the service 
-- is saved in the file'C:\Certificates\SupplierOrders.cer' and that
-- the initiating service already exists.


-- Create a user without a login.

CREATE USER [SupplierOrdersUser]
    WITHOUT LOGIN ;
GO

-- Install a certificate for the owner of the service
-- in the remote database. The certificate is
-- provided by the owner of the remote service. The
-- user for the remote service owns the certificate.

CREATE CERTIFICATE [SupplierOrdersCertificate]
    AUTHORIZATION [SupplierOrdersUser]
    FROM FILE='C:\Certificates\SupplierOrders.cer' ;
GO

-- Create the remote service binding. Notice
-- that the user specified in the binding
-- does not own the binding itself.

-- Creating this binding specifies that messages from
-- this database are secured using the certificate for
-- the [SupplierOrdersUser] user.

-- Since anonymous is ON, the credentials for the user
-- that begins the conversation are not used for the
-- conversation.

CREATE REMOTE SERVICE BINDING [SupplierOrdersBinding]
    TO SERVICE 'SupplierOrders'
    WITH USER = [SupplierOrdersUser],
         ANONYMOUS = ON ;
GO