Oracle 11g新特性之使用者重新命名
我們在專案開發中,資料也會不斷變化,因此需要定期將開發庫資料庫匯入到測試資料庫中。通常的做法是“三部曲:”
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>
hoegh
15.05.14
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30162081/viewspace-1653886/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 11g 新特性之DRCPOracle
- Oracle 11g新特性之SecureFilesOracle
- 【ORACLE新特性】11G 分割槽新特性Oracle
- Oracle 11g 新特性Oracle
- oracle 11g 的新特性Oracle
- oracle 11g新特性之密碼大小寫敏感Oracle密碼
- oracle 11gR2 新特性 diskgroup 重新命名Oracle
- Oracle 11g 新特性簡介Oracle
- Oracle 11g新特性:Result CacheOracle
- Oracle 11g 新特性(轉載)Oracle
- Oracle 11g新特性之收集多列統計資訊Oracle
- 【DataGuard】Oracle 11g DataGuard 新特性之 Snapshot Standby DatabaseOracleDatabase
- Oracle 11g新特性之快取與連線池Oracle快取
- oracle DG 11g新特性彙總Oracle
- ORACLE 11G新特性之列新增操作Oracle
- Oracle 11g 新特性 -- SecureFiles 說明Oracle
- oracle 11g 新特性 表壓縮Oracle
- [引用分割槽表]Oracle 11g新特性之引用分割槽表Oracle
- Oracle 11g 新特性 -- SQL Plan Management 示例OracleSQL
- 天天學習ORACLE(三)-11G新特性Oracle
- oracle 11g 新特性 磁碟組檢查Oracle
- Oracle 11G 新特性 Automatic block repairOracleBloCAI
- 11g分割槽新特性之interval partition
- Oracle 12C 新特性之線上重新命名、遷移活躍的資料檔案Oracle
- oracle 11g 新特性之動態繫結變數窺視(二)Oracle變數
- oracle 11g 新特性之動態繫結變數窺視(一)Oracle變數
- Oracle 11g DG新特性--Automatic block repairOracleBloCAI
- Oracle 11g 新特性 – HM(Hang Manager)簡介Oracle
- ORACLE 11g新特性-統計值掛起Oracle
- oracle 11g 新特性 data recover AdvisorOracle
- oracle 11g 新特性 Flashback Data Archive 說明OracleHive
- Oracle 11g的新特性分割槽:System PartitionOracle
- 11g新特性之結果集快取快取
- 11g新特性--Oracle 11g 閃回資料歸檔Oracle
- oracle 12c 新特性之一:線上重新命名資料檔案Oracle
- Oracle 12c新特性之Sequence的Session特性OracleSession
- Oracle11g新特性之editionOracle
- 新特性:/dev/shm對Oracle 11g的影響devOracle