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 DG新特性--Automatic block repairOracleBloCAI
- oracle 11g 新特性之動態繫結變數窺視(一)Oracle變數
- oracle 11g 新特性之動態繫結變數窺視(二)Oracle變數
- 新特性:/dev/shm對Oracle 11g的影響devOracle
- Oracle 11g 新特性:只讀表(Read-only)Oracle
- Oracle之11g DataGuardOracle
- Oracle12C新特性-線上重新命名遷移資料檔案(一)Oracle
- LightDB 22.4 新特性之相容Oracle sqluldr2OracleSQL
- Oracle 11g新特新--SQL Test Case BuilderOracleSQLUI
- Oracle 18C新特性之PDB snapshot(快照) CarouselOracle
- oracle 21c 新特性之 CHECKSUM 分析函式Oracle函式
- LightDB 22.4 新特性之相容Oracle樹形查詢Oracle
- ORACLE 19c 新特性之混合分割槽表Oracle
- LightDB 22.4 新特性之支援Oracle cardinality和ordered_predicates hintOracle
- Oracle merge 與 PG新特性 UPSERTOracle
- Oracle 12c新特性--ASMFD(ASM Filter Driver)特性OracleASMFilter
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- oracle 10G特性之awrOracle 10g
- Oracle 12C新特性-History命令Oracle
- Oracle 12C新特性In-MemoryOracle
- Oracle 12c 兩個新特性Oracle
- 1 Oracle Database 19c 新特性OracleDatabase
- Oracle10g/11g動態、靜態關閉DRM特性方法Oracle
- 【ASK_ORACLE】Oracle如何重新命名PDBOracle
- Oracle 18C新特性之PDB snapshot Carousel--PDB快照輪播Oracle
- LightDB 22.4 新特性之完全相容Oracle varchar2資料型別Oracle資料型別
- Java 10 新特性之 AppCDSJavaAPP
- Oracle12C新特性_DDL日誌Oracle
- Oracle 20C 多租戶_新特性Oracle
- LightDB 23.1相容Oracle新特性支援Oracle
- 使用者屬性 - MQTT 5.0 新特性MQQT
- LightDB/postgresql內建特性之訪問oracle之oracle_fdw介紹SQLOracle
- Oracle 11g RAC之HAIP相關問題總結OracleAI
- Oracle 18c新特性詳解 - 表和表空間相關的新特性Oracle
- Oracle 21c新特性預覽與日常管理相關的幾個新特性Oracle
- Oracle 12.2 新特性: Online PDB relocate (PDB hot move)Oracle
- oracle 19C新特性——混合分割槽表Oracle
- 【DATAGUARD】Oracle19c dataguard新特性及部署Oracle
- Oracle 12C新特性-RMAN恢復表Oracle