【发布时间】:2015-01-12 11:56:20
【问题描述】:
我有一个 SQL 用户“ABC”,拥有系统管理员权限并可以访问特定服务器的所有数据库,比如数据库 A 和数据库 B。我的应用程序使用只能访问一个数据库 A 的用户。 我创建了一个存储过程来在数据库 B 的表中插入记录。所以我使用 EXECUTE AS 子句与用户 ABC 执行存储过程,但经过测试我发现如果我的应用程序用户没有完全相同的服务器角色使用ABC有,它不起作用。 当我让我的其他用户成为系统管理员时,它不会出错并且效果很好。 如果两个用户都需要具有相同的角色,那么这个 EXECUTE AS 子句有什么用?还是我错过了什么?
【问题讨论】:
-
发布你的 sql 代码。如果没有代码,就不可能知道你的程序出了什么问题。也许是权限问题,但也许不是。
-
Paolo,问题不在于程序代码,问题与权限有关,我显然是在询问权限问题。
标签: sql-server stored-procedures permissions execute sysadmin