DROP USER
功能描述
删除数据库用户账户。
注意事项
-- 权限要求:执行用户删除语句的操作者,需具备DROP USER系统权限。
-- 存在性校验:若待删除的用户不存在,且未在语句中指定if exists选项,系统将返回错误提示:"user name does not exist"。
-- 操作限制:该删除操作不支持在数据库重启并执行回滚的过程中执行。
-- 前置建议:单个用户名下关联的对象数量上限为5万个;为保障操作顺畅,建议先删除该用户创建的数据表对象,再执行用户删除操作。
-- 风险提示:该操作需谨慎执行;即便删除流程中途中断,已被删除的对象也无法恢复。
语法格式
DROP USER [ IF EXISTS ] user_name [ CASCADE ]
参数说明
user_name: 待删除的目标用户名。
IF EXISTS: 用于校验待删除用户的存在性:若指定该选项,当目标用户不存在时,语句直接返回执行成功;当用户存在时,则执行删除操作。
CASCADE: 用户删除时的关联对象处理选项: 未指定CASCADE:若待删除用户名下仍有未清理的数据库对象,系统将抛出错误提示:user objects is being used, can not drop; 指定CASCADE:删除用户的同时,系统会强制级联删除该用户所属的所有数据库对象,包含:数据表、表关联索引、表关联约束(含引用该表的外键约束)、表关联触发器、 序列、视图(不含视图中引用的其他用户对象)、函数/存储过程、回收站中归属该用户的数据表。
示例
需删除用户user001,并在删除该用户的同时,强制级联删除其名下所有数据库对象。
-- 先创建用户 user001 ,设置其登录密码为 "6fgfjFGgh"
CREATE USER user001 IDENTIFIED BY "6fgfjFGgh";
-- 执行用户删除操作,删除 user001 的同时强制删除该用户所属的全部数据库对象:
DROP USER user001 CASCADE;