因此,我们编写了一个游标来应用这些表的信息。
GRANT VIEW DEFINITION on ' + @Name + ' TO tenant'
租户是代码执行角色,@Name 是 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 身份登录。