SQL EXECUTE AS子句

时间:2015-01-12 11:56:21

标签: sql-server stored-procedures permissions execute sysadmin

我有一个SQL用户'ABC',具有sysadmin权限并且可以访问特定服务器的所有数据库,比如数据库A和数据库B.我的应用程序使用只能访问一个数据库A的用户。 我已经创建了一个存储过程来在数据库B的表中插入记录。所以我使用EXECUTE AS子句来执行用户ABC的存储过程,但经过测试后我发现如果我的应用程序用户没有完全相同的服务器角色使用ABC有,它不起作用。 当我创建我的其他用户sysadmin时,它没有错误并且工作得很好。 如果两个用户都需要具有相同的角色,那么这个EXECUTE AS子句的用途是什么?或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

我认为你的问题已在这里得到解答:SQL Server Execute Impersonation

以用户身份执行=' ABC' - 模仿的范围仅限于当前数据库。

vs

执行登录=' ABC' - 模仿的范围在服务器级别。