当您 DROP USER 但未指定 CASCADE 时,模式对象会发生什么情况?
What happens to schema objects when you DROP USER but don't specify CASCADE?
DROP USER
的 Oracle documentation 指出:
"Oracle Database does not drop users whose schemas contain objects unless you specify CASCADE
"。
我的理解是所有模式都必须有一个关联的用户帐户(尽管可以通过限制 CREATE SESSION
命令等来限制该帐户的使用)。但是,当您使用 DROP USER
命令时,以前拥有的对象实际上发生了什么?如果用户不再存在...那么哪个帐户拥有这些对象?
对于 Context,我是一名开发人员而不是 DBA,并且没有对我的数据库的 DCL 权限,因此我无法自行测试。我正在执行一个可能需要此命令的迁移项目,但我想在将请求传递给我的企业 DBA 团队之前更好地理解其含义。
如果您在未指定 CASCADE 的情况下尝试删除用户(例如 THE_USER),您将收到以下错误:
ORA-01922: CASCADE must be specified to drop 'THE_USER'
在 DROP USER
语句中使用 CASCADE
选项,或者在删除用户之前手动删除所有用户对象。
HTH
DROP USER
的 Oracle documentation 指出:
"Oracle Database does not drop users whose schemas contain objects unless you specify CASCADE
"。
我的理解是所有模式都必须有一个关联的用户帐户(尽管可以通过限制 CREATE SESSION
命令等来限制该帐户的使用)。但是,当您使用 DROP USER
命令时,以前拥有的对象实际上发生了什么?如果用户不再存在...那么哪个帐户拥有这些对象?
对于 Context,我是一名开发人员而不是 DBA,并且没有对我的数据库的 DCL 权限,因此我无法自行测试。我正在执行一个可能需要此命令的迁移项目,但我想在将请求传递给我的企业 DBA 团队之前更好地理解其含义。
如果您在未指定 CASCADE 的情况下尝试删除用户(例如 THE_USER),您将收到以下错误:
ORA-01922: CASCADE must be specified to drop 'THE_USER'
在 DROP USER
语句中使用 CASCADE
选项,或者在删除用户之前手动删除所有用户对象。
HTH