Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Cria uma ligação que define as credenciais de segurança a usar para iniciar uma conversa com um serviço remoto.
Transact-SQL convenções de sintaxe
Syntax
CREATE REMOTE SERVICE BINDING binding_name
[ AUTHORIZATION owner_name ]
TO SERVICE 'service_name'
WITH USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]
Arguments
binding_name
É o nome da ligação de serviço remoto a ser criada. Nomes de servidores, bases de dados e esquemas não podem ser especificados. O binding_name tem de ser um nome de sistema válido.
AUTHORIZATION
owner_name
Define o proprietário da ligação para o utilizador ou papel especificado na base de dados. Quando o utilizador atual é dbo ou sa, owner_name pode ser o nome de qualquer utilizador ou função válida. Caso contrário, owner_name deve ser o nome do utilizador atual, o nome de um utilizador para quem o utilizador atual tem permissões de IMITAÇÃO, ou o nome de um papel ao qual o utilizador atual pertence.
PARA SERVICE 'service_name'
Especifica o serviço remoto a vincular ao utilizador identificado na cláusula WITH USER .
USER = user_name
Especifica o principal da base de dados que detém o certificado associado ao serviço remoto identificado pela cláusula TO SERVICE . Este certificado é utilizado para encriptação e autenticação de mensagens trocadas com o serviço remoto.
ANÓNIMO
Especifica se a autenticação anónima é usada ao comunicar com o serviço remoto. Se ANONYMOUS = ON, é usada autenticação anónima e as operações na base de dados remota ocorrem como membro do papel fixo da base de dados pública . Se ANONYMOUS = OFF, as operações na base de dados remota ocorrem como um utilizador específico nessa base de dados. Se esta cláusula não for especificada, o padrão é DESLIGADO.
Remarks
O Service Broker utiliza uma ligação remota de serviço para localizar o certificado e usar numa nova conversa. A chave pública no certificado associado ao user_name é usada para autenticar mensagens enviadas para o serviço remoto e para encriptar uma chave de sessão que depois é usada para encriptar a conversa. O certificado para user_name deve corresponder ao certificado de um utilizador na base de dados que aloja o serviço remoto.
Uma ligação remota de serviço só é necessária para iniciar serviços que comunicam com serviços alvo fora da instância do SQL Server. Uma base de dados que aloja um serviço iniciador deve conter associações remotas de serviço para quaisquer serviços alvo fora da instância do SQL Server. Uma base de dados que aloja um serviço alvo não precisa de conter ligações remotas de serviço para os serviços iniciadores que comunicam com o serviço alvo. Quando o iniciador e os serviços de destino estão na mesma instância do SQL Server, não é necessária ligação remota de serviços. No entanto, se existir uma ligação remota de serviço onde a service_name especificada para TO SERVICE corresponder ao nome do serviço local, o Service Broker usará a vinculação.
Quando ANONYMOUS = ON, o serviço iniciador liga-se ao serviço alvo como membro do papel de base de dados fixa pública . Por defeito, os membros desta função não têm permissão para se ligar a uma base de dados. Para enviar uma mensagem com sucesso, a base de dados alvo deve conceder ao papel público permissão CONNECT para a base de dados e SEND permissão para o serviço alvo.
Quando um utilizador possui mais do que um certificado, o Service Broker seleciona o certificado com a data de expiração mais recente entre os certificados atualmente válidos e marcados como DISPONÍVEIS PARA BEGIN_DIALOG.
Permissions
As permissões para criar uma ligação remota de serviço têm por defeito o utilizador nomeado na USER cláusula, os membros da db_owner função fixa na base de dados, os membros da db_ddladmin função fixa da base de dados e os membros do servidor fixo sysadmin .
O utilizador que executa a CREATE REMOTE SERVICE BINDING instrução deve ter permissão de personificação para o principal especificado na declaração.
Uma ligação remota de serviço pode não ser um objeto temporário. Nomes de ligação de serviços remotos que começam por # são permitidos, mas são objetos permanentes.
Examples
A. Criação de uma ligação remota de serviço
O exemplo seguinte cria uma ligação para o serviço //Adventure-Works.com/services/AccountsPayable. O Service Broker utiliza o certificado pertencente ao APUser principal da base de dados para autenticar no serviço remoto e para trocar a chave de encriptação da sessão com o serviço remoto.
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser ;
B. Criar uma ligação de serviço remota usando autenticação anónima
O exemplo seguinte cria uma ligação para o serviço //Adventure-Works.com/services/AccountsPayable. O Service Broker utiliza o certificado detido pelo APUser principal da base de dados para trocar a chave de encriptação da sessão com o serviço remoto. O corretor não autentica o serviço remoto. Na base de dados que aloja o serviço remoto, as mensagens são entregues como utilizador convidado .
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser, ANONYMOUS=ON ;
Ver também
ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)