Đôi khi bạn có thể cần bật tùy chọn “RPC Out” trên một máy chủ được liên kết. Tùy chọn này cho phép RPC đến máy chủ nhất định.
RPC là viết tắt của Từ xa Thủ tục Gọi. RPC về cơ bản là một thủ tục được lưu trữ đang được chạy từ xa từ Máy chủ 1 đến Máy chủ 2 được liên kết.
Nếu bạn không bật tính năng này và bạn cố gắng thực thi một quy trình được lưu trữ trên máy chủ được liên kết, bạn có thể sẽ gặp lỗi Msg 7411 cho bạn biết rằng máy chủ không được định cấu hình cho RPC.
Dù sao, bạn có thể bật / tắt tùy chọn này bằng cách sử dụng SQL Server Management Studio (SSMS) hoặc bằng T-SQL.
Trong SSMS, bạn có thể đi tới Linked Server Properties
bằng cách nhấp chuột phải vào tên của máy chủ được liên kết. Từ đó, nhấp vào Server Options
, nơi bạn sẽ thấy RPC Out
tùy chọn được đặt thành True
hoặc False
.
Trong T-SQL, bạn có thể sử dụng sp_serveroption
hệ thống lưu trữ thủ tục để làm điều tương tự.
Ví dụ
Đây là một ví dụ về việc sử dụng sp_serveroption
để bật “RPC Out” trên một máy chủ được liên kết.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';
Điều này cho phép tùy chọn RPC Out cho máy chủ được liên kết có tên MyLinkedServer.
Một cách khác để thực hiện thủ tục này là đặt tên rõ ràng cho các tên tham số:
EXEC sp_serveroption
@server = 'MyLinkedServer',
@optname = 'rpc out',
@optvalue = 'on';
Vì vậy, bạn có thể thấy rằng đối số đầu tiên (@server
) là tên của máy chủ được liên kết, thứ hai (@optname
) chỉ định tên tùy chọn và đối số thứ ba (@optvalue
) chỉ định giá trị của nó.
Thats tất cả để có nó. RPC Out hiện đã được bật trên máy chủ được liên kết.
Kiểm tra Cài đặt RPC Out
Chúng tôi có thể kiểm tra cài đặt RPC out của mình bằng đoạn mã sau.
SELECT
is_rpc_out_enabled
FROM sys.servers
WHERE name = 'MyLinkedServer';
Kết quả:
+----------------------+ | is_rpc_out_enabled | |----------------------| | 1 | +----------------------+
Giá trị 1
nghĩa là RPC Out đã được bật. Giá trị 0
có nghĩa là nó đã bị vô hiệu hóa.
Tắt RPC Out
Bạn có thể sử dụng false
thay vì true
để vô hiệu hóa nó.
EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'false';
Việc thực thi mã đó sẽ vô hiệu hóa RPC Out trên MyLinkedServer.
Ngoài ra, bạn có thể sử dụng on
và off
thay vì true
và false
để chuyển đổi tùy chọn này.