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 | Oracle MySQL教程(12)锁的原理与常见锁问题处理
一、数据库锁的作用数据库锁主要用于解决并发问题,当并发操作发生时,数据库依靠锁来控制这些并发请求对资源(锁是针对资源而非事务)的访问规则,因为被上锁的资源不会被其他事务修改,因为可以保证事务之间的隔离...
MySQL | Oracle 【MySQL 8.0】MySQL 8.0新特性介绍与升级方法
一、MySQL 8.0主要新特性截至2023年12月,MySQL官方发布的稳定版为8.0.35,另有一个MySQL8.2为创新版,所以暂不做考虑· 快速新增/删除列虽然 MySQL 在8.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 快照Oracle中的快照(Snapshot)是指数据库在某个时间点对性能相关的数据做的一次全量采集。包括:系统资源使用情况、Top SQL、IO 性能指标、SGA、PGA 使用情况。...
MySQL | Oracle Oracle教程(2)Oracle19C命令行静默安装教程
在部分生产环境下可能并不支持通过图形化方式来安装Oracle数据库(比如需要脚本一键安装的场景),所以还需要了解通过命令行静默安装的方式来完整数据库的安装,以下是详细步骤一、系统环境配置部分1、确定内...
文章评论