Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como habilitar RPC Out usando T-SQL


Ocasionalmente, você pode precisar habilitar a opção “RPC Out” em um servidor vinculado. Esta opção habilita o RPC para o servidor fornecido.

RPC significa Chamadas de Procedimento Remoto. RPC é basicamente um procedimento armazenado sendo executado remotamente do Servidor 1 para o Servidor 2 vinculado.

Se você não habilitar isso e tentar executar um procedimento armazenado no servidor vinculado, provavelmente receberá o erro Msg 7411 informando que o servidor não está configurado para RPC.

De qualquer forma, você pode habilitar/desabilitar esta opção usando SQL Server Management Studio (SSMS) ou com T-SQL.

No SSMS, você pode acessar as Linked Server Properties clicando com o botão direito do mouse no nome do servidor vinculado. A partir daí, clique em Server Options , onde você verá o RPC Out opção definida como True ou False .

Em T-SQL você pode usar a sp_serveroption procedimento armazenado do sistema para fazer a mesma coisa.

Exemplo


Aqui está um exemplo de uso de sp_serveroption para habilitar “RPC Out” em um servidor vinculado.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';

Isso habilita a opção RPC Out para o servidor vinculado chamado MyLinkedServer.

Outra maneira de executar este procedimento é nomear explicitamente os nomes dos parâmetros:
EXEC sp_serveroption 
    @server = 'MyLinkedServer', 
    @optname = 'rpc out', 
    @optvalue = 'on';

Então você pode ver que o primeiro argumento (@server ) é o nome do servidor vinculado, o segundo (@optname ) especifica o nome da opção e o terceiro argumento (@optvalue ) especifica seu valor.

Isso é tudo o que há para isso. RPC Out agora está habilitado no servidor vinculado.

Verifique a configuração de saída RPC


Podemos verificar nossa configuração de saída de RPC com o código a seguir.
SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'MyLinkedServer';

Resultado:
+----------------------+
| is_rpc_out_enabled   |
|----------------------|
| 1                    |
+----------------------+

Um valor de 1 significa que a saída RPC está habilitada. Um valor de 0 significa que está desabilitado.

Desativando RPC Out


Você pode usar false em vez de true para desativá-lo.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'false';

A execução desse código desabilitará o RPC Out em MyLinkedServer.

Você também pode usar on e off em vez de true e false para alternar esta opção.