SqlServer 远程执行存储过程或其他非DML语句
发布时间:2020-12-12 12:59:35 所属栏目:MsSql教程 来源:网络整理
导读:原本服务器有1个链接服务器,这是建立发布订阅时创建的,创建命令导出如下(都为同一域中的计算机): EXEC master.dbo.sp_addlinkedserver @server = N'LinkServerName',@srvproduct=N'SQL Server' GOEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'L
原本服务器有1个链接服务器,这是建立发布订阅时创建的,创建命令导出如下(都为同一域中的计算机): EXEC master.dbo.sp_addlinkedserver @server = N'LinkServerName',@srvproduct=N'SQL Server' GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LinkServerName',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL GO 该链接服务器可以进行远程查询,但是调用远程存储过程执行命令时出错: EXEC [LinkServerName].[DB].DBO.SP_EXECUTESQL N'GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES ON [AAAAA] TO [username]' 消息 18483,级别 14,状态 1,第 1 行 由于没有在服务器 'LinkServerName' 上将 '' 定义为远程登录名,所以无法连接到该服务器。请确保指定的登录名正确无误。。 查看服务器信息: SELECT name,product,provider,data_source,is_linked,is_remote_proc_transaction_promotion_enabled FROM sys.servers ?@srvproduct=N'SQL Server' ?无法远程执行,现在换一种接口类型。 ? EXEC master.dbo.sp_droplinkedsrvlogin [LinkServerName],Null EXEC master.dbo.sp_dropserver [LinkServerName] GO EXEC master.dbo.sp_addlinkedserver @server = N'LinkServerName',@srvproduct=N'',@provider='SQLNCLI',@datasrc='ServerName or IP' GO EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LinkServerName',@rmtpassword=NULL GO 再执行远程存储过程,错误如下: 消息 7411,级别 16,状态 1,第 1 行 开启 RPC 远程过程调用: EXEC master.dbo.sp_serveroption @server=N'LinkServerName',@optname=N'rpc',@optvalue=N'true' EXEC master.dbo.sp_serveroption @server=N'LinkServerName',@optname=N'rpc out',@optvalue=N'true' 不可在界面上启用RPC,否则报错: 不允许对系统目录进行即席更新。(Microsoft SQL Server , 错误:259) 好了,现在再执行: EXEC [LinkServerName].[DB].DBO.SP_EXECUTESQL N'GRANT SELECT,REFERENCES ON [AAAAA] TO [username]' 命令执行成功! 附:几种远程查询 SELECT * FROM [LinkServerName].[DB].dbo.AAAAA SELECT * FROM OPENQUERY([LinkServerName],'SELECT * FROM DB.dbo.AAAAA') SELECT * FROM OPENDATASOURCE('SQLNCLI','Data Source=;Integrated Security=SSPI').DB.dbo.AAAAA SELECT * FROM OPENROWSET('SQLNCLI','Server=ServerName;Trusted_Connection=yes;','SELECT * FROM DB.dbo.AAAAA') AS a; 参考:sp_addlinkedserver?、sp_serveroption、sys.servers?? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |