Oracle表空间、用户详解

article/2025/11/9 13:58:42

目录

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

新建连接

工具选择:
我们一般会选择一个工具来连接本地的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会自动创建一个
  • 在指定表空间的数据文件的时候,可以指定多个数据文件

查看表空间:

SELECTt.tablespace_name,-- 表空间t.file_name,-- 文件名t.autoextensible,-- 是否自增t.bytes / 1024 / 1024 "SIZE(M)",-- 初始值t.increment_by * 8 / 1024 "NEXT(M)",-- 步长 1blok = 8KBt.maxbytes / 1024 / 1024 "MAXSIZE(M)" -- 最大值FROMdba_data_files t 
WHEREt.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* 
    FROMdba_data_files;
    
  • 查询表空间

    SELECT* 
    FROMdba_tablespaces;
    SELECT* 
    FROMdba_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 ) "占比(%)" 
    FROMdba_tablespaces dt,temp_data_files tdf,temp_free_space tfs WHEREtdf.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* 
FROMdba_users t 
WHEREt.username = 'TEST';

查看当前用户的的权限:

SELECT* 
FROMuser_role_privs;SELECT* 
FROMsession_privs

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

SELECT* 
FROMuser_sys_privs;SELECT* 
FROMuser_tab_privs;

查看所有用户:

SELECT* 
FROMdba_users;
SELECT* 
FROMall_users;
SELECT* 
FROMuser_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://chatgpt.dhexx.cn/article/F1sFmLe0.shtml

相关文章

49-Linux_malloc及4G虚拟空间分布

文章目录 malloc及4G虚拟空间分布1.malloc2.32位操作系统进程的4G虚拟空间分布1) 代码区(Text egment):2) 全局初始化数据区/静态数据区(Data Segment)3) 未初始化数据区(BSS):4) 堆区(heap):5) 栈区(stack): malloc及4G虚拟空间分…

(微信开发)Laya转发H5网页到微信,带图片

