用删除某个用户,但是删除时有用户连接
SQL> conn /as sysdba
Connected.
SQL> drop user test cascade;
drop user test cascade
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected
通过查看用户的进行,并kill用户进程,然后删除用户
SQL> select sid,serial# from v$session where username='test';
no rows selected
SQL> select sid,serial# from v$session where username='TEST';
SID SERIAL#
---------- ----------
150 9019
SQL> alter system kill session '150,9019';
System altered.
注:这里有点怪,我明明通过kill杀掉了TEST的连接会话,但是我还可以通过test用户行sql的查询,所以造成了我继续查询出现了两条信息。
SQL> select sid,serial# from v$session where username='TEST';
SID SERIAL#
---------- ----------
138 2947
150 9019
这里我很纳闷,为什么ORACLE的kill命令并不能真正杀掉进程吗?
SQL> alter system kill session '150,9019';
System altered.
SQL> alter system kill session '138,2947';
System altered.
但是我在kill掉进程后,马上删除用户,用户就直接被删除了。难道ORACLE的kill命令并不真正的杀掉用户进程,而只是表面上的一直现象,后面的操作才是真正的起作用?
SQL> drop user test cascade;
User dropped.
2.2 re-create account PDMADMIN
create PDMADMIN account back: create user PDMADMIN identified by Admin123;
give privileage to this account: grante CONNECT, DBA,RESOURCE to PDMADMIN;
2.3 import database to this new account:
imp, 选择 dmp 文件
输入 PDMADMIN, 然后再输入 .. 回车开始导入。
完成。
smarteam 连接名称修改工具:smarteam\bin\DBRegistration.exe