加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle体系结构和用户管理

发布时间:2020-12-12 16:31:15 所属栏目:百科 来源:网络整理
导读:Oracle 体系结构和用户管理 一 Oracle 体系结构结构 数据库的体系结构是指数据库的组成,工作过程,以及数据库中数据的组织与管理机制 。 实例和数据库 是 Oracle 数据库体系结构的核心组成部分 1 实例 : Oracle 实例是后台进程和内存结构的集合。必须启动

Oracle体系结构和用户管理

Oracle体系结构结构

数据库的体系结构是指数据库的组成,工作过程,以及数据库中数据的组织与管理机制

实例和数据库Oracle数据库体系结构的核心组成部分

1实例Oracle实例是后台进程和内存结构的集合。必须启动实例才能访问数据中的数据。Oracle实例启动时,将分配一个系统全局去(SGA),并启动一系列Oracle后台进程。一个实例只能打开并使用一个数据库。

Oracle实例有两种类型:单进程实例

多进程实例

2 数据库:数据库是数据的集合,是指存储数据库信息的一组操作系统文件。

Oracle存储结构

物理结构:指构成数据的一组操作系统文件,(主要由3种类型文件组成)

1)数据文件:后缀.dbf,一个数据文件只属于一个数据库和表空间

2)重做日志文件:后缀.log,记录数据库的所有更改 并提供恢复机制。成组出现,最少要两组每组最少一个文件。

3)控制文件:后缀.ctl,保存数据文件和重做日志文件位置、大小、日志序号等信息。启动数据库所必需。至少两份默认有三份控制文件。各个控制文件相同,可以避免因为一个控制文件的损坏而导致无法启动数据库。

上述三种文件缺一数据库都不能启动

4)其他文件:参数文件、归档日志文件、密码文件等

逻辑结构:存放数据的逻辑容器,由大到小为:数据库-表空间-段-区-块

表空间:数据都存储在表空间中,默认有system、temp、undo、users、sysaux、example六个表空间每个数据库中,都有一个名为system的表空间,即系统表空间

:存在于表空间中,一组区组成,存储具体的对象比如表、索引等

区:磁盘分配空间的最小单位

数据块:能读取或写入的最小数据单位

模式:是一种特殊的对象集合,比如用户模式是指用户的所有对象的集合

Oracle内存结构

内存结构是Oracle数据库体系中最为重要的一部分

内存结构:分为系统全局区(SGA)程序全局区(PGA)用户全局区(UGA)

  SGA:共享的内存,存储数据库信息(和数据库无关)。占有最大内存。分共享池、数据缓冲区、重做日志缓冲区、大池、java池等

PGA:不是实例的一部分用户连接后分配的内存,包含服务器进程和后台进程的数据和控制信息

Oracle进程结构

由用户进程、服务器进程、后台进程组成

用户进程:用户连接服务器时启动,比如启动sqlplus时,运行客户端

服务器进程:用户连接成功并连接oracle实例时启动,用户进程的代理

后台进程:实例启动时启动:有5个必须的后台进程:进程监控(PMON)进程、系统监控(SMON)进程、数据写入(DBWR)进程、日志写入(LGWR)进程、检查点(CKPT)进程。

用户管理:

sys用户:超级用户(oracle系统管理员),所有数据字典和视图多存储在sys模式中只能与sysoper和sysdba角色登陆,可以启动关闭数据库

system用户:默认管理员,存储管理工具使用的内部表和视图,可以管理数据库、用户、权限等

scott:示例用户

数据库权限:

系统权限和对象权限

系统权限:执行系统级别的权限,比如连接数据库,创建、修改、删除表等权限。相当于数据定义语言(DDL)和数据控制语言(DCL)的权利。

用户最少需要create session权限才可以连接(登陆)数据库,一般通过角色授予,主要角色有:

connet:拥有连接数据库权限,包含create session权限

resource:拥有创建表等对象的权限,一般授予开发人员

dba:数据库管理员,对数据库有最高权限

对象权限:针对特定模式对象执行操作的权利。相当于数据操纵语言(DML)的权利。比如select、insert等

Oracle中的常用系统预定义角色

CONNECT:拥有连接数据库的权限

RESOURCE:拥有创建表,触发器,过程等权限

DBA:数据库管理员角色,拥有管理数据库的最高权限,一个具有DBA角色的用户可以撤销任何别的用户甚至别的DBA权限,这是很危险的,所以不要轻易授予该角色

Sqlplus方向键解决步骤

:安装readline

OS的安装光盘里提供了readline包.(已安装的话,可以忽略此步)

# RHEL 4

[root@oracle11g ~]# rpm -Uvh readline*

error: Failed dependencies: libtermcap-devel is needed by readline-devel-5.1-1.1.i386.rpm

[root@oracle11g ~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm

[root@oracle11g ~]# rpm -Uvh readline*

package readline-5.1-1.1 is already installed

[root@oracle11g ~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm

# RHEL 5

[root@oracle11g ~]# rpm -ivh readline* libtermcap-devel*

:安装rlwrap

[root@oracle11g ~]# tar -zxvf rlwrap-0.30.tar.gz

[root@oracle11g ~]# cd rlwrap-0.30

[root@oracle11g rlwrap-0.30]# ./configure

[root@oracle11g rlwrap-0.30]# make

[root@oracle11g rlwrap-0.30]# make install

:方便使用rlwrap

[root@oracle11g rlwrap-0.30]# vi /home/oracle/.bash_profile

添加

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman' Linux下的SQL Plus 终于可以像Windows下的那样使用了。

首先由root用户切换到Oracle用户下

# su - oracle

wKiom1kyKdCiHBFTAADJFfKvl8Y238.png

创建表空间tbs_work

wKioL1kyKdGyjPcZAACK1dAUDLQ614.png

更改表空间大小

方法二:向表空间内添加数据文件,为表空间添加一个新的数据文件

wKioL1kyKdHSdScCAAA7uOX1X1o943.png

查询系统所有的表空间名称和文件位置

wKiom1kyKdKTRk37AABgx-JYm1g308.png

删除表空间

wKioL1kyKdKw7zvmAAAVW0JnbJA048.png

创建用户cyy,默认表空间为tbs1_work,临时表空间,配额50m,必须改密码

wKiom1kyKdKQ6GkjAAAtdA9085g323.png

查当前用户所属表空间,sys用户可以查dba_users里所有用户的表空间

wKiom1kyKdPxAS2fAAAwoH_gjWI167.png

授予用户连接数据库角色和创建表的系统权限

wKioL1kyKdPwaYU9AAAgjf2JUZI359.png

授予用户有查看scott模式下的emp表的对象权限,用on ... to ...的方式

wKioL1kyKdPzEygRAAAfpVS26Ns584.png

撤销用户权限

revoke update on scott.emp from cyy;

查看对象权限

wKiom1kyKdTQioPjAAAXIwkvzI8098.png

查看用户系统权限

wKioL1kyKoPgA-_wAAAPAKPTnR8426.png

查看用户角色权限

wKiom1kyKoPC4mGfAAApQZfcThY426.png

查看当前用户模式下的所有对象

wKioL1kyKoTCM1sUAAAS4XW5as8081.png

查看当前用户模式下的所有表

wKiom1kyKoSic6kKAAASqzPp1Dk989.png

wKiom1kyKoWw2XoFAACosutAkrU769.png

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读