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              password
       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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值