Oracle 11gR2 使用者重新命名(rename user)
Oracle 11gR2 使用者重新命名(rename user)
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、建立測試使用者及測試表
create user sq identified by "sq";
grant connect,resource to sq;
create table sq.t1 as select * from dba_tables;
2、修改隱含引數"_enable_rename_user",並以restrict模式重啟資料庫
alter system set "_enable_rename_user"=true scope=spfile;
startup restrict force;
3、執行alter user語句,重新命名使用者
alter user sq rename to zlx identified by "zlx";
--檢視使用者物件
sys@ORCL>select count(*) from sq.t1;
--提示不存在
sys@ORCL>select count(*) from zlx.t1;
--表存在
4、恢復資料庫執行
conn / as sysdba
alter system disable restricted session;
conn zlx/zlx
select * from tab;
從上面的結果來看使用者名稱重新命名成功。
5、reset隱含引數"_enable_rename_user"並重啟資料庫
sys@ORCL>alter system reset "_enable_rename_user";
--------------------------------------------------------------------------
下面來看直接修改資料字典user$的方法:
sys@ORCL>select user#,name from user$ where name='ZLX';
USER# NAME
---------- --------
94 ZLX
sys@ORCL>update user$ set name='SQ' WHERE USER#=94;
--提示許可權不足
sys@ORCL>commit;
sys@ORCL>conn sq/zlx;
網上還提到update完後,需要alter system checkpoint;和alter system flush shared_pool;,從上面的操作來看好象更簡單一些,但user$作為oracle的核心基表之一,修改資料字典會不會造成系統不穩定產生ora-600錯誤等等都不好說,所以生產上一定要慎重。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2149187/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Can one rename a database user (schema)?Database
- oracle 11gR2 新特性 diskgroup 重新命名Oracle
- mysql 命令重新命名錶RENAME TABLE 句法MySql
- A Better Finder Rename 11 Mac(批次重新命名工具)Mac
- 批次重新命名軟體:A Better Finder Rename mac中文版Mac
- A Better Finder Rename 12 for Mac(蘋果電腦批次重新命名工具)Mac蘋果
- 重新命名工具 Bulk Rename Utility v4.0.0.0 中文版
- C語言rename()函式:重新命名檔案或目錄C語言函式
- Move_or_Rename_the_Tempfile_in_OracleOracle
- Rename db_name for OracleOracle
- How to rename an Oracle stored procedureOracle
- A Better Finder Rename 蘋果電腦 最強大的批次重新命名工具蘋果
- 批次重新命名工具 A Better Finder Rename 12啟用碼最新版
- SQL 重新命名錶、欄位、儲存過程名sp_renameSQL儲存過程
- 【實驗】【PARTITION】RANGE分割槽表重新命名錶分割槽(Rename Partition)
- Oracle基礎 08 使用者角色 user/roleOracle
- 詳解oracle使用者建立(create user)(下)Oracle
- 詳解oracle使用者建立(create user)(上)Oracle
- oracle 重新命名Oracle
- Oracle 11g新特性之使用者重新命名Oracle
- Oracle---使用者重新命名、建立同樣的使用者名稱Oracle
- oracle user$Oracle
- oracle 線上rename資料檔案Oracle
- oracle rename 的連帶問題Oracle
- Rename Tablespace in Oracle database 10gOracleDatabase
- How to Rename Tablespace In Oracle10gOracle
- 【TABLESPACE】使用“ALTER TABLESPACE”命令的“RENAME”功能實現表空間快速重新命名
- 03-Java框架FTPClient 使用rename()移動檔案和檔案重新命名Java框架FTPclient
- oracle:表重新命名Oracle
- 【USER】Oracle 一個普通使用者有多少許可權Oracle
- 【TABLESPACE】“ALTER TABLESPACE”命令的“RENAME”功能在重新命名錶空間能力上的測試
- Oracle 重建表(rename)注意事項總結Oracle
- Oracle 重建表(rename)注意事項小結Oracle
- 【Oracle】How to Rename or Move Datafiles and Logfiles 之二Oracle
- 【Oracle】How to Rename or Move Datafiles and Logfiles 之一Oracle
- oracle817開始支援rename column nameOracle
- 【ASK_ORACLE】Oracle如何重新命名PDBOracle
- 【USER】使用“基表修改法”快速修改Oracle使用者名稱Oracle