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组

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...