我使用 sq_configure 使用 OLE 自动化进程从 SQL 服务器发送 http 请求,例如
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
然后我构建了一个名为 HTTP_Request 的存储过程,如下所示
CREATE procedure HTTP_Request( @sUrl varchar(200))
As
Declare
@obj int
,@hr int
,@msg varchar(255)
exec @hr = sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT
if @hr <> 0 begin Raiserror('sp_OACreate MSXML2.ServerXMLHttp.3.0
failed', 16,1) return end
exec @hr = sp_OAMethod @obj, 'open', NULL, 'POST', @sUrl, false
if @hr <>0 begin set @msg = 'sp_OAMethod Open failed' goto eh end
exec @hr = sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type',
'application/x-www-form-urlencoded'
if @hr <>0 begin set @msg = 'sp_OAMethod setRequestHeader failed' goto
eh end
exec @hr = sp_OAMethod @obj, send, NULL, ''
if @hr <>0 begin set @msg = 'sp_OAMethod Send failed' goto eh end
exec @hr = sp_OADestroy @obj
return
eh:
exec @hr = sp_OADestroy @obj
Raiserror(@msg, 16, 1)
return
GO
我将存储过程称为
USE [master]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[HTTP_Request]
@sUrl = N'url'
SELECT 'Return Value' = @return_value
GO
它在我的本地 sql 服务器中运行良好,我可以从数据库发送 http 请求。
现在我的问题是我可以访问远程 sql 服务器,我想在其中使用与我在本地系统中所做的相同的事情,但是当我尝试执行 sp_configure 时我不能。我得到了错误
找不到存储过程“sp_configure”
任何想法?这是访问限制的问题吗?