我有两个用户 A 和 B。我想授予 B 创建、删除等 A 架构中所有表的权限。据我所知,我可以授予 B 对所有模式的完全访问权限,而不是特定模式。这样对吗?
Lei*_*fel 11
您是正确的,无法授予用户对整个架构的创建/删除/等权限。我建议您查看代理身份验证。这基本上涉及更改用户 A 以允许用户 B 代理为 A:
ALTER USER A GRANT CONNECT THROUGH B;
Run Code Online (Sandbox Code Playgroud)
然后连接使用了用户B的认证,但是得到了用户A的权限。
connect B[A]/Password@Database
Run Code Online (Sandbox Code Playgroud)
这个问题在我这里更具体的问题中有所涉及。
关于角色的注意事项:角色非常适合将对象权限授予另一个用户,因为权限与特定对象相关联。虽然角色可以授予System Privileges,但它们适用于用户自己的架构或整个数据库,因此不能应用于其他架构。例如,可以授予用户 B 以CREATE TABLE
允许它在自己的模式中创建表或CREATE ANY TABLE
允许它在任何模式中创建表的权限。这些权限可以直接授予或通过角色授予,但前者不允许在 A 架构中创建权限。后者会,但也允许在包括 sys 在内的任何模式中创建特权,这将是一个安全问题。
归档时间: |
|
查看次数: |
38344 次 |
最近记录: |