首页 数据库 mysql教程 Oracle 11g新特性之用户重命名

Oracle 11g新特性之用户重命名

Jun 07, 2016 pm 03:57 PM

我们在项目开发中,Oracle数据也会不断变化,因此需要定期将开发库数据库导入到测试数据库中。通常的做法是ldquo;三部曲:rdqu

我们在项目开发中,Oracle数据也会不断变化,因此需要定期将开发库数据库导入到测试数据库中。通常的做法是“三部曲:”

1.从开发库中exp导出数据

2.删除测试库用户

3.使用imp把导出数据导入到测试库

今天同事问我可不可以保留之前的用户,比如给用户改个名称。我之前倒没想过这个问题,说应该可以吧,使用alter user *** rename to ***;语句。需要上机验证一下,一操作就傻眼了,Oracle 10g不支持用户重命名,从Oracle 11.2.0.2才开始提供用户重命名的新特性。

Oracle 10g 不支持用户重命名

1.环境准备
我们在Oracle 10g中进行试验。

C:\Users\Administrator>sqlplus sys/hoegh as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 5月 14 09:17:02 2015

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

PL/SQL Release 10.2.0.4.0 - Production

CORE 10.2.0.4.0 Production

TNS for 64-bit Windows: Version 10.2.0.4.0 - Production

NLSRTL Version 10.2.0.4.0 - Production

SQL>

2.重命名用户报错
执行alter user *** rename to ***;语句,数据库报错,如下所示:

SQL>
 
SQL> alter user scott rename to tiger;

alter user scott rename to tiger

                *

第 1 行出现错误:

ORA-00922: 选项缺失或无效

SQL>

SQL> alter user scott rename to tiger identified by scott;

alter user scott rename to tiger identified by scott

                *

第 1 行出现错误:

ORA-00922: 选项缺失或无效

SQL>

SQL>


Oracle 11g用户重命名

1.环境准备

我们在Oracle 11g中进行试验。

SQL>
 
SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

PL/SQL Release 11.2.0.3.0 - Production

CORE 11.2.0.3.0 Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

SQL>

2.修改Oracle的隐含参数"_enable_rename_user"
 
通常,在sqlplus中使用show parameter xx可以查看到Oracle定义的参数, 它是通过查询v$parameter获得的。 另外Oracle中还有一些隐含的参数 无法直接通过show parameter的方式查询,,也就是我们接下来使用到的隐含参数。修改隐含参数时, 使用alter system set "parameter_name"=value scope=both;其中有些可以在memory更改而有些仅仅可以通过spfile更改, 试试就知道了。需要注意的是一定要加上双引号, 另外引号内不能有空格, 只能包含参数的名字。

点击(此处)折叠或打开

SQL>
 
SQL> show parameter process    --通过show parameter查看参数

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes integer 1

cell_offload_processing boolean TRUE

db_writer_processes integer 1

gcs_server_processes integer 0

global_txn_processes integer 1

job_queue_processes integer 1000

log_archive_max_processes integer 4

processes integer 150

processor_group_name string

SQL>

SQL> show parameter enable_rename  --无法通过show parameter查看隐含参数

SQL> show parameter rename

SQL>

SQL>

SQL> alter system set "_enable_rename_user"=true scope=spfile;

System altered.

SQL>
 

3.用RESTRICTED模式启动数据库

用户重命名操作必须在RESTRICTED模式下完成。需要注意的是RESTRICTED模式以后  除了管理员都不能登录,如果需要非管理员登录,必须授予权限GRANT restricted session to username;


 

点击(此处)折叠或打开

SQL>
 
SQL> startup restrict force

ORACLE instance started.

Total System Global Area 941600768 bytes

Fixed Size 1348860 bytes

Variable Size 629148420 bytes

Database Buffers 306184192 bytes

Redo Buffers 4919296 bytes

Database mounted.

Database opened.

SQL>

SQL>

SQL> select status from v$instance;

