Oracle表空间、用户详解

news2024/11/26 0:32:07

目录

  • 新建连接
  • 三者关系
  • 表空间
    • 创建表空间
    • 修改表空间和数据文件
      • 修改数据文件容量
      • 新增表空间的数据文件
      • 重命名数据文件
      • 修改表空间状态
      • 修改数据文件状态
    • 删除表空间
    • 查询
  • 用户
    • 创建
    • 删除
    • 查询
    • 修改

新建连接

工具选择:
我们一般会选择一个工具来连接本地的Oracle,而我这里选择的是Navicat 15 ——


开启服务:
为了Navicat能连接上Oracle,我们需要本地开启Oracle服务(因为Oracle很占内存,所以一般不会设置自动启动)。

wins键——服务——开启服务

只要把这几个启动了,就可以连接了(我也不清楚哪几个是必须的,如果还是连接不了,就把所有的Oracle服务都启动就没问题了)。


新建连接:

  • 我们先登录 system 用户,因为它拥有普通dba角色权限

    Oracle用户权限说明: http://www.kaotop.com/it/171606.html

  • 注意1: 如果你之前已经建立了一个Oracle连接,然后你想直接修改连接的用户来登录其他用户,那么其会报错:
所以,请新建一个连接。
  • 注意2: 有些小伙伴就要问了,凭什么非要用 System 登录呢,是看不起我们的 SCOTT 或者 SH 吗?
    因为它们没有权限呀:

    select * from user_sys_privs;
    

    Oracle数据库权限一览表: https://blog.csdn.net/oYinHeZhiGuang/article/details/104718403

    如果直接用 SCOTT 创建表空间或者用户,会报错:ORA-01031: 权限不足

三者关系

先来说明一下表空间、用户和表的关系,其关系如下:

一个表空间下面可以有多个用户,而一个用户下面可以有多张表。

  • 表空间:数据库数据的物理存储空间
    那些后缀名为 .DBF 的文件就是表空间
  • 用户:可以通过用户操作数据库(前提是该用户有相应权限)
    创建用户必须为其指定表空间,如果没有显性指定表空间,则默认指定为 USERS 表空间
  • 表:数据记录的集合

通过对这三者的关系分析,可知道创建流程:创建表空间 → 创建用户 → 创建表。

表空间

表空间与数据库的关系:


创建表空间

创建表空间: 创建一个初始大小为20MB,每次扩容4M,最大容量为40MB的表空间。

注意: 在创建表空间的时候,一定要指定数据文件路径

-- 创建表空间 HIPAY
create tablespace hipay
-- 指定表空间属下的数据文件,初始化容量为 20MB
datafile 'D:\Applications\orcl\oradata\orcl\TEST.dbf' size 20m
-- 设置数据文件为自动扩容,每次扩容为4MB,最大容量为40MB
autoextend on next 4m maxsize 40m
  • Oracle大小写敏感,且默认会将表空间名、用户名、表名、字段名转换为大写
  • 如果不想名称转换为大写,可以在创建的时候,给名称加一个 "" 包起来,查询的时候用''包起来
  • 指定表空间的数据文件,可以指定已经存在的数据文件,也可以指定一个不存在的,然后Oracle会自动创建一个
  • 在指定表空间的数据文件的时候,可以指定多个数据文件

查看表空间:

SELECT
	t.tablespace_name,-- 表空间
	t.file_name,-- 文件名
	t.autoextensible,-- 是否自增
	t.bytes / 1024 / 1024 "SIZE(M)",-- 初始值
	t.increment_by * 8 / 1024 "NEXT(M)",-- 步长 1blok = 8KB
	t.maxbytes / 1024 / 1024 "MAXSIZE(M)" -- 最大值
	
FROM
	dba_data_files t 
WHERE
	t.tablespace_name = 'HIPAY';

创建表空间官方文档: https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/CREATE-TABLESPACE.html

修改表空间和数据文件

