gpt4 book ai didi

sql - 澄清为什么 EXECUTE AS USER/LOGIN 没有返回预期结果?

转载 作者:行者123 更新时间:2023-12-02 07:10:43 25 4
gpt4 key购买 nike

我正在对数据库运行以下查询:

execute as user = 'domain\username'
select * from fn_my_permissions(null, 'DATABASE')
order by subentity_name, permission_name
revert;

但是抛出以下错误:

无法作为数据库主体执行,因为主体“dev\spadmin”不存在,无法模拟此类主体,或者您没有权限。

该用户是数据库的 dbo,当我在 Management Studio 中打开属性时,我可以看到它与该登录名关联。另一方面,运行 EXECUTE AS LOGIN = 'domain\username' 确实会返回结果。如果我显式运行 EXECUTE AS USER = 'dbo',我就会得到结果。我还有一个不同的数据库,其中相同的场景返回 EXECUTE AS USEREXECUTE AS LOGIN 的结果。

在另一个使用不同用户的场景中,我运行了 EXECUTE AS LOGIN = 'domain\username' 并且没有得到结果,但我确实通过 EXECUTE AS USER = 得到了结果'域\用户名'

这些场景中的两个用户都与数据库 db_owner 成员的登录名相关联。

谁能告诉我为什么这些查询没有返回我期望的结果?如果我遗漏了任何重要信息,请告诉我。谢谢!

最佳答案

问题是,由于登录 domain\username 是数据库的 dbo,因此意味着该数据库中相应用户的名称是 dbo不是 域\用户名

关于sql - 澄清为什么 EXECUTE AS USER/LOGIN 没有返回预期结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com