Oracle表空间、用户详解

目录

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

新建连接

工具选择:
我们一般会选择一个工具来连接本地的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://www.rhkb.cn/news/73182.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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页面?

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

Java基础语法练习题

2023.2.18刷题 1、java的4类流程控制语句 解析: java的4类流程控制语句 循环语句:while,for,do while 选择语句(分支语句):if,switch 跳转语句:break,continue,break,label 异常处理…

java里在做TCP通讯的时候,一直报java.net.ConnectException: Connection timed out: connect的错误?

可能的你的ip地址发生了变化: 1.在cmd里面输入: ipconfig 2.找到ipv4地址 3.把客户端的Socket S new Socket("192.168.31.65",10002);的192.168.31.65改成现在的即可。

websock报错:The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for caller

网上看到了一些关于这个错误的产生场景 参考:场景:使用websocket遇到的一个小问题 The remote endpoint was in state [TEXT_PARTIAL_WRITING] which is an invalid stat 我这里产生错误的场景是不同的,记录一下 背景 提供websocket服务的…

神经元模型简单制作方法,神经元的简单模型图解

神经元结构图示 (1)由图一可知,图一结构中涉及到3个神经元,含有2个突触,其中A是轴突(神经纤维),B是树突. (2)图二中①是感受器、②是传入神经、③…

HH神经元模型

1、HH神经元的电路图。 电池表示特定离子的平衡电势,电阻器反映通道对特定离子的渗透性。 电容代表的就是细胞膜,存储电荷,起到了电容的作用。 在这个公式中IL代表的是泄露电流,图中它的电路中就是一个电阻R和一个电源的分路&…

神经网络输出层多个神经元

由于matlab升级,已经不能想以前一样直接在newff函数里面规定好隐含层多少个,或者几层,还可以有多个神经元的输出层。改版后需要输出层变成矩阵的形式,神经网络工具箱可以自动识别输出层有几个神经元。详细代码如何下: …

训练神经网络用什么显卡,cpu可以训练神经网络吗

gpu构架为什么更适合发展神经网络 因为神经网络这种大范围多任务的简单运算来说,正好符合GPU这种多核架构,比如你CPU20核心,同时处理20个任务。但是神经网络可能有20000个任务(比喻)。 但最近比较有代表性的GPU-Nvid…

单个神经元

先来看一下单个神经元网络模型: 其中 xi 表示输入,wi 和 b 表示参数。图中下方的公式是 1 函数的模型,嗯,就是一个线性模型。那么就这么一个简单的线性模型怎么仿真出人类神经元那么复杂的玩意儿呢?一个线性模型当然满…

人工神经元模型及常见激活函数

人工神经元模型 生物学上神经元通常由细胞体,细胞核,树突和轴突构成。 树突用来接收其他神经元传导过来的信号,一个神经元有多个树突; 细胞核是神经元中的核心模块,用来处理所有的传入信号; 轴突是输出信…

神经元是个啥子

空间平面的方程 这是一个似曾相识的方程👇 b ∑ n 1 N x n θ n i n 0 b\sum_{n1}^Nx_n\theta_n\bm{i}_n0 bn1∑N​xn​θn​in​0 没错,它描述了空间中的一个平面。其关于每一个坐标轴都有斜率 θ i \theta_i θi​,而 i n 为 这 个 轴…

神经网络的神经元个数,神经网络每层单元数

1、请问如何确定神经网络控制中网络层数和每层神经元个数 你使用的什么神经网络?如果是RBF神经网络,那么只有3层,输入层,隐含层和输出层。确定神经元个数的方法有K-means,ROLS等算法。 谷歌人工智能写作项目:小发猫 …