删除用户时的CASCADE关键字

SQL> delete user itp2;
delete user itp2
       *
第 1 行出现错误:
ORA-00903: 表名无效

SQL> drop user itp2;
drop user itp2
*
第 1 行出现错误:
ORA-01940: 无法删除当前已连接的用户

SQL> drop user itp2;
用户已删除。
SQL> drop user itp;
drop user itp
*
第 1 行出现错误:
ORA-01922: 必须指定 CASCADE 以删除 'ITP'

SQL> drop user itp cascade;
用户已删除。
SQL>
drop user ; 仅仅是删除用户,
drop user ×× cascade ;会删除此用户名下的所有表和视图。

user
Specify the user to be dropped. Oracle Database does not drop users whose schemas
contain objects unless you specify CASCADE or unless you first explicitly drop the
user's objects.

CASCADE
Specify CASCADE to drop all objects in the user's schema before dropping the user. You
must specify this clause to drop a user whose schema contains any objects.

使用cascade参数可以删除该用户的全部objects。要说明的如下:

1 If the user's schema contains tables, then Oracle Database drops the tables and
automatically drops any referential integrity constraints on tables in other schemas
that refer to primary and unique keys on these tables.

如果用户的schema中有表,则在删除表的时候自动删除与该表相关的主键和外键。

2 If this clause results in tables being dropped, then the database also drops all
domain indexes created on columns of those tables and invokes appropriate drop
routines.
如果用户的schema中有表,则在删除表的时候自动删除与该表相关的索引。


3 Oracle Database invalidates, but does not drop, the following objects in other
schemas:
删除用户时,下列在其他用户中的objects不会被删除,只会被置为无效

1 Views or synonyms for objects in the dropped user's schema
视图,同义词

2 Stored procedures, functions, or packages that query objects in the dropped
user's schema
存储过程,函数,包

4 Oracle Database does not drop materialized views in other schemas that are based
on tables in the dropped user's schema. However, because the base tables no
longer exist, the materialized views in the other schemas can no longer be
refreshed.
其他用户建立的基于被删除用户的物化视图不会被删除,只是不能在刷新了。

5 Oracle Database drops all triggers in the user's schema.
用户模式下的所有触发器全部被删除

6 Oracle Database does not drop roles created by the user.
被删除用户建立的其他用户不会被删除


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/programpoet/archive/2009/04/24/4106171.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以按照以下步骤来删除 Oracle 数据库中的用户: 1. 连接到 Oracle 数据库: ``` sqlplus / as sysdba ``` 2. 确认要删除用户是否存在: ``` SELECT * FROM dba_users WHERE username='user_name'; ``` 3. 如果需要,撤销用户的连接权限: ``` REVOKE CONNECT FROM user_name; ``` 4. 如果需要,回收用户的表空间权限: ``` REVOKE UNLIMITED TABLESPACE FROM user_name; ``` 5. 删除用户: ``` DROP USER user_name CASCADE; ``` 6. 退出 SQLPlus: ``` exit; ``` 注意: CASCADE 关键字删除用户的所有对象,包括表、视图和其他对象。如果你想要保留这些对象,请不要使用 CASCADE 关键字。 ### 回答2: 在Oracle数据库中,删除用户的操作分为两种情况,即删除用户删除用户和其对象。 删除用户的步骤如下: 1. 先登录到Oracle数据库。 2. 使用管理员权限连接到数据库: ```sql SQL> conn / as sysdba ``` 3. 检查用户是否存在: ```sql SQL> SELECT COUNT(*) FROM dba_users WHERE username = '用户名'; ``` 4. 若用户存在,则先断开与用户的连接: ```sql SQL> ALTER SYSTEM KILL SESSION 'sid,serial#'; ``` 5. 删除用户: ```sql SQL> DROP USER 用户CASCADE; ``` 其中,CASCADE关键字表示同删除用户拥有的所有对象。 若想仅删除用户而保留其对象,则不需要使用CASCADE关键字: ```sql SQL> DROP USER 用户名; ``` 需要注意的是,删除用户操作是不可逆的,删除后无法恢复,请在执行删除操作前谨慎确认。 此外,删除用户操作需要管理员权限才能执行,普通用户无法删除其他用户。 ### 回答3: 在Oracle删除用户可以通过以下步骤进行操作: 1. 首先,作为数据库管理员(DBA),使用管理员账户登录到Oracle数据库。 2. 使用ALTER USER语句将用户状态设置为LOCKED,即锁定用户。例如,使用以下命令锁定名为"username"的用户: ALTER USER username ACCOUNT LOCK; 这将禁止用户进行任何数据库操作。 3. 使用DROP USER语句删除用户。例如,使用以下命令删除名为"username"的用户以及该用户所拥有的所有对象: DROP USER username CASCADE; 关键字"CASCADE"表示删除用户删除用户拥有的所有对象。 4. 如果您不希望删除用户拥有的所有对象,可以省略"CASCADE"关键字,从而只删除用户自身,而保留其对象: DROP USER username; 5. 执行上述语句后,Oracle删除用户及其拥有的对象,并释放所占用的数据库空间。 需要注意的是,删除用户及其对象是一个敏感操作,请确保在执行之前备份数据库以防止数据丢失或不可恢复的错误。此外,只有具有适当权限的用户才能删除其他用户
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值