通常,应用程序用户不应具有DDL权限。 我正在寻找原因,但找不到任何东西。
我可以理解这种设计可能存在锁定问题,但想要阅读相同的更多细节。
有人可以向我解释或指出任何有关此问题的文章吗?
非常感谢!!
答案 0 :(得分:4)
通常,应用程序用户不应具有DDL权限。我正在寻找原因,但找不到任何东西。
创建/更改表不是即时完成的。您只创建一次,并且只通过应用程序操作数据(使用PL / SQL存储对象)。数据库设计不应经常更改,即应用程序用户不应添加/更改/删除数据库对象。它应该由数据库用户(具有所需的权限/角色)而不是应用程序用户完成。
应用程序应该只执行 DML 而不是 DDL 。应用程序用户应该只能操作数据,不应该操纵存储数据的对象本身。
想象一个拥有多个用户的数据库,每个用户在没有其他用户知情/同意的情况下进行DDL操作。其他用户将如何工作?基于数据库设计的功能如何?基于数据库设计的应用程序逻辑怎么样?每个生产系统都有一个用于此类更改的发布日历,并且它不应该经常进行。
答案 1 :(得分:4)
"永远不要在商业逻辑中使用DDL" - 这是Oracle的经验法则。
您通常不希望在营业时间发生这种情况。