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
Erstellen Sie einen Benutzer ohne Anmeldenamen.
Erstellen Sie ein Zertifikat für den Benutzer.
Hinweis: Das Zertifikat muss mit dem Hauptschlüssel verschlüsselt sein. Weitere Informationen finden Sie unter CREATE MASTER KEY (Transact-SQL). Sichern Sie das Zertifikat in einer Datei.
Sicherheitshinweis: Sichern Sie lediglich das Zertifikat für diesen Benutzer. Sichern oder verteilen Sie keinesfalls den privaten Schlüssel, der dem Zertifikat zugeordnet ist. Erteilen Sie dem Zieldienstbenutzer die Berechtigung, Nachrichten aus der vom Zieldienst verwendeten Warteschlange zu empfangen.
Erteilen Sie PUBLIC die Berechtigung, Nachrichten an den Zieldienst zu senden.
Ü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)