首页 > 解决方案 > 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.'

实际上,我尽量避免让“其他用户”完全访问链接服务器。

标签: tsqlstored-proceduresopenquery

解决方案


用户必须映射到 db_owner 组


推荐阅读