Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come abilitare l'uscita RPC usando T-SQL

Occasionalmente potrebbe essere necessario abilitare l'opzione "RPC Out" su un server collegato. Questa opzione abilita RPC al server specificato.

RPC sta per Remote Procedure Calls. RPC è fondamentalmente una procedura memorizzata eseguita in remoto dal Server 1 al Server 2 collegato.

Se non lo abiliti e provi ad eseguire una procedura memorizzata sul server collegato, probabilmente visualizzerai un messaggio di errore 7411 che ti dice che il server non è configurato per RPC.

Ad ogni modo, puoi abilitare/disabilitare questa opzione usando SQL Server Management Studio (SSMS) o con T-SQL.

In SSMS, puoi andare a Linked Server Properties facendo clic con il pulsante destro del mouse sul nome del server collegato. Da lì, fai clic su Server Options , dove vedrai l'RPC Out opzione impostata su True o False .

In T-SQL puoi usare sp_serveroption stored procedure di sistema per fare la stessa cosa.

Esempio

Ecco un esempio di utilizzo di sp_serveroption per abilitare "RPC Out" su un server collegato.

EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';

Ciò abilita l'opzione RPC Out per il server collegato chiamato MyLinkedServer.

Un altro modo per eseguire questa procedura è nominare esplicitamente i nomi dei parametri:

EXEC sp_serveroption 
    @server = 'MyLinkedServer', 
    @optname = 'rpc out', 
    @optvalue = 'on';

Quindi puoi vedere che il primo argomento (@server ) è il nome del server collegato, il secondo (@optname ) specifica il nome dell'opzione e il terzo argomento (@optvalue ) ne specifica il valore.

Questo è tutto ciò che c'è da fare. L'uscita RPC è ora abilitata sul server collegato.

Controlla l'impostazione di uscita RPC

Possiamo controllare la nostra impostazione RPC out con il seguente codice.

SELECT 
    is_rpc_out_enabled
FROM sys.servers
WHERE name = 'MyLinkedServer';

Risultato:

+----------------------+
| is_rpc_out_enabled   |
|----------------------|
| 1                    |
+----------------------+

Un valore di 1 significa che l'uscita RPC è abilitata. Un valore di 0 significa che è disabilitato.

Disabilitazione uscita RPC

Puoi usare false invece di true per disabilitarlo.

EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'false';

L'esecuzione di quel codice disabiliterà RPC Out su MyLinkedServer.

In alternativa puoi usare on e off invece di true e false per attivare questa opzione.