我正在试验oracle的代理用户特性。
我的示例: user_a只有对象特权,user_b只有系统权限。允许user_b以user_a的身份登录,因此DDL和DML是分开的。
docs说,user_b作为user_a只具有user_a特权。那就意味着他失去了自己的权利?
CONNECT THROUGH WITH ROLE子句有哪些不同?因为只有在user_a已经获得角色的情况下,才能选择角色。
我知道的唯一解决方案是使用ANY子句的系统特权(而且不需要代理),但是user_b可以在所有其他用户中更改对象,但我不想这样做。
这个问题怎么能解决呢?
发布于 2021-02-11 09:22:09
User_B将是对象的所有者,user_A是这些对象的用户,这是一个很好的分离,并保证了应用程序不能更改对象。您不希望user_A能够更改任何结构。
通常,您希望应用程序管理器能够以user_B的身份进行新版本或类似的更改。如果是这样的话,您希望您的管理员能够通过他们的个人帐户连接到user_B进行更改。由于user_B是对象的所有者,user_B也有权使用它们。
因此,解决方案是使用应用程序管理器用户使用代理用户执行ddl。这比将dba特权或任何特权授予应用程序管理器要好得多。
https://dba.stackexchange.com/questions/78679
复制相似问题