T-SQL问题: 我的用户不是管理员,但我想使用我当前用户的sa用户和密码来运行查询。
说明:
我的当前用户
USER:[shashank] - 这不是管理员用户
我的管理员
USER:sa
通行证:12345
我以[shashank]
身份登录,想要在不登录[sa]
的情况下运行一些管理员查询。
EXECUTE AS
对我来说似乎不起作用,因为它需要sysadmin
并且不需要密码。
提前致谢。
答案 0 :(得分:1)
以下是两个选项:
将EXECUTE AS
封装在只有您的用户具有EXECUTE权限的存储过程中。
CREATE PROCEDURE dbo.DoSomething
AS
SET NOCOUNT ON;
EXECUTE AS LOGIN = 'sa';
-- do stuff
REVERT;
通过签署存储过程来管理提升的权限,同样,只有您的用户具有EXECUTE
权限,并带有证书。看看这个答案听起来像一个几乎相同的场景(答案不使用EXECUTE AS
):
SQL Server: EXECUTE AS clause of stored procedure not granting sysadmin permissions
签署存储过程路由的三个好处是:
IMPERSONATE
权限