Oracle 11.2.0.2新特性——用户重命名(Rename User)

11.2.0.2里新增了一个很有意思的新特性——用户重命名(Rename User),以前俺们都是Rename datafile呀,tablespace呀,Index呀,抑或是constraint之类,没想到User也可以重命名的。据说这个DDL操作的需求是来源于SAP: SAP identifies a specific SAP system by the name of the database schema. If the system is renamed, the schema needs also to be renamed. This happens quite often when a database is copied (i.e. for testing purposes) and the system gets therefore a new name. The schema should also get a new name.


废话不多说,验证一下先:


创建测试用户下一个测试表,查看testusr的ID是84


SQL> CREATE TABLE testusr.emp AS SELECT * FROM scott.emp;
SQL> SELECT USERNAME,USER_ID FROM dba_users WHERE created>(sysdate-1);
USERNAME                          USER_ID
------------------------------ ----------
TESTUSR                                84
启用重命名特性需要修改隐含参数“_enable_rename_user”,并需要在restrict mode下Rename


SQL> CREATE  pfile FROM spfile;
[oracle@cdcjp47 dbhome_1]$ vi dbs/initeastdb.ora
-- 添加
*._enable_rename_user=TRUE
SQL> shutdown immediate
SQL> startup restrict pfile='?/dbs/initeastdb.ora'
SQL> ALTER user testusr RENAME TO testusr1 IDENTIFIED BY Welcome1;
SQL> SELECT USERNAME,USER_ID FROM dba_users WHERE created>(sysdate-1);
 
USERNAME                          USER_ID
------------------------------ ----------
TESTUSR1                               84
-- 看看数据,都在的,说明Rename User并不影响Object里面的内容
SQL> SELECT * FROM testusr1.emp;
     EMPNO ENAME    JOB               MGR HIREDATE        SAL       COMM     DEPTNO
---------- -------- ---------- ---------- -------- ---------- ---------- ----------
      7369 SMITH    CLERK            7902 80-12-17        800                    20
      7499 ALLEN    SALESMAN         7698 81-02-20       1600        300         30
      7521 WARD     SALESMAN         7698 81-02-22       1250        500         30
      7566 JONES    MANAGER          7839 81-04-02       2975                    20
      7654 MARTIN   SALESMAN         7698 81-09-28       1250       1400         30
      7698 BLAKE    MANAGER          7839 81-05-01       2850                    30
      7782 CLARK    MANAGER          7839 81-06-09       2450                    10
      7788 SCOTT    ANALYST          7566 87-04-19       3000                    20
      7839 KING     PRESIDENT             81-11-17       5000                    10
      7844 TURNER   SALESMAN         7698 81-09-08       1500          0         30
      7876 ADAMS    CLERK            7788 87-05-23       1100                    20
      7900 JAMES    CLERK            7698 81-12-03        950                    30
      7902 FORD     ANALYST          7566 81-12-03       3000                    20
      7934 MILLER   CLERK            7782 82-01-23       1300                    10
注意新用户名不要和现有用户名重名


SQL> ALTER user testusr1 RENAME TO scott IDENTIFIED BY 123;
ALTER user testusr1 RENAME TO scott IDENTIFIED BY 123
*
ERROR IN Line 1:
ORA-00604: error occurred at recursive SQL level 1. 
ORA-00001:UNIQUE constraint (SYS.I_USER1) violated

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值