STATUS

------------

OPEN

SQL>

SQL> select open_mode,name from v$database;

OPEN_MODE NAME

-------------------- ---------

READ WRITE HOEGH

SQL>


4.修改用户名

在执行重命名操作时,必须重新指定密码,否则会报错。

SQL>
 
SQL> alter user scott rename to tiger;

alter user scott rename to tiger

                              *

ERROR at line 1:

ORA-02000: missing IDENTIFIED keyword

SQL> alter user scott rename to tiger identified by scott;

User altered.

SQL>


5.重启数据库

SQL>
 
SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>

SQL>

SQL> startup

ORACLE instance started.

Total System Global Area 941600768 bytes

Fixed Size 1348860 bytes

Variable Size 629148420 bytes

Database Buffers 306184192 bytes

Redo Buffers 4919296 bytes

Database mounted.

Database opened.

SQL>


6.确认结果

原来的scott用户已经被重命名为tiger用户,现在,我们验证一下tiger用户是否能够正常登陆,原来的scott用户是否还存在。

SQL> conn scott/tiger
 
ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

SQL>

SQL> conn tiger/scott

Connected.

SQL>

SQL> select * from cat;

TABLE_NAME TABLE_TYPE

------------------------------ -----------

BONUS TABLE

DEPT TABLE

EMP TABLE

HOEGH TABLE

SALGRADE TABLE

SQL> 

本文永久更新链接地址

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

说明InnoDB全文搜索功能。 说明InnoDB全文搜索功能。 Apr 02, 2025 pm 06:09 PM

InnoDB的全文搜索功能非常强大,能够显着提高数据库查询效率和处理大量文本数据的能力。 1)InnoDB通过倒排索引实现全文搜索,支持基本和高级搜索查询。 2)使用MATCH和AGAINST关键字进行搜索,支持布尔模式和短语搜索。 3)优化方法包括使用分词技术、定期重建索引和调整缓存大小,以提升性能和准确性。

如何使用Alter Table语句在MySQL中更改表? 如何使用Alter Table语句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

如何为MySQL连接配置SSL/TLS加密? 如何为MySQL连接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

与MySQL中使用索引相比,全表扫描何时可以更快? 与MySQL中使用索引相比,全表扫描何时可以更快? Apr 09, 2025 am 12:05 AM

全表扫描在MySQL中可能比使用索引更快,具体情况包括:1)数据量较小时;2)查询返回大量数据时;3)索引列不具备高选择性时;4)复杂查询时。通过分析查询计划、优化索引、避免过度索引和定期维护表,可以在实际应用中做出最优选择。

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

您如何处理MySQL中的大型数据集? 您如何处理MySQL中的大型数据集? Mar 21, 2025 pm 12:15 PM

文章讨论了处理MySQL中大型数据集的策略,包括分区,碎片,索引和查询优化。

可以在 Windows 7 上安装 mysql 吗 可以在 Windows 7 上安装 mysql 吗 Apr 08, 2025 pm 03:21 PM

是的,可以在 Windows 7 上安装 MySQL,虽然微软已停止支持 Windows 7,但 MySQL 仍兼容它。不过,安装过程中需要注意以下几点:下载适用于 Windows 的 MySQL 安装程序。选择合适的 MySQL 版本(社区版或企业版)。安装过程中选择适当的安装目录和字符集。设置 root 用户密码,并妥善保管。连接数据库进行测试。注意 Windows 7 上的兼容性问题和安全性问题,建议升级到受支持的操作系统。

InnoDB中的聚类索引和非簇索引(次级索引)之间的差异。 InnoDB中的聚类索引和非簇索引(次级索引)之间的差异。 Apr 02, 2025 pm 06:25 PM

聚集索引和非聚集索引的区别在于:1.聚集索引将数据行存储在索引结构中,适合按主键查询和范围查询。2.非聚集索引存储索引键值和数据行的指针,适用于非主键列查询。

See all articles