修改数据文件容量

  • 修改数据文件大小:
    修改数据文件初始大小为 10MB
    ALTER database datafile 'D:\Applications\orcl\oradata\orcl\TEST.dbf' resize 10m;
    
  • 修改数据文件自动扩容:
    每次扩容10MB,最大容量为500MB,可以把500m换成 unlimited,即无上限
    ALTER database datafile 'D:\Applications\orcl\oradata\orcl\TEST.dbf' autoextend ON NEXT 10m maxsize 500m;
    

新增表空间的数据文件

HIPAY 新增一个容量为 20MB 的数据文件。

ALTER tablespace "HIPAY" ADD datafile 'D:\Applications\orcl\oradata\orcl\TEST01.dbf' SIZE 20M;

重命名数据文件

ALTER tablespace HIPAY RENAME datafile 'D:\Applications\orcl\oradata\orcl\TEST01.dbf' TO 'D:\Applications\orcl\oradata\orcl\TEST02.dbf';

修改表空间状态

  • 离线状态:

    ALTER tablespace HIPAY OFFLINE;
    
  • 在线状态:

    ALTER tablespace HIPAY ONLINE;
    

    oracle表空间offline的三种方式区别: https://blog.51cto.com/jiujian/1033891

  • 只读状态:

    ALTER tablespace HIPAY read ONLY;
    
  • 可读写状态:

    ALTER tablespace HIPAY read write;
    

注意:离线状态不可设置只读,只有在只读状态才可修改为可读写,因为默认可读写。


修改数据文件状态

  • 离线状态:
    设置数据文件为离线状态需要先设置表空间为离线状态

    ALTER tablespace HIPAY OFFLINE;
    ALTER database datafile 'D:\Applications\orcl\oradata\orcl\TEST.dbf' OFFLINE;
    
  • 在线状态:

    ALTER database datafile 'D:\Applications\orcl\oradata\orcl\TEST.dbf' ONLINE;
    
  • 删除数据文件:

    ALTER database datafile 'D:\Applications\orcl\oradata\orcl\TEST.dbf' OFFLINE DROP;
    

删除表空间

  • 脱机(表空间为空)

    DROP tablespace hipay;
    
  • 脱机(表空间有数据)

    DROP tablespace hipay including contents;
    
  • 完全删除(表空间与数据文件)

    DROP tablespace hipay including contents and datafiles;
    

查询

  • 查询数据文件

    SELECT
    	* 
    FROM
    	dba_data_files;
    
  • 查询表空间

    SELECT
    	* 
    FROM
    	dba_tablespaces;
    SELECT
    	* 
    FROM
    	dba_free_space;
    
  • 查看表空间的使用情况

    WITH temp_data_files AS ( SELECT ddf.tablespace_name, sum( bytes ) total FROM dba_data_files ddf GROUP BY ddf.tablespace_name ),
    temp_free_space AS ( SELECT dfs.tablespace_name, sum( bytes ) free FROM dba_free_space dfs GROUP BY dfs.tablespace_name ) SELECT
    dt.tablespace_name 表空间名称,
    dt.contents 类型,
    ( tdf.total / 1024 / 1024 ) "总大小(M)",
    ( tfs.free / 1024 / 1024 ) "空闲(M)",
    round( ( tdf.total - tfs.free ) / 1024 / 1024, 2 ) "已使用(M)",
    round( ( tdf.total - tfs.free ) / tdf.total * 100, 2 ) "占比(%)" 
    FROM
    	dba_tablespaces dt,
    	temp_data_files tdf,
    	temp_free_space tfs 
    	
    WHERE
    	tdf.tablespace_name = dt.tablespace_name 
    	AND tfs.tablespace_name = dt.tablespace_name;
    

用户

创建

用户的创建依赖于表空间,所以在创建用户的时候需要指定表空间(默认为 USERS):

-- 创建test用户,密码为123456
CREATE USER test IDENTIFIED BY 123456
-- 默认表空间
DEFAULT tablespace hipay
-- 临时表空间
temporary tablespace temp
-- 表空间额度
quota unlimited ON hipay;

