sql >> Databáze >  >> RDS >> Sqlserver

Jak povolit výstup RPC pomocí T-SQL

Občas může být potřeba povolit možnost „RPC Out“ na propojeném serveru. Tato volba povolí RPC danému serveru.

RPC je zkratka pro Remote Procedure Calls. RPC je v podstatě uložená procedura spouštěná vzdáleně ze serveru 1 na propojený server 2.

Pokud toto nepovolíte a pokusíte se provést uloženou proceduru na propojeném serveru, pravděpodobně se zobrazí chybová zpráva 7411, která vám říká, že server není nakonfigurován pro RPC.

Tuto možnost můžete povolit/zakázat buď pomocí SQL Server Management Studio (SSMS) nebo pomocí T-SQL.

V SSMS můžete přejít do Linked Server Properties kliknutím pravým tlačítkem myši na název propojeného serveru. Odtud klikněte na Server Options , kde uvidíte RPC Out možnost nastavena buď na True nebo False .

V T-SQL můžete použít sp_serveroption systémová uložená procedura k provedení stejné věci.

Příklad

Zde je příklad použití sp_serveroption pro povolení „RPC Out“ na propojeném serveru.

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

To umožňuje volbu RPC Out pro propojený server s názvem MyLinkedServer.

Dalším způsobem, jak provést tento postup, je explicitně pojmenovat názvy parametrů:

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

Takže vidíte, že první argument (@server ) je název propojeného serveru, druhý (@optname ) určuje název možnosti a třetí argument (@optvalue ) určuje jeho hodnotu.

To je vše. Výstup RPC je nyní na propojeném serveru povolen.

Zkontrolujte nastavení RPC Out

Nastavení RPC out můžeme zkontrolovat pomocí následujícího kódu.

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

Výsledek:

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

Hodnota 1 znamená, že je povolen výstup RPC. Hodnota 0 znamená, že je zakázáno.

Zakázání výstupu RPC

Můžete použít false místo true jej zakázat.

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

Spuštění tohoto kódu zakáže RPC Out na MyLinkedServer.

Alternativně můžete použít on a off místo true a false pro přepnutí této možnosti.


  1. Vytvoření a odstranění databáze PostgreSQL na Ubuntu 16.04

  2. Volání uloženého POSTUPU v Toad

  3. Poznámky k indexům PostgreSQL B-stromu

  4. CTE získat všechny děti (potomky) rodiče