先登录需要删除的用户,查询以下SQL得到用户下的所有需要删除的信息,拷贝查询到的的信息执行。
--delete tables select 'drop table ' || table_name ||';'||chr(13)||chr(10) from user_tables; --delete views select 'drop view ' || view_name||';'||chr(13)||chr(10) from user_views; --delete seqs select 'drop sequence ' || sequence_name||';'||chr(13)||chr(10) from user_sequences; --delete functions select 'drop function ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='FUNCTION'; --delete procedure select 'drop procedure ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PROCEDURE'; --delete package select 'drop package ' || object_name||';'||chr(13)||chr(10) from user_objects where object_type='PACKAGE';
完毕后使用权限高的用户在把需要删除的用户给删掉!
删除的时候建议登录oracle服务器使用命令行登录操作
sqlplus / as sysdba查询需要删除的用户当前是否还有链接,查询没数据可以直接删除select sid,serial# from v$session where username='大写用户名';查询有数据需要kill掉相关进程(立即断开用户session,未完成的事务自动会滚。)alter system disconnect session 'sid,serial#' immediate ;如果查询有数据不进行kill会报错如下:ERROR at line 1:ORA-01940: cannot drop a user that is currently connected删除 drop user 用户名称 cascade;