当你DROP USER而没有指定CASCADE时,架构对象会发生什么?

时间:2015-10-23 14:11:03

标签: sql oracle security privileges

DROP USER州的Oracle documentation: " Oracle数据库不会删除模式包含对象的用户,除非您指定CASCADE"。

我的理解是所有模式都必须具有关联的用户帐户(尽管可以通过限制CREATE SESSION命令来限制该帐户的使用等)。但是当您使用DROP USER命令时,以前拥有的对象实际发生了什么?如果用户不再存在...那么哪个帐户拥有这些对象?

对于上下文,我是开发人员而非DBA,并且我的数据库没有DCL权限,因此我无法自行测试。我正在进行迁移项目,其中可能需要此命令,但我希望在将请求传递给我的Enterprise DBA团队之前更好地理解其含义。

1 个答案:

答案 0 :(得分:3)

如果您尝试删除用户(例如THE_USER)而未指定CASCADE,则会出现以下错误:

ORA-01922: CASCADE must be specified to drop 'THE_USER'

CASCADE选项与DROP USER语句一起使用,或在删除用户之前手动删除所有用户对象。

HTH