Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment activer RPC Out à l'aide de T-SQL

Vous devrez peut-être parfois activer l'option "RPC Out" sur un serveur lié. Cette option active RPC sur le serveur donné.

RPC signifie Remote Procedure Calls. RPC est essentiellement une procédure stockée exécutée à distance du serveur 1 au serveur lié 2.

Si vous ne l'activez pas et que vous essayez d'exécuter une procédure stockée sur le serveur lié, vous obtiendrez probablement le message d'erreur 7411 vous indiquant que le serveur n'est pas configuré pour RPC.

Quoi qu'il en soit, vous pouvez activer/désactiver cette option en utilisant SQL Server Management Studio (SSMS) ou avec T-SQL.

Dans SSMS, vous pouvez accéder aux Linked Server Properties en faisant un clic droit sur le nom du serveur lié. De là, cliquez sur Server Options , où vous verrez le RPC Out option définie sur True ou False .

Dans T-SQL, vous pouvez utiliser le sp_serveroption procédure stockée du système pour faire la même chose.

Exemple

Voici un exemple d'utilisation de sp_serveroption pour activer "RPC Out" sur un serveur lié.

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

Cela active l'option RPC Out pour le serveur lié appelé MyLinkedServer.

Une autre façon d'exécuter cette procédure consiste à nommer explicitement les noms des paramètres :

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

Vous pouvez donc voir que le premier argument (@server ) est le nom du serveur lié, le second (@optname ) spécifie le nom de l'option et le troisième argument (@optvalue ) spécifie sa valeur.

C'est tout ce qu'on peut en dire. RPC Out est maintenant activé sur le serveur lié.

Vérifiez le paramètre de sortie RPC

Nous pouvons vérifier notre paramètre de sortie RPC avec le code suivant.

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

Résultat :

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

Une valeur de 1 signifie que RPC Out est activé. Une valeur de 0 signifie qu'il est désactivé.

Désactiver la sortie RPC

Vous pouvez utiliser false au lieu de true pour le désactiver.

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

L'exécution de ce code désactivera RPC Out sur MyLinkedServer.

Vous pouvez également utiliser on et off au lieu de true et false pour activer cette option.