Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So aktivieren Sie RPC Out mit T-SQL

Möglicherweise müssen Sie gelegentlich die Option „RPC Out“ auf einem Verbindungsserver aktivieren. Diese Option aktiviert RPC zum angegebenen Server.

RPC steht für Remote Procedure Calls. RPC ist im Grunde eine gespeicherte Prozedur, die remote von Server 1 zu Verbindungsserver 2 ausgeführt wird.

Wenn Sie dies nicht aktivieren und versuchen, eine gespeicherte Prozedur auf dem Verbindungsserver auszuführen, erhalten Sie wahrscheinlich die Fehlermeldung 7411, die Ihnen mitteilt, dass der Server nicht für RPC konfiguriert ist.

Wie auch immer, Sie können diese Option entweder mit SQL Server Management Studio (SSMS) oder mit T-SQL aktivieren/deaktivieren.

In SSMS können Sie zu den Linked Server Properties gehen indem Sie mit der rechten Maustaste auf den Namen des verknüpften Servers klicken. Klicken Sie dort auf Server Options , wo Sie RPC Out sehen Option entweder auf True gesetzt oder False .

In T-SQL können Sie die sp_serveroption verwenden systemgespeicherte Prozedur, um dasselbe zu tun.

Beispiel

Hier ist ein Beispiel für die Verwendung von sp_serveroption um „RPC Out“ auf einem Verbindungsserver zu aktivieren.

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

Dadurch wird die RPC-Out-Option für den Verbindungsserver namens MyLinkedServer aktiviert.

Eine andere Möglichkeit, dieses Verfahren auszuführen, besteht darin, die Parameternamen explizit zu benennen:

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

Sie können also sehen, dass das erste Argument (@server ) ist der Name des Verbindungsservers, der zweite (@optname ) gibt den Optionsnamen und das dritte Argument (@optvalue ) gibt seinen Wert an.

Das ist alles dazu. RPC Out ist jetzt auf dem Verbindungsserver aktiviert.

Überprüfen Sie die RPC-Out-Einstellung

Wir können unsere RPC-Out-Einstellung mit dem folgenden Code überprüfen.

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

Ergebnis:

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

Ein Wert von 1 bedeutet, dass RPC Out aktiviert ist. Ein Wert von 0 bedeutet, dass es deaktiviert ist.

RPC-Ausgang deaktivieren

Sie können false verwenden statt true um es zu deaktivieren.

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

Durch Ausführen dieses Codes wird RPC Out auf MyLinkedServer deaktiviert.

Alternativ können Sie on verwenden und off statt true und false um diese Option umzuschalten.