oracle 表空间 模式,Oracle中用户,表空间,模式的含义

一、表空间(Tablespace)

1、字面上来看,表空间就是个表的存储容器,在对应的物理级别上,表空间的数据内容是存储在一个或者多个数据文件或者临时文件中,这部分在我们编码中基本体现不出来,需要建用户的时候设置参数。

2、表空间主要有Permanent Tablespaces(永久表空间)、Temporary Tablespaces(临时表空间)、Undo Tablespaces(撤销表空间)三种,Oracle Database 11g 在使用数据库管理助手创建数据库的时候,默认会创建三个永久表空间(SYSTEM、SYSAUX、USERS),一个临时表空间(TEMP),一个撤销表空间(UNDOTBS1)。

3、 Oracle数据库有几个缺省表空间,其中SYSTEM和SYSAUX 表空间是一个Oracle数据库必须有的。

4、表空间的模式,也可以称为状态,可以设置表空间的online(联机)或者offline(脱机),Read/write(读/写) 或者 Read-only(只读) ,在新建表空间的时候会有选项供选择。

使用SQL建立表空间:

CREATE TABLESPACE "PETER" --表空间名PETER

LOGGING --启动重做日志

DATAFILE 'F:\app\oradata\orcl\PETER.DBF' --指定对应的数据文件,可以一个或者多个

SIZE 100M --数据文件大小

AUTOEXTEND ON --数据文件自动扩展

NEXT 1024K --一次扩展的大小

MAXSIZE UNLIMITED --数据文件最大容量:无限

EXTENT MANAGEMENT LOCAL --表空间本地管理

SEGMENT SPACE MANAGEMENT AUTO ; --存储管理方式,AUTO为自动方式

永久表空间:

用于存储数据库中的持久性模式对象,如表、索引、视图等,其数据在物理上对应一个或者多个数据文件。永久表空间也是我们实际中用的最多的一个类型的表空间。我们也重点关注该类型,其余的大家可以自行了解。

二、用户(User)

Oracle 数据库中的用户,其实就是一个认证登录的东西,用来连接和访问数据库的。这个与我们的代码部分息息相关:

username对应的就是数据库中建立的用户,在代码中体现如下,“ZHANG”就是我自己建立的用户

spring.datasource.jdbc-url=jdbc:oracle:thin:@127.0.0.1:1521:ORCL

spring.datasource.username=ZHANG

spring.datasource.password=zhang123

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

特别需要注意:Oracle中每个用户的密码有效期是180天,我如果想要让变成永久的,可以如下处理:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

建立用户就需要设置该用户的表空间,我喜欢用客户端创建,较方便,也可以使用SQL:

CREATE USER "ZHANG" --创建用户ZHANG

PROFILE "DEFAULT" --忽略对profile中的一些资源限制(默认就好)

IDENTIFIED BY "zhang@123" --密码为zhang@123

DEFAULT TABLESPACE "PETER" --默认表空间PETER,即数据默认存此表空间,可以使用第一步自己建立的表空间

ACCOUNT UNLOCK; --解锁用户

--建完用户后要给用户授予权限

Grant connect, resource to ZHANG;

--或者授予管理员权限

GRANT "DBA" TO "ZHANG" WITH ADMIN OPTION;

三、模式(scheam)

数据库模式由一个数据库用户拥有,并与用户名具有相同的名称。

我们在创建用户的时候,Oracle会自动创建一个与用户名相同的数据库模式,然后,该用户下所有的对象(也称为模式对象,如表、序列、视图、同义词、存储过程等),都是归属到这个数据库模式。

如果我们在代码中要访问某一张表,则可以这样写:

INSERT INTO

"ZHANG"."PRIUSERDATA"

VALUES

(#{id}, #{date}, 3, 0, 5, 2, '', 1)

这就很好理解模式的作用了, "ZHANG"是模式,“PRIUSERDATA” 是表名,结构是这样的:

oracle 表空间 模式,Oracle中用户,表空间,模式的含义

总结起来就是:表空间其实就是存储的仓库,用户代表权限信息,模式类似MySQL中的数据库,它管理该用户的所有对象。

阅读剩余
THE END