tsql - TSQL - 存储过程 - 以所有者身份执行 - Openquery
问题描述
我正在使用 SQL Server 2008。
有一个程序...
CREATE PROCEDURE xxx WITH EXECUTE AS OWNER
AS
BEGIN
SET NOCOUNT ON;
TRUNCATE TABLE ttt;
INSERT INTO ttt
(
field
)
SELECT
order_number
FROM
OPENQUERY([sss], 'SELECT ...')
END
...所有者用户可以毫无问题地执行该过程。
我的期望是,如果我授予其他用户执行访问权限,则其他用户也应该能够运行此过程。
但是使用另一个帐户收到错误:' Access to the remote server is denied because no login-mapping exists.
'
实际上,我尽量避免让“其他用户”完全访问链接服务器。
解决方案
用户必须映射到 db_owner 组
推荐阅读
- ios - swift 5中每个视图控制器中的注销按钮
- linux-kernel - 我们可以使用内核空间的文件描述符吗?
- c# - 如何修复不一致的可访问性错误
- reactjs - 当我使用浏览器返回问题时,Reactjs 组件调用构造函数
- r - R中正则表达式中双方括号和单方括号的区别?
- plivo - 如何验证 X-PLIVO-SIGNATURE
- mysql - 在检查其他表时更新表
- visual-studio-code - 是否可以在 package.json 中格式化 VS Code 属性标题?
- vb.net - 错误 System.InvalidOperationException' 在 vb 上的 System.Data.dll 中发生
- javascript - 如果没有结果,如何停止 keyup ajax 调用?