Oracle 11.2.0.2里新增了一个新特性——用户重命名(Rename User),在这个版本之前要想重命名用户,需要按用户导出,再fromuser touser(imp)或remap_schem(impdp)。还可以通过修改数据字典user$的方式来重命名用户,但这种方法可能会带来风险。有了这个特性之后,可以通过alter user oldname rename to newname identified by "password";一条命令来重命名用户。

下面来看测试过程,使用Oracle版本11.2.0.4
sys@ORCL>select * from v$version; 
  
BANNER 
------------------------------------------------------------------------------- 
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 
PL/SQL Release 11.2.0.4.0 - Production 
CORE    11.2.0.4.0  Production 
TNS for Linux: Version 11.2.0.4.0 - Production 
NLSRTL Version 11.2.0.4.0 - Production

1、创建测试用户及测试表
sys@ORCL>create user sq identified by "sq"; 
  
User created. 
  
sys@ORCL>grant connect,resource to sq; 
  
Grant succeeded 
  
sys@ORCL>create table sq.t1 as select * from dba_tables; 
  
Table created.

2、执行alter user语句
sys@ORCL>alter user sq rename to zlx identified by "zlx"; 
alter user sq rename to zlx identified by "zlx"
              * 
ERROR at line 1: 
ORA-00922: missing or invalid option

报错无效的操作,原来是需要修改隐含参数"_enable_rename_user"
 
3、修改隐含参数"_enable_rename_user",并以restrict模式重启数据库
sys@ORCL>alter system set "_enable_rename_user"=true scope=spfile; 
  
System altered. 
  
sys@ORCL>startup restrict force; 
ORACLE instance started. 
  
Total System Global Area 1620115456 bytes 
Fixed Size                    2253704 bytes 
Variable Size                  956304504 bytes 
Database Buffers          654311424 bytes 
Redo Buffers                    7245824 bytes 
Database mounted. 
Database opened.

4、再次执行alter user语句,重命名用户
 
sys@ORCL>alter user sq rename to zlx identified by "zlx"; 
  
User altered. 
  
sys@ORCL>select count(*) from sq.t1; 
select count(*) from sq.t1 
                        * 
ERROR at line 1: 
ORA-00942: table or view does not exist 
  
  
sys@ORCL>select count(*) from zlx.t1; 
  
  COUNT(*) 
---------- 
      2864 
  
sys@ORCL>conn zlx/zlx 
ERROR: 
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege 
  
  
Warning: You are no longer connected to ORACLE. 
sys@ORCL>conn / as sysdba 
Connected. 
sys@ORCL>alter system disable restricted session; 
  
System altered. 
  
sys@ORCL>conn zlx/zlx 
Connected. 
zlx@ORCL>select * from tab; 
  
TNAME                                          TABTYPE                  CLUSTERID 
------------------------------------------ --------------------- ---------- 
T1                                              TABLE

从上面的结果来看用户名重命名成功。
5、reset隐含参数"_enable_rename_user"并重启数据库
sys@ORCL>alter system reset "_enable_rename_user";
 
System altered.

Oracle 11gR2 用户重命名(rename user)的更多相关文章

  1. PHP文件操作,多行句子的读取,file()函数,file_get_contents()函数,file_put_contents()函数,is_file,统计网站pv (访问量),文件的复制 copy,文件重命名 rename,删除文件 unlink

    php中添加utf-8: header("Content-type:text/html;charset='UTF-8'"); 文件操作步骤: 1.在同一目录下建立一个file.tx ...

  2. 〖Linux〗Ubuntu用户重命名、组重命名,机器重命名~

    有时候得到的一台机器名字并不是自己熟悉的,或许是你只是想希望修改一下用户名等等-- 步入正题,其实很简单的,重启机器之后不要进入桌面,按下Ctrl+Alt+F1,使用Root登录,执行以下命令: # ...

  3. Table.RenameColumns重命名…Rename…(Power Query 之 M 语言)

    数据源: "姓名""基数"等列 目标: 修改"姓名"列标题为"员工姓名" 操作过程: [转换]>[重命名]> ...

  4. oracle:表重命名

    SQL> rename test1 to test; Table renamed. SQL> alter table test rename to test1; Table altered ...

  5. python 文件批量改名重命名 rename

    path = '/Volumes/Seagate/dev/imgs/' os.chdir(path) print('cwd: ', os.getcwd()) for f in os.listdir(' ...

  6. Oracle查询列重命名

    select count(*) 呼入量 from crm_cisco_call_detail

  7. oracle 11.2.0.2以后对数据库用户名重命名

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn [转自]http://www.xifenfei.com/2012/0 ...

  8. 文件批量加密重命名--python脚本AND mysql命令行导入数据库

    在考试中学生交上来的报告,需要进行一下文件名加密,这样阅卷老师就不知道是谁的报告了 在百度帮助下,完成了加密和解密脚本, 加密 #!/usr/bin/python # -*- coding: utf- ...

  9. python的N个小功能(找到符合要求的图片,重命名,改格式,缩放,进行随机分配)

    ########################################################################## 循环读取该目录下所有子目录和子文件 ####### ...

随机推荐

  1. 程序中的@Override是什么意思?

    @Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记 @Override是伪代码,表示重写( ...

  2. [原]CentOS 7 chrony 笔记

    ~]# timedatectl status Local -- :: CST ==> 本地系统实际时间,设置时间timedatectl set-:: 设置日期timedatectl set- 设 ...

  3. 使用PsExec获取shell执行命令

    PsExec PsExec是pstools工具组套件的一部分,确成为了渗透利器,下载地址:点击这里下载 连接shell 我的Windows Server 2012默认打开域网络防火墙的时候,是不能连接 ...

  4. 让height: 100%生效

    html: <body> <div class="box"></div> </body> css: .box{ position: ...

  5. 浏览器打开exe文件

    <win-r> regedit 打开注册表,然后自定义协议 自定义协议注册表.reg 打开后导入 Windows Registry Editor Version 5.00 [HKEY_CL ...

  6. 松散的css

    <style> <p>hello world</p> {} p { color: red; } {} <em style="padding: 4px ...

  7. 剑指offer——python【第15题】反转链表

    题目描述 翻转一个链表 样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 思路 一种比较简单的方法是用“摘除法”.就是先新 ...

  8. 中国标准时间转换成YYY-MM-DD

    export function changeDate(dateA) { let date; if (dateA) { if (dateA.toString().indexOf('GMT') > ...

  9. Luogu 1086 - 花生采摘 - [简单模拟]

    题目链接:https://www.luogu.org/problemnew/show/P1086 题目描述鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着 ...

  10. Cookie:解决HTTP协议无保存状态

    客户端 Cookie会根据从服务器端发送的相应报文内一个叫Set-Cookie的首部字段信息,通知客户端保存Cookie.当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值 ...