网页转发到微信时,带图片和自定义标题。2022年11月22号 关键解说 _wx.config({ debug: _wx_configdebug, appId: e.appId, timestamp: e.timestamp, nonceStr: e.nonceStr, signature: e.signature, jsApiList: [ // 所有要调用的 API 都要加到这个列表中 ‘onMen…

移动端H5页面开发的几种方法

单位: px 宽度百分比,高度px 在不同屏幕下的效果是不一样的,可用媒体查询(media)对不同宽度的手机进行适配,麻烦,不推荐使用 单位:rem 1、flexible 用法:https://blog.c…

H5页面调用微信支付

1、H5页面使用微信支付,首先需要注册微信公众号,在设置与开发>公众号设置>功能设置中配置业务域名、JS接口安全域名、网页授权域名。支付功能页面需在此域名链接下的页面。 2、加入域名后,就可以在H5页面调用微信支付功能。首先请求后台…

H5实现移动端,PC端页面分享

想做个页面分享功能,既要兼容移动端,也要兼容PC端。 找了一轮,决定PC端用百度分享的api: http://share.baidu.com/code/advance 移动端一开始想用soshm.js,发现ios没问题,但安卓手机在微信上点微博完全没…

app端内h5页面使用微信h5支付

app端内h5页面使用微信h5支付 app端内h5页面使用微信h5支付一、起初使用的方法二、解决方法三、最后 app端内h5页面使用微信h5支付 一、起初使用的方法 在对接支付宝支付的时候,我是使用window.open()直接打开后端返回的链接,完全没有任何问题&#xf…

H5页面内嵌到微信小程序和APP,做分享操作

前言 最近接到项目新需求,H5项目需要内嵌到微信小程序和APP里,然后将H5页面分享出去,被分享的人可以点击消息跳转到H5页面。H5页面不难,难的是要与微信小程序和APP进行交互,因为以前也没有接触过,所以这里…

H5及H5页面是什么意思?如何制作H5页面?

H5是HTML5的简称。HTML5是HTML最新的修订版本,是一种超文本标记语言。H5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加了本地数据库等 Web 应用的功能。 H5页面就是利用html5制作出来的页面,尤其在微信中发展…

拿走!H5版本ChatGPT开源等你

近些日子忙里偷闲的研究chatGPT,也小弄了一个公众号版本,一个H5版本的,现在H5版本的也就是开放给大家体验的版本,还不知道的伙伴可以关注#公众号:李连活,回复“888”领取体验,和AI畅快聊天问答。…

不懂技术,如何轻松制作微信H5页面?

H5这个由HTML5简化而来的词汇,正通过微信广泛传播。H5是集文字、图片、音乐、视频、链接等多种形式的展示页面,丰富的控件、灵活的动画特效、强大的交互、实现信息传播,非常适合通过手机的展示、分享。也因其灵活性高、开发成本低、制作周期短…

关于浏览器加载不出图片的问题

刚刚才解决 幸好有截图,不然口说无凭了 分割线 我试过上网搜过问题,但是好像都没什么用 接连好多次这样加载图片加载不出来,我就开始想怎么解决了 今天灵机一动,是不是图片的缓存这些太多,导致浏览器加载不出来呢。…

解决loadrunner 12 录制时打不开Chrome谷歌浏览器,显示正在加载中的问题

解决loadrunner 12 录制时打不开Chrome谷歌浏览器,显示正在加载中的问题 刚开始学习loadrunner,安装了loadrunner 12,录制时浏览器一直显示正在加载… 看到网上有人说录制的时候打开Fiddler就可以了,试了下确实可以。但如果录制的…

chrome插件与本地exe程序之间的信息交互

一、概述 如果想要通过本地exe程序与chrome插件之间的通信,我们需要利用到NativeMessage。 具体环境与实现步骤见下文。 二、环境 1. window10操作系统 2. chrome浏览器 3. pycharm 三、实现步骤 1. 自己编写一个chrome插件 chrome插件的开发详细步骤与文件结构可…

win10更新后 chrome内核浏览器总是打开网页一直加载 甚至打不开 解决方法

升级win10之后如果出现chrome内核的浏览器网页总是打不开 打开很慢 而ie和edge是可以正常访问的 用这个方法可以 我弄了几天终于 搞好了 我直接转载过来了 近期,工程师收到大量反馈360浏览器,极速模式无法打开网页,兼容模式无此问题。 IE浏览…

客户端工具登录异常问题分析

1、首先判断是用户名密码是否错了; 2、在用户名密码正确的前提下,需要查看oninit程序的权限是否正确。如果权限异常,也会存在上述问题的 1、通常可以理解成informix弱口令的问题,调整弱口令之后,等几分钟即可

(十)服务端异常退出

(十)服务端异常退出 之前讲解了客户端异常退出的代码,但是服务端也是会异常退出的。如果服务端异常退出,它会将所有在线的客户的状态都设置为offline。即,让所有用户都下线。 异常退出一般是CTRL C时,我们…

统一异常处理 GlobalExceptionHandler

平时经常在代码里面 try {... } catch (Exception e) {... }这样子代码繁琐而且也不好看。特别是还有一些需要自己new一个map封装业务的异常信息,是在是难看。所以就需要引出全局异常。经过一些封装,就可以实现这样的效果了。 还是看代码吧&#xff01…

【异常】使用ApiFox客户端提示 “ 加载出错,请检查网络是否异常”,但是Web端是正常访问的

一、报错内容 提示内容类似于如下:连接Apifox服务器出错,请检查网络是否异常 二、报错说明 可能是因为APIFOX升级版本了,导致的问题,目前没有找到根因 三、报错解决 3.1 解决方案 1 使用Chrome的插件——Apifox Agent&#…

(七)客户端异常退出事件处理

如果客户端异常退出了,我们会从服务端记录用户连接的 _connMap 表中找到改用户,如果它断连了就从此表中删除,并设置其状态为 offline。 因为记录用户连接情况的表是可能被多个线程操作的,所以访问表的操作都要使用互斥锁进行保护。…

彻底解决aapt2异常

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) from:https://blog.csdn.net/qq_34879948/article/details/80313690 升级android studio 3.0后,在创建新项目时会报一个异常&#xff0c…