修改oracle用户名 alter rename,Oracle 11gR2 用户重命名(rename user)

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.4sys@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

CORE11.2.0.4.0Production

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>altersystem reset "_enable_rename_user";

Systemaltered.

下面来看直接修改数据字典user$的方法:

sys@ORCL>selectuser#,name from user$ where name='ZLX';

USER# NAME

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

94ZLX

sys@ORCL>updateuser$ set name='SQ' WHERE USER#=94;

1row updated.

sys@ORCL>commit;

Commitcomplete.

sys@ORCL>connsq/zlx;

Connected.

网上还提到update完后,需要alter system

checkpoint;和alter system flush

shared_pool;,从上面的操作来看好象更简单一些,但user$作为oracle的核心基表之一,修改数据字典会不会造成系统不稳定产生ora-600错误等等都不好说,所以生产上一定要慎重。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 CentOS 7 上安装 Oracle 11g R2 的详细教程: 1. 准备工作: - 确保您已经登录到 CentOS 7 的服务器上,并具有管理员权限。 - 确保服务器满足 Oracle 11g R2 的系统要求,例如硬件要求和内核参数设置等。 2. 下载安装文件: - 访问 Oracle 官方网站并下载适用于 Linux 的 Oracle 11g R2 安装文件。 - 将下载的文件上传到 CentOS 7 服务器上的合适位置。 3. 安装依赖软件包: - 打开终端并使用管理员权限运行以下命令来安装必需的依赖软件包: ``` yum install -y binutils.x86_64 compat-libcap1.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.x86_64 glibc-devel.x86_64 ksh.x86_64 libaio.x86_64 libaio-devel.x86_64 libgcc.x86_64 libstdc++.x86_64 libstdc++-devel.x86_64 libXi.x86_64 libXtst.x86_64 make.x86_64 sysstat.x86_64 ``` 4. 创建 Oracle 用户和组: - 运行以下命令创建一个名为 `oinstall` 的组和一个名为 `dba` 的用户: ``` groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle ``` 5. 设置用户环境: - 切换到 `oracle` 用户并编辑 `~/.bash_profile` 文件: ``` su - oracle vi ~/.bash_profile ``` - 在文件末尾添加以下内容: ``` export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin ``` - 保存并关闭文件,然后运行以下命令使环境变量生效: ``` source ~/.bash_profile ``` 6. 安装 Oracle 11g R2: - 运行以下命令以管理员身份执行安装程序: ``` cd /path/to/oracle/installation/file ./runInstaller ``` - 在图形界面安装向导中,按照提示进行选择和配置,确保填写正确的安装路径、数据库名称和密码等信息。 7. 配置 Oracle 11g R2: - 安装完成后,运行以下脚本以配置 Oracle 11g R2: ``` cd $ORACLE_HOME/root.sh ./root.sh ``` 8. 启动 Oracle 11g R2: - 运行以下命令以启动 Oracle 11g R2 数据库: ``` sqlplus / as sysdba startup ``` - 确保数据库成功启动,并使用以下命令将数据库设置为在系统启动时自动启动: ``` alter system enable restricted session; alter system set job_queue_processes=10; alter system set job_queue_interval=60; alter system set job_queue_keep_connections=TRUE; alter system set db_recovery_file_dest_size = 10G; alter system set db_recovery_file_dest = '/u01/app/oracle/fast_recovery_area'; ``` 9. 完成安装: - 恭喜您,现在已成功安装和配置 Oracle 11g R2!您可以使用 SQL Developer 或其他工具连接到数据库并进行开发和管理任务。 这就是在 CentOS 7 上安装 Oracle 11g R2 的详细教程。希望对您有所帮助!如果您有任何其他问题,请随时告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值