我们的应用程序将数据结构化为两个模式,我们称之为Main和Archive。这是必需的,因为Main模式中的某些表被存档到相应的Archive模式表中。
Main模式更新使用Liquibase servlet运行,当应用程序首次启动时由Main用户运行。
目前,所有归档更新都作为单独的DBA任务运行。这有点不方便,因为我们必须为像在archive schema中创建新表并授予Main用户正确权限这样简单的事情而联系DBA,而Main用户是所有应用程序数据的绝对所有者。
我们正在考虑使Main用户能够在Archive模式中创建/修改对象,并将其嵌入到我们的Liquibase脚本中。
Main用户已被授予APP_ADMIN_ROLE,具备CREATE、ALTER、COMMENT ON等任何表的操作权限,因此它可以在Archive模式中创建和删除表。
然而,我们遇到了一个问题,即尽管Main用户可以创建Archive表,但它无法向自己授予该表的CRUD操作权限。
有没有办法实现这个?
提前感谢。
Main模式更新使用Liquibase servlet运行,当应用程序首次启动时由Main用户运行。
目前,所有归档更新都作为单独的DBA任务运行。这有点不方便,因为我们必须为像在archive schema中创建新表并授予Main用户正确权限这样简单的事情而联系DBA,而Main用户是所有应用程序数据的绝对所有者。
我们正在考虑使Main用户能够在Archive模式中创建/修改对象,并将其嵌入到我们的Liquibase脚本中。
Main用户已被授予APP_ADMIN_ROLE,具备CREATE、ALTER、COMMENT ON等任何表的操作权限,因此它可以在Archive模式中创建和删除表。
然而,我们遇到了一个问题,即尽管Main用户可以创建Archive表,但它无法向自己授予该表的CRUD操作权限。
有没有办法实现这个?
GRANT DBA TO MAIN
不是一个选项。提前感谢。
ANY TABLE
的CRUD操作。在您的情况下,您可以将其授予主用户或角色。例如:grant select any table, update any table, delete any table, insert any table to APP_ADMIN_ROLE;
- kfinityGRANT INSERT,UPDATE,DELETE,SELECT ANY TABLE TO main_usr;
。请将您的评论发布为答案,以便我可以接受它。 - Julian