gpt4 book ai didi

sql-server - 授予对 INFORMATION_SCHEMA 的访问权限

转载 作者:行者123 更新时间:2023-12-04 01:51:07 26 4
gpt4 key购买 nike

我们有一个实用程序,它通过反射(reflect)某些 View 和存储过程的定义来执行一些 SQL 魔术。为此,代码需要访问 INFORMATION_SCHEMA.ROUTINES、INFORMATION_SCHEMA.VIEWS 等表中的各个字段。

所以我们写了一个游标应用

GRANT VIEW DEFINITION on ' + @Name + ' TO tenant'

其中tenant 是代码在其下执行的角色,@Name 是proc 名称的游标变量。这行得通。

但随后有人将不可避免地删除/重新创建一个 proc,从而删除对该 proc 定义的访问,这会导致魔法实用程序失败。

那么最好的说法是“所有以“租户”角色执行的代码对所有 INFORMATION_SCHEMA 表都有完全读取权限?”

编辑:

我尝试 GRANT VIEW ANY DEFINITION TO tenant 并引发下一个错误:

Cannot find the login 'tenant', because it does not exist or you do not have permission.

这是因为租户是角色而不是用户,还是我真的没有权限?我以 sa 身份登录。

最佳答案

我不想回答我自己的问题,但这似乎可行:

GRANT VIEW DEFINITION TO tenant

这适用于数据库范围。

GRANT VIEW ANY DEFINITION TO tenant

应该在服务器范围内工作,但我得到:'找不到登录'租户',因为它不存在或您没有权限。'是因为“租户”是角色而不是用户吗?

数据库范围方法可以满足我的需要,但没有将我自己的答案标记为正确,有人可以解释为什么服务器范围版本不起作用吗?而且,这会带来任何真正的安全威胁吗?

关于sql-server - 授予对 INFORMATION_SCHEMA 的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3856619/

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