-- 授权(可以登录)
GRANT CREATE SESSION TO test;

## 查询

删除

DROP USER test cascade;

查询

查看用户:

SELECT
	* 
FROM
	dba_users t 
WHERE
	t.username = 'TEST';

查看当前用户的的权限:

SELECT
	* 
FROM
	user_role_privs;
	
SELECT
	* 
FROM
	session_privs

查看当前用户的系统权限和表级权限:

SELECT
	* 
FROM
	user_sys_privs;

SELECT
	* 
FROM
	user_tab_privs;

查看所有用户:

SELECT
	* 
FROM
	dba_users;
SELECT
	* 
FROM
	all_users;
SELECT
	* 
FROM
	user_users;

修改

修改密码:

ALTER USER test IDENTIFIED BY 234556;

设置权限:

GRANT CONNECT,
RESOURCE TO test;

撤销权限:

REVOKE CONNECT,
RESOURCE FROM test;

Oracle数据库权限一览表: https://blog.csdn.net/oYinHeZhiGuang/article/details/104718403

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

老男孩k8s笔记

1.docker常用操作,挂载,环境变量,容器内安装应用,提交镜像 2.trefik部署: k8s部署traefik_weixin_30916125的博客-CSDN博客 3.删除节点后重新加入 k8s node节点删除并重新加入_人生匆匆的博客-CSDN博客 4.mariDB配置…

streamlit+ndraw进行可视化训练深度学习模型

简介 如果你喜欢web可视化的方式训练深度学习模型,那么streamlit是一个不可错过的选择! 优点: 提供丰富的web组件支持嵌入python中,简单易用轻松构建一个web页面,按钮控制训练过程 本文使用streamlit进行web可视化…

会议管理系统SSM记录(一)

目录: (1)环境搭建 (2)整合MyBatis (1)环境搭建 添加:package 配置成web的结构: pom先加入springmvc的依赖就可以实现spring和springmvc的整合 pom.xml中加入依赖&am…

接口的定义与实现

声明类的关键字是class,声明接口的关键字是interface 1.介绍 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范 |自己无法写方法,专业的约束 接口就是规范,…

MATLAB | 全网唯一 MATLAB双向弦图(有向弦图)绘制

先赞后看,养成习惯~~ 先赞后看,养成习惯~~ 先赞后看,养成习惯~~ 绘制效果 下面这款弦图我已经出了很久了,也陆陆续续增添了新的功能和修了一些bug: 甚至还用它做出了一些复刻,分成两组的弦图有了后就有很多…

【仿真建模】AnyLogic入门基础教程 第一课

文章目录一、AnyLogic介绍二、设置2.1 设置中文三、新建项目四、行人库介绍五、创建新行人六、切换3D视角七、增加墙八、行人密度图一、AnyLogic介绍 二、设置 2.1 设置中文 三、新建项目 四、行人库介绍 点击面板,选择第三个图标,就是行人库 行人库分…

【第五部分 | JS WebAPI】4:八千字详解 “事件·高级篇”

目录 | 概述 | 注册事件的两种方式 | 删除事件的两种方式 | 事件对象【重要】 事件对象简介和声明 e.target 和 this 的区别 [ 事件对象 的常用属性方法 ] | Dom事件流 什么是Dom事件流? 阻止默认行为 阻止事件冒泡 利用事件冒泡进行事件委托 | 常用的鼠…

1、Git相关操作

目录 一、远程库的拉取 二、远程库创建分支 声明:需要有一定的GIt基础,如果不懂可以自行查看个人学习的Git笔记或者可以通过其他途径学习Git 一、远程库的拉取 步骤: 先创建一个空的文件夹在创建的文件夹中使用git init 命令来初始化本地…

频域中的后门攻击论文笔记

