SQL Server EXECUTE AS异常

DOMZE

我有一个用户,我使用以下方法授予了对凭据的授予访问权限:

GRANT ALTER ANY CREDENTIAL TO userA

当我用该用户登录时,以下内容将返回我的数据

SELECT * FROM sys.credentials

我可以看到我具有SERVER级别的权限。这可以通过执行来验证

SELECT * FROM fn_my_permissions (NULL, 'SERVER')

使用另一个用户,例如userB,我通过执行

GRANT IMPERSONATE ON USER::userA TO userB

在存储过程中,以用户B身份登录时,将上下文切换到用户A

EXECUTE AS user = 'userA'
SELECT user_name() AS ContextUserName
SELECT * FROM fn_my_permissions (NULL, 'SERVER')
SELECT * FROM sys.credentials

SELECT * FROM fn_my_permissions (NULL, 'SERVER')不会返回我“ ALTER ANY CREDENTIAL”权限。
SELECT * FROM sys.credentials没有给我任何价值。
SELECT user_name()返回给我userA但是。

我有什么想念的吗?为什么我不能像userA那样从sys.credentials中获取数据?

谢谢!

Mathias Fogel

问题可能在于,这EXECUTE AS仅是向UserB授予您正在执行的数据库上的UserA的权限,而不是授予服务器上给定的权限。这就是为什么SELECT user_name()显示UserA,但SELECT * FROM fn_my_permissions (NULL, 'SERVER')不显示UserA的权限,而是UserB的权限的原因。

Microsoft文件:

“ EXECUTE AS(Transact-SQL) ”模拟的范围仅限于当前数据库。到数据库用户的上下文切换不会继承该用户的服务器级权限。

sys.fn_my_permissionsSELECT * FROM fn_my_permissions(NULL, 'SERVER');返回服务器上调用者的有效权限列表。”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server异常处理

来自分类Dev

SQL Server查询异常行为

来自分类Dev

SQL Server异常消息格式

来自分类Dev

异常的SQL Server查询结果

来自分类Dev

SQL Server瞬态异常号

来自分类Dev

SQL Server 2012登录异常

来自分类Dev

与SQL Server的连接引发异常

来自分类Dev

SQL SERVER替换功能工作异常

来自分类Dev

在SQL Server中使用Isnumeric捕获异常

来自分类Dev

SQL SERVER替换功能工作异常

来自分类Dev

SQL Server Profiler 中显示的静默异常

来自分类Dev

从SQL Server中的EXECUTE语句获取参数?

来自分类Dev

在 SQL Server 中使用 EXECUTE() SELECT INTO

来自分类Dev

SQL Server 2012中的内存不足异常

来自分类Dev

SQL Server异常:语句未返回结果集

来自分类Dev

SQL Server''。'附近的语法不正确的异常。'?

来自分类Dev

连接到脱机SQL Server时不会引发异常

来自分类Dev

SQL Server和C#存储过程&除以零异常

来自分类Dev

从C#对SQL Server执行插入查询时发生异常

来自分类Dev

该语句不返回结果集SQL Server异常

来自分类Dev

SQL Server集成服务-内存不足异常

来自分类Dev

运行 SQL Server 查询时出现 C# 异常错误

来自分类Dev

查询在SQL Server中引发异常,但在MySQL中不引发异常(外部参考错误)

来自分类Dev

SQL Server:存储过程的EXECUTE AS子句未授予sysadmin权限

来自分类Dev

Execute a SQL Server stored procedure from MS Access

来自分类Dev

授予自身EXECUTE权限的SQL Server存储过程

来自分类Dev

在表值函数SQL Server中使用Execute()方法

来自分类Dev

SQL Server:存储过程的EXECUTE AS子句未授予sysadmin权限

来自分类Dev

Windows Server 2012上Windows身份验证的SQL Server JDBC连接异常

Related 相关文章

热门标签

归档