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.