文章一:Rethinking the Backdoor Attacks’ Triggers: A Frequency Perspective 文章贡献: 在频域上对现有的 backdoor trigger 进行分析,发现常见 trigger 存在 high-frequency artifacts 的问题。对这些 artifacts 进行了详细的分析展示了…

什么是中间件

一、什么是中间件 中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平…

企业内训app源码,在线培训小程序,随时随地想学就学

近年来,在线学习逐渐被广泛应用于人才培养领域。公司要想长远发展,内部培训必不可少。公司的发展离不开公司整体员工的进步,而人员管理往往是公司管理中最重要也最难的一个环节。许多公司开始通过企业内训app源码开发来优化公司人员管理方式、…

基于PHP+MySQL学生信息管理系统的设计与实现

我国是一个高等教育逐渐普及的国度,相应的每年也有上百万的大学生入校,如此庞大的学生数量如何进行更加科学的管理是教育工作者一直关心的一个问题,为了能够实现高校对学生信息管理的科学化,信息化,我们开发了本基于PH…

C++ 手动实现双向链表(作业版)

双向链表&#xff0c;并实现增删查改等功能 首先定义节点类&#xff0c;类成员包含当前节点的值&#xff0c; 指向下一个节点的指针和指向上一个节点的指针 //节点定义 template <typename T> class Node { public:Node<T>* prior;T value;Node<T>* next;N…

减少乘法次数的优化算法(Gauss、Strassen、Winograd)

目录 Gauss算法 Strassen算法 Winograd算法 Winograd 1D Winograd 2D 在硬件设计中&#xff0c;乘法无论是在逻辑资源的使用上还是组合逻辑的延时上都要比加法高很多。从硬件方面考虑&#xff0c;我们都更倾向于将乘法转换成移位和加法&#xff0c;譬如乘以8&#xff0c;可…

stm32项目平衡车详解(stm32F407)

stm32项目 stm32项目介绍值平衡车 本文章学习借鉴于创客学院团队&#xff0c;以表感谢。教学视频 文章目录stm32项目前言一、平衡小车平衡小车的功能介绍平衡小车功能开发需求平衡小车整体框架小车环境数据采集进程1. 平衡小车姿态信息介绍2. 平衡小车项目工程框架搭建3. Mpu6…

【面试题】原型和原型链

1. 如何用class实现继承 // 父类 class People{constructor(name){this.name name}eat(){console.log(${this.name} eat something)} }// 子类 class Student extends People{constructor(name, number){super(name)this.number number}sayHi(){console.log(姓名&#xff1a…

自动化脚本如何切换环境?Pytest这些功能你必须要掌握

文章目录一、前言二、安装三、使用第1种:使用方式是终端添加–base-url这个命令第2种:使用方式是在pytest.ini配置文件种去配置base_url,然后自动读取url的数据&#xff0c;这样就不用添加–base-url这个命令行参数了&#xff1a;第3种:pytest有个hooks函数&#xff0c;可以自定…

最优二叉搜索树问题(Java)

最优二叉搜索树问题&#xff08;Java&#xff09; 文章目录最优二叉搜索树问题&#xff08;Java&#xff09;1、前置介绍2、算法设计思路2.1 最优二叉搜索树的结构2.2 一个递归算法2.3 计算最优二叉搜索树的期望搜索代价3、代码实现4、复杂度分析5、参考资料1、前置介绍 设S{x…

R语言探索 BRFSS 数据和预测

加载包 library(ggplot2) library(dplyr) library(Hmisc) library(corrplot) 加载数据 load("brfss2013.RData") 第1部分&#xff1a;关于数据 行为风险因素监测系统&#xff08;BRFSS&#xff09;是美国的年度电话调查。BRFSS旨在识别成年人口的风险因素并报告…

docker启动出现Error response from daemon: Cannot restart container的报错

1、发现问题 突然发现启动(重启)容器的时候报这个错 Error response from daemon: Cannot restart container 容器id: driver failed programming external connectivity on endpoint 容器名 (容器id): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --…