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';

文章评论

猜你喜欢

Oracle教程(6)SGA\PGA\REDO核心参数调优

MySQL | Oracle Oracle教程(6)SGA\PGA\REDO核心参数调优

一、Oracle核心参数介绍1、SGASGA(System Global Area)是 Oracle 实例启动时分配的共享内存区域,所有连接到该实例的会话都共用这块内存,是整个数据库实例对外提供服务的...

Oracle教程(5)数据泵备份教程与实战

MySQL | Oracle Oracle教程(5)数据泵备份教程与实战

一、数据泵介绍数据泵(Data Pump)是 Oracle 10g 开始引入的命令行逻辑备份与恢复工具。通过 expdp / impdp ,可以对所有数据库对象(模式、表数据、表空间等)进行高效导出和...

MySQL教程(13)基于Position或GTID实现主从复制

MySQL | Oracle MySQL教程(13)基于Position或GTID实现主从复制

一、MySQL主从复制概述主从复制是MySQL高可用与横向扩展的基础方案,其核心依赖于 MySQL 自身的 Binlog 机制。主节点的 Binlog 记录了数据库上所有的 DDL 与 DML 操作(...

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 以前就已...