Oracle 数据库特点
- Oracle数据库具有完整的数据库管理功能、完备关系的产品以及具有分布式处理能力的数据库
- Oracle对数据的可靠性、大量性、持久性、共享性提供了一套可靠的解决方案、而且可以轻松支持多用户、大事务量的事务处理。
- Oracle的优点就是可用性强、可扩展性强、数据安全性强、稳定性高,并且提供了一套严禁的逻辑结构、文件结构、相关恢复技术的解释和实现。
Oracle体系结构
- Oracle数据库实际上是一个数据的物理储存系统,这其中包括数据文件(ora/dbf)、参数文件、控制文件、联机日志等。
Oracle实例
- 一个操作系统只有一个Oracle数据库,但是可以安装多个Oracle实例,一个Oracle实例对应着一系列的后台进程(
Backguound Processes )和内存结构(Memory Structures )。
Oracke数据文件
- Oracle数据文件是数据存储的物理单位,数据库的数据是存储在表空间中的
- 一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间,一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行
Oracle表空间
- 表控件是Oracle对物理数据库数据文件(ora/dbf)的逻辑映射
- 一个数据库在逻辑上被划分成一到若干个表空间,每个表空间由同一磁盘上的一个或多个数据文件(datafile)组成,一个数据文件只能属于一个表空间。
Oracle用户
- Oracle用户可以存放数据到到表空间当中的,这些表空间会随机的把数据放入到一个或者多个数据文件当中
- oracle对表数据的管理是通过用户对表的管理去查询,而不是直接对数据文件或表空间进行查询
- 不同用户可以在同一个表空间上面建立相同的表名。但是通过不同的用户管理自己的表数据。
数据结构逻辑关系图
Oracle体系概要图
Oracle用户
- 在现实环境中一个服务器一般只会安装一个Oracle实例,一个Oracle用户代表着一个用户群,他们通过该用户登录数据库,进行数据库对象的创建、查询等开发。
- 每一个用户对应着该用户下的N多对象,因此,在实际项目开发过程中,不同的项目组使用不同的Oracle用户进行开发,不相互干扰。
- 一个Oracle用户既是一个业务模块,这些用户群构成一个完整的业务系统,不同模块间的关联可以通过Oracle用户的权限来控制,来获取其它业务模块的数据和操作其它业务模块的某些对象。
Oracle用户创建
create user ryx--用户名
identified by "123456"--密码
default tablespace USERS--表空间名
temporary tablespace temp --临时表空间名
profile DEFAULT --数据文件(默认数据文件)
account unlock; -- 账户是否解锁(lock:锁定、unlock解锁)
上面语句可以创建一个ryx用户,但是该用户现在还不能登录数据库,因为它没有登录数据库权限,最少他需要一个create session系统权限才能登录数据库。
用户权限
- Oracle 数据库用户权限分为:系统权限和对象权限两种
- 系统权限:比如:
create session 可以和数据库进行连接权限,create table,create view 等具有创建数据库对象权限 - 对象权限:比如:对表中数据进行增删改查操作,拥有数据库对象权限的用户可以对所拥有的对象进行相应的操作
数据库角色
- oracle数据库角色是若干系统权限的集合,给oracle用户进行授权数据库角色就是等于赋予该用户若干数据库系统权限
常用的数据库角色如下
CONNECT角色 :connect角色 是Oracle用户的基本角色,connect 权限代表着用户可以和Oracle 服务器进行连接,建立`session(会话)RESOURCE角色 :resouce角色是开发过程中常用的角色,resouce 给用户提供了可以创建自己的对啊ing,包括表,视图,序列,过程,触发器,索引,包,类型等DBA 角色:DBA角色是管理数据库管理员该有的角色,拥有系统所有的权限和给其他用户授权的权限,SYSTEM 用户就具有`DBA权限
在开发中可以根据需求将某个角色或系统权限赋予某个用户,但是系统权限只能通过DBA用户授权, 对象权限拥有该对象权限的对象授权(不一定是本身对象), 用户不能自己给自己授权
Oracle 授权
授权语法
--GRANT 对象权限 on 对象 TO 用户
grant select, insert, update, delete on JSQUSER to STUDENT;
--GRANT 系统权限 to 用户
grant select any table to STUDENT;
--GRANT 角色 TO 用户
grant connect to STUDENT;--授权connect角色
grant resource to STUDENT;--授予resource角色
取消用户权限
-- Revoke 对象权限 on 对象 from 用户
revoke select, insert, update, delete on JSQUSER from STUDENT;
-- Revoke 系统权限 from 用户
revoke SELECT ANY TABLE from STUDENT;
-- Revoke 角色(role) from 用户
revoke RESOURCE from STUDENT;
其他用户操作
--修改用户信息
alter user STUDENT
identified by ****** --修改密码
account lock;--修改用户处于锁定状态或者解锁状态 (LOCK|UNLOCK )
SQL 语句
- SQL语句可以对Oracle进行对象创建、删除,数据的插入、删除、更新,以及数据库的管理等操作,
- SQL是一个结构化的的查询语言(Structured Query Language ),不仅仅适用于ORACLE数据库,再其它的数据也适用。
- 在 Oracle 开发中,客户端把 SQL 语句发送给服务器,服务器对 SQL 语句进行编译、执行,把执行的结果返回给客户端
SQL语句的分类
- 数据定义语言(DDL),包括 CREATE(创建)命令、 ALTER(修改)命令、 DROP(删除)命令等。
- 数据操纵语言(DML),包括 INSERT(插入)命令、 UPDATE(更新)命令、 DELETE(删除)命令、 SELECT … FOR UPDATE(查询)等。
- 数据查询语言(DQL),包括基本查询语句、 Order By 子句、 Group By 子句等。
- 事务控制语言(TCL),包括 COMMIT(提交)命令、 SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
- 数据控制语言(DCL), GRANT(授权)命令、 REVOKE(撤销)命令。
|