TSQL-存储过程-以所有者身份执行-Openquery

时间:2020-09-17 10:34:49

标签: tsql stored-procedures 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.'

实际上,我尝试避免授予“其他用户”对链接服务器的完全访问权限。

1 个答案:

答案 0 :(得分:1)

用户必须映射到db_owner组