Freigeben über


Vorgehensweise: Konfigurieren von Zieldiensten für eine anonyme Dialogsicherheit (Transact-SQL)

SQL Server verwendet die Dialogsicherheit für jede Konversation mit einem Dienst, für den eine Remotedienstbindung in der Datenbank vorhanden ist, die den initiierenden Dienst hostet. Wenn die Remotedienstbindung ANONYMOUS = ON angibt, verwendet der Dialog die anonyme Sicherheit. In diesem Fall muss die Zieldatenbank keinen Benutzer für den initiierenden Dienst enthalten. Der initiierende Dienst fungiert in der Zieldatenbank als public.

So konfigurieren Sie einen Zieldienst für die anonyme Dialogsicherheit

  1. Erstellen Sie einen Benutzer ohne Anmeldenamen.

  2. Erstellen Sie ein Zertifikat für den Benutzer.

    ms166108.note(de-de,SQL.90).gifHinweis:
    Das Zertifikat muss mit dem Hauptschlüssel verschlüsselt sein. Weitere Informationen finden Sie unter CREATE MASTER KEY (Transact-SQL).
  3. Sichern Sie das Zertifikat in einer Datei.

    ms166108.security(de-de,SQL.90).gifSicherheitshinweis:
    Sichern Sie lediglich das Zertifikat für diesen Benutzer. Sichern oder verteilen Sie keinesfalls den privaten Schlüssel, der dem Zertifikat zugeordnet ist.
  4. Erteilen Sie dem Zieldienstbenutzer die Berechtigung, Nachrichten aus der vom Zieldienst verwendeten Warteschlange zu empfangen.

  5. Erteilen Sie PUBLIC die Berechtigung, Nachrichten an den Zieldienst zu senden.

  6. Übergeben Sie das Zertifikat und den Namen des Zieldienstes an den Datenbankadministrator für die Remotedatenbank.

Beispiel

USE AdventureWorks ;
GO

--------------------------------------------------------------------
-- This script configures security for a local user in the database.
-- The script creates a user in this database, creates a certificate
-- for the user, writes the certificate to the file system, and
-- grants permissions to the user. Since this service is a target
-- service, no remote service binding is necessary.

-- Create a user without a login. For convenience,
-- the name of the user is based on the name of the
-- the remote service.

CREATE USER [SupplierOrdersUser]
    WITHOUT LOGIN;
GO

-- Create a certificate for the initiating service
-- to use to send messages to the target service.

CREATE CERTIFICATE [SupplierOrdersCertificate]
    AUTHORIZATION [SupplierOrdersUser]
    WITH SUBJECT = 'Certificate for the SupplierOrders service user.';
GO

-- Backup the certificate. Provide the certificate file
-- to the administrator for the database that hosts
-- the other service.

BACKUP CERTIFICATE [SupplierOrdersCertificate]
   TO FILE = 'C:\Certificates\SupplierOrders.cer';
GO

-- Grant receive on the orders queue to the local user.

GRANT RECEIVE ON SupplierOrdersQueue
    TO [SupplierOrdersUser];
GO

-- Grant send on the service to public.

GRANT SEND ON SERVICE::[SupplierOrders] TO public ;

Siehe auch

Aufgaben

Vorgehensweise: Konfigurieren von Berechtigungen für einen lokalen Dienst (Transact-SQL)
Vorgehensweise: Konfigurieren der initiierenden Dienste auf anonyme Dialogsicherheit (Transact-SQL)

Andere Ressourcen

CREATE CERTIFICATE (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE MASTER KEY (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005