Oracle Express版本的使用及 如何用SQLDeveloper連接XE

Oracle XE是Oracle的免費版,跟收費版相比,自然有些限制。

但是,在教學,自學等場合,還是很好的。

 

筆者在本機Windows10上裝了Oracle XE 18c,然後就開始一頓折騰了。

1,DBA賬戶

這個就是在安裝的時候,讓你輸入密碼的,只輸入一個密碼,但是是3個賬戶公用。

就是System,Sys,PDBAdmin。

2,創建完之後使用SqlDeveloper或Sqlplus登錄

--SqlDeveloper--

連接類型:Basic

角色:Default

主機名:填localhost或自己的IP

SID:xe

 

如果用Sqlplus的話,那就是 Sqlplus System/password@localhost:1523

※注意這裏的端口是1523

這張圖可能是大家想要的吧,安裝完,就tm沒了,貼一下:

 

3,創建新用戶

基本步驟就是1)創建表空間; 2)創建臨時表空間 3)創建用戶 4)賦權限

1)創建表空間

CREATE TABLESPACE S100D
DATAFILE 'c:\usr\lib\oracle\xe\S100D.dbf' SIZE 100M
SEGMENT SPACE MANAGEMENT AUTO;

坑來啦,居然出錯了:

ORA-02236: 文件名無效。
02236. 00000 -  "invalid file name"
*Cause:    A character string literal was not used in the filename list
           of a LOGFILE, DATAFILE, or RENAME clause.
*Action:   Use correct syntax.

 

如果你直接創建角色或用戶的話,會出以下錯誤:

ORA-65096: 共通用戶或角色名無效。

 

這是爲啥呢,Oracle 12c開始呢,Oracle導入了多租戶結構,我們使用System的時候,就是默認登入了這個多租戶Session。

玩salesforce等系統的朋友都知道,多租戶的話,有個特點,就是牽一髮而動全身,你影響別人,那肯定不行,所以就不是那麼簡單的建用戶了。

對於我們學習者來說,用不了那麼高級的,要把這個多租戶切換爲可插拔session,然後就可以所心所欲的建了。

a) 確認Session類型:

show con_name;

CON_NAME 
------------------------------
CDB$ROOT                  這就是多租戶

 

b)切換爲可插拔Session

alter session set container = XEPDB1;

Session已經變更。

※這個XEPDB1是什麼呢,就是默認給你建好的一個DB的服務名。

 

Sessoin變更之後,再執行一遍創建表空間的SQL語句,就可以了。

TABLESPACE S100D創建成功。

 

2)創建臨時表空間

CREATE TEMPORARY TABLESPACE S001T
TEMPFILE 'c:\usr\lib\oracle\xe\S001T.dbf' SIZE 100M
AUTOEXTEND ON;

TABLESPACE S100T創建成功。

修改默認臨時表空間:默認是Tmp,這個其實改不改都行吧。

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE S100T;

 

3)創建用戶

--創建共通角色
CREATE ROLE                   "XE_CONNECT";
GRANT ALTER SESSION        TO "XE_CONNECT";
GRANT CREATE CLUSTER       TO "XE_CONNECT";
GRANT CREATE DATABASE LINK TO "XE_CONNECT";
GRANT CREATE SEQUENCE      TO "XE_CONNECT";
GRANT CREATE SESSION       TO "XE_CONNECT";
GRANT CREATE SYNONYM       TO "XE_CONNECT";
GRANT CREATE TABLE         TO "XE_CONNECT";
GRANT CREATE VIEW          TO "XE_CONNECT";


ALTER DATABASE SET TIME_ZONE = 'Asia/Shanghai';

※話說這個TimeZone怎麼不用Beijing用Shanghai啊,我對上海充滿仰慕之情,但是這個感覺怪怪的哈。

--設置Password永不過期

ALTER PROFILE DEFAULT
      LIMIT PASSWORD_LIFE_TIME UNLIMITED;

--創建賬戶

CREATE USER S001
       IDENTIFIED BY              E3Q4RRVN
       DEFAULT       TABLESPACE   S001D
       TEMPORARY     TABLESPACE   S001T
       QUOTA         UNLIMITED ON S001D;

--設置用戶權限 ※當然啦,這只是我認爲需要的權限,還需要其他的請自行添加。

-- ■Grant Role S001 User
GRANT "XE_CONNECT"                      TO S001 ;
GRANT ALTER SESSION                     TO S001 ;
GRANT ALTER SYSTEM                      TO S001 ;
GRANT CREATE ANY PROCEDURE              TO S001 ;
GRANT CREATE CLUSTER                    TO S001 ;
GRANT CREATE DATABASE LINK              TO S001 ;
GRANT CREATE MATERIALIZED VIEW          TO S001 ;
GRANT CREATE ROLE                       TO S001 ;
GRANT CREATE SEQUENCE                   TO S001 ;
GRANT CREATE SESSION                    TO S001 ;
GRANT CREATE SYNONYM                    TO S001 ;
GRANT CREATE TABLE                      TO S001 ;
GRANT CREATE TRIGGER                    TO S001 ;
GRANT CREATE VIEW                       TO S001 ;
GRANT DEBUG ANY PROCEDURE               TO S001 ;
GRANT DEBUG CONNECT SESSION             TO S001 ;
GRANT SELECT ANY DICTIONARY             TO S001 ;
GRANT SELECT ANY TABLE                  TO S001 ;
GRANT UNLIMITED TABLESPACE              TO S001 ;
GRANT DBA                               TO S001 ;
GRANT EXP_FULL_DATABASE                 TO S001 ;
GRANT IMP_FULL_DATABASE                 TO S001 ;
GRANT RESOURCE                          TO S001 ;
GRANT SELECT_CATALOG_ROLE               TO S001 ;

 

4)登錄剛剛創建好的用戶

這步就有問題咯。請不要忘記多租戶哦。

使用Sqlplus:sqlplus s001/password@localhost:1523/XEPDB1

使用SqlDeveloper的話,

連接類型:Basic

角色:Default

主機名:填localhost或自己的IP

SID:xe    -------------------NG啦

要用ServiceName:XEPDB1

 

大家看下面這篇大神寫的文章:

https://www.cnblogs.com/hello-wei/p/10179313.html

 

參照:https://symfoware.blog.fc2.com/blog-entry-2374.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章