欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

初识Oracle 自己的一些见解

程序员文章站 2022-03-07 14:25:30
...

Oracle 介绍

Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库
管理系统。它是在数据库领域一直处于领先地位的产品。可以说 Oracle 数据库系统是目前
世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、
中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。作
为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功
能。但它的所有知识,只要在一种机型上学习了 ORACLE 知识,便能在各种类型的机器上使
用它

表空间管理

表空间是 Oracle 对物理数据库上相关数据文件(ORA 或者 DBF 文件)的逻辑映射。一个
数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结
构。每个数据库至少有一个表空间(称之为 system 表空间)。 每个表空间由同一磁盘上的
一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空
间,一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文
件,只能删除其所属于的表空间才行,表的数据,是有用户放入某一个表空间的,而这个
表空间会随机把这些表数据放到一个或者多个数据文件中。

初识Oracle 自己的一些见解
一个数据库下可以建立多个表空间,一个表空间可以建立多个用户、一个用户下可以建立

Oracle 表空间分类

类别 举例 说明
永久性表空间 SYSTEM,USERS 一般保存表、视图、过程和索引等的数据
临时性表空间 TEMP 只用于保存系统中短期活动的数据
撤销表空间 UNDO 用来帮助回退未提交的事务数据

一般不需要建临时和撤销表空间,除非把它们转移其他磁盘中以提高性能

什么时候创建表空间?
为不同的子系统创建独立的表空间,子系统的表或者数据会单独存在某个表空间中,方便备份或转移等操作

创建表空间

--语法:
CREATE TABLESPACE tablespacename
DATAFILE 'filename' [ SIZE integer [ K | M ] ]
[ AUTOEXTEND [ OFF | ON ] ] ;
}
``--示例:
--创建表空间
create tablespace HrSys datafile 'e:\data\HrSys.dbf' -- 文件位置 ? 先创建文件夹
size 100m -- 初始大小 autoextend on -- 开启自动增长 next 10m; --每次增长大小
LOGGING -- 记录日志
	
	--调整表空间的大小
--方法一:更改数据文件的大小
ALTER DATABASE DATAFILE 'e:\data\HrSys.dbf'
RESIZE 80M;
--方法二:向表空间内添加数据文件
ALTER TABLESPACE HrSys ADD DATAFILE 'e:\data\HrSys02.dbf'
SIZE 20M AUTOEXTEND ON;

删除表空间前先备份再删除,通过 DROP TABLESPACE 命令创建表空间

-- 只删除表空间 不删除数据文件
DROP TABLESPACE HrSys
/* ======================================
| 删除表空间时同时删除里面的数据文件
====================================== */
DROP TABLESPACE HrSys INCLUDING CONTENTS AND DATAFILES

用户管理

用户是在实例下建立的。不同实例可以建相同名字的用户。SYS 和 SYSTEM 用户都是Oracle 的系统用户,它们都使用 SYSTEM 表空间,SYS 拥有更大的权限。

sys用户 SYSTEM
地位 Oracle 的一个超级用户 Oracle 默认的系统管理员,拥有 DBA 权限
作用 主要用来维护系统信息和管理实例 通常用来管理 Oracle 数据库的用户、权限和存储等
登录身份 只能以 SYSDBA 或 SYSOPER 角色登录 只能以 Normal 方式登录

创建用户

-- 创建用户
CREATE user ktedu identified BY ktedu123
-- 创建用户 A_Hr 并指定表空间为 kttbs
CREATE user A_Hr identified BY hr123 DEFAULT TABLESPACE kttbs
--修改密码
ALTER USER A_Hr IDENTIFIED BY hr123456
-- 删除用户
DROP USER A_Hr
-- 删除用户以及用户下的对象
DROP USER A_Hr CASCADE

权限和角色管理

权限指执行特定类型 SQL 命令或访问其他对象的权利,用户必须赋予相应的权限权限分为系统权限和对象权限,系统权限允许用户执行某些数据库操作,对象权限允许用户对某一特定对象执行特定的操作。
为了简化权限管理,引入了角色的概念,角色是具有名称的一组权限的组合,常用系统
预定义角色:
CONNECT:是授予最终用户的典型权利,最基本的,包括以下权限
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE:更为可靠和正式的用户,是授予开发人员的,包括以下权限
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
DBA:数据库管理员角色,拥有管理数据库的最高权限,只有 DBA 才可以创建数据库结构,并且系统权限也需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除。
对于普通用户:授予 connect, resource 权限。对于 DBA 管理用户:授予 connect,
resource, dba 权限。
语法:

--分配权限或角色
GRANT privileges or role TO user;
--撤销权限或角色
REVOKE privileges or role FROM user;

示例:

--分配权限或角色
GRANT connect, resource TO ktedu ;
--撤销权限或角色
REVOKE resourceor FROM ktedu ;

自定义角色并给用户赋指定的角色

  1. 建一个角色
    create role role1;
  2. 授权给角色
    grant create any table,create procedure to role1;
  3. 授予角色给用户
    grant role1 to Hr;
    1. 查看角色所包含的权限
      select * from role_sys_privs;
  4. 锁住用户
    alter user liumingcheng account lock;
  5. 启用用户
    alter user liumingcheng account unlock;

角色的概念可以理解为是一组权限,然后取了一个名字,可以把这个组合也就是角色赋给用户;

相关标签: Oracle sql