Oracle教程(3)用户(SCHEMA)与表空间(TABLESPACE)

Oracle教程(3)用户(SCHEMA)与表空间(TABLESPACE)

一、Oracle 与 MySQL 在数据管理上的不同

Oracle 对于数据库的管理方式与 MySQL 不同,在 MySQL 实例中可以创建多个不同的数据库(DATABASE进行资源隔离,并且可以通过 USE 语句切换数据库。而在 Oracle 中,一个数据库通常指的是一个完整的Oracle实例(默认实例名ORCL),这个实例有独立的数据文件、控制文件、日志文件等。一个 Oracle 实例可以包含多个模式,每个模式下又包含了表、视图等数据库对象(此时SCHEMA的概念相当于 MySQL 中的DATABASE)。

在 Oracle 中用户即模式,在创建用户的同时还会自动创建和用户同名的模式,也可以理解为每个模式就是该用户和其下对象的集合。当连接到Oracle以后根据用户区分不同的数据库对象,即连接到哪个用户就使用该用户的数据库对象,不需要使用 USE 命令切换。如果要实现类似的切换操作则是通过切换用户来切换不同的SCHEMA。

1、查看模式

-- 查看所有模式
SELECT * FROM all_users;


2、切换模式

当使用 sqlplus / as sysdba 登录 Oracle 后是以 SYS 身份连接到数据库的,这是 Oracle 数据库的超级用户,有权限访问所有的数据库对象。如果需要切换到其他模式可以使用 ALTER SESSION 语句或者 CONNECT 命令切换到其他用户身份。

-- 仅改变当前会话的默认模式,不改变实际的连接用户
ALTER SESSION SET CURRENT_SCHEMA = schema_name;

-- 会实际切换用户
CONNECT other_user/password;


二、Oracle 用户与表空间管理

生产数据库操作规范中,通常要为每个业务系统单独创建Schema和表空间,推荐操作顺序如下

1、创建独立表空间

CREATE TABLESPACE YWPIE_DATA                   #创建名为YWPIE_DATA的表空间
DATAFILE '/oradata/YWPIE/ywpie_data01.dbf'    #表空间路径
SIZE 2G AUTOEXTEND ON NEXT 200M MAXSIZE 10G    #表空间初始大小、自动增长幅度、总大小
EXTENT MANAGEMENT LOCAL                        #使用本地 extent 管理,属于标准配置
SEGMENT SPACE MANAGEMENT AUTO;                 #设置段空间为ASSM自动管理,属于标准配置


如果空间不够,可以通过新增datafile以扩容

ALTER TABLESPACE YWPIE_DATA
ADD DATAFILE '/oradata/YWPIE/ywpie_data02.dbf'
SIZE 2G AUTOEXTEND ON NEXT 200M MAXSIZE 10G;


2、创建SCHEMA

CREATE USER YWPIE
  IDENTIFIED BY "StrongPass#2025"   #改成自己的复杂密码
  DEFAULT TABLESPACE YWPIE_DATA    #指定表空间为YWPIE_DATA
  TEMPORARY TABLESPACE TEMP
  QUOTA UNLIMITED ON YWPIE_DATA;  #允许用户在该表空间中建表


3、创建业务角色并授权

#创建角色
CREATE ROLE ROLE_YWPIE_APP;

#为角色赋权,这里是常规 OLTP 所需权限
GRANT CREATE SESSION  TO ROLE_YWPIE_APP;
GRANT CREATE TABLE TO ROLE_YWPIE_APP;
GRANT CREATE VIEW  TO ROLE_YWPIE_APP;
GRANT CREATE SEQUENCE  TO ROLE_YWPIE_APP;
GRANT CREATE TRIGGER TO ROLE_YWPIE_APP;
GRANT CREATE PROCEDURE TO ROLE_YWPIE_APP;
GRANT CREATE TYPE TO ROLE_YWPIE_APP;
GRANT CREATE SYNONYM TO ROLE_YWPIE_APP;
GRANT CREATE MATERIALIZED VIEW TO ROLE_YWPIE_APP;

#将角色授予用户
GRANT ROLE_YWPIE_APP TO YWPIE;


4、验证

#登录数据库
sqlplus YWPIE/"Oracle123"

#创建测试表,确认表空间
CREATE TABLE T_YWPIE_TEST (  ID   NUMBER,  NAME VARCHAR2(50));

#查看表属于哪个表空间
SELECT table_name, tablespace_name  FROM user_tables WHERE table_name = 'T_YWPIE_TEST';

文章评论

猜你喜欢

MySQL教程(12)锁的原理与常见锁问题处理

MySQL | Oracle MySQL教程(12)锁的原理与常见锁问题处理

一、数据库锁的作用数据库锁主要用于解决并发问题,当并发操作发生时,数据库依靠锁来控制这些并发请求对资源(锁是针对资源而非事务)的访问规则,因为被上锁的资源不会被其他事务修改,因为可以保证事务之间的隔离...

【MySQL 8.0】MySQL 8.0新特性介绍与升级方法

MySQL | Oracle 【MySQL 8.0】MySQL 8.0新特性介绍与升级方法

一、MySQL 8.0主要新特性截至2023年12月,MySQL官方发布的稳定版为8.0.35,另有一个MySQL8.2为创新版,所以暂不做考虑· 快速新增/删除列虽然 MySQL 在8.0 以前就已...

【MySQL 8.0】MySQL5.7升级MySQL8.0的步骤与常见问题

MySQL | Oracle 【MySQL 8.0】MySQL5.7升级MySQL8.0的步骤与常见问题

一、为什么推荐将MySQL从5.7升级到8.0MySQL5.7的生命周期已经在2023年10月结束,沿用老版本将存在以下问题:· 所有漏洞不再修复,如自增ID回退问题· 核心新特性无法使用,...

MySQL | Oracle Oracle教程(4)快照与AWR报告

Oracle教程(4)快照与AWR报告
Oracle教程(4)快照与AWR报告
Oracle教程(4)快照与AWR报告
Oracle教程(4)快照与AWR报告

一、Oracle 快照Oracle中的快照(Snapshot)是指数据库在某个时间点对性能相关的数据做的一次全量采集。包括:系统资源使用情况、Top SQL、IO 性能指标、SGA、PGA 使用情况。...

Oracle教程(2)Oracle19C命令行静默安装教程

MySQL | Oracle Oracle教程(2)Oracle19C命令行静默安装教程

在部分生产环境下可能并不支持通过图形化方式来安装Oracle数据库(比如需要脚本一键安装的场景),所以还需要了解通过命令行静默安装的方式来完整数据库的安装,以下是详细步骤一、系统环境配置部分1、确定内...