Oracle 12c 建立新使用者
Oracle12c 導入CDB/PDB 多租戶架構,直接在容器資料庫(CDB)建立一般使用者會報錯。在CDB裡建立的共用使用者名稱,必須加上 c## / C## 做為前綴。
登入
- 開啟 Windows cmd,啟動 sqlplus
sqlplus
- 使用超級管理員帳號登入資料庫
請輸入使用者名稱: sys as sysdba
輸入口令: 【填寫安裝時設定的sys密碼】Code language: HTTP (http)
登入成功提示:連線到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
建立使用者
錯誤寫法
目標:建立使用者 cat,密碼 123456
執行SQL:
CREATE USER cat IDENTIFIED BY 123456;
ORA-65096: 共用使用者名稱或角色名稱無效Code language: HTTP (http)
報錯原因:目前位於CDB根容器,建立共用使用者(Common User)名稱強制要求前綴 c##,cat 不符合命名規範。
正確建立共用使用者
執行SQL:
CREATE USER c##cat IDENTIFIED BY Bm123321;Code language: CSS (css)
執行結果:使用者已建立。
指派使用者權限
錯誤授權語法
GRANT CONNECT, RESOURCE, DBA TO cat;
ORA-01917: 使用者或角色 'CAT' 不存在Code language: JavaScript (javascript)
使用者名稱是 c##cat,授權時使用者名稱必須和建立時完全一致,不能簡寫成cat。
正確授權語法
GRANT CONNECT, RESOURCE, DBA TO c##cat;Code language: CSS (css)
權限說明:
CONNECT:基礎登入連線權限RESOURCE:開發常用資源角色,允許建立資料表、索引等物件DBA:完整資料庫管理員權限(測試環境使用,正式環境不建議隨意指派)
新使用者登入驗證
- 執行
exit離開sys管理員工作階段,重新開啟sqlplus
SQL> exitCode language: PHP (php)
- 嘗試錯誤登入
請輸入使用者名稱: cat
輸入口令: 123456Code language: HTTP (http)
報錯:ORA-01017: 使用者名稱/密碼無效; 登入被拒絕
- 正確登入方式
請輸入使用者名稱: c##cat
輸入口令: 123456Code language: HTTP (http)
成功連接資料庫。
建立使用者
Previous: SQL Plus 與 SQL Developer
Next: 建立資料表