oracle相关概念简述
1.oracle体系结构简述
oracle体系结构分为三个大类,包括:进程结构(用户进程、服务器进程、后台进程),内存结构(SGA和PGA),存储文件(数据文件、控制文件、日志文件)。其中用户进程是指用户到数据库的连接,用户进程处理用户的输入并与Oracle服务器通信。后台进程至少有5个进程:SMON(系统监控进程)、PMON(进程监视进程)、DBWN(数据库写入进程)、LGWR(日志写入进程)、CKPT(检查点进程)
服务器进程负责检索数据并返回,并修改缓冲区的数据。PGA则是指程序全局区,SGA则是指系统全局区。PGA是指被一个进程使用的私有区域。而SGA则是几个进程共享。PGA在进程创建时分配,在终止进程是回收,而SGA在启动Oracle实例时被分配,在关闭Oracle实例时被释放。
注:Oracle实例与数据库,oracle实例只短暂存在于RAM和CPU中。数据库(database)由磁盘上的物理文件组成,Oracle实例和数据库合起来又构成了Oracle数据库服务器。
2.oracle启动与关闭
.Oracle数据3种启动方式和4种关闭方式联系(abort关闭方式不用练习)。
练习完后把其中的其中的原理写在txt文档里面。(写出自己的想法)
3种启动方式:
nomount: 一般用于第一次创建数据库或重建控制文件时。
mount: 只有dba可以进行特殊的管理工作。
open: 用户可以访问数据库。(默认为open)如: startup
4种关闭方式:
Normal :不允许新用户登录,等待用户操作完并退出(exit)后,才关闭。(也不推荐,经常关不掉:如:有其他用户时,其他用户exit后才能关闭。如果只有当前用户,也需要执行sql之后执行exit,才能退出)
Transactional :不允许新用户登录,等待用户操作完当前的操作后关闭数据库。
Immediate :不允许新用户登录,回滚并退出。
Abort :不允许新用户登录,不回滚并退出,会导致数据很乱。(不推荐)
3.权限
权限的分类:
系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等
例如:(create sequence,create table,create user,drop user,create view)
对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等
例如:(alter,delete,execute,index,insert,references,select,update)
角色权限:角色其实是特定系统权限和对象权限的组合,是一组权限的组合,便于对用户授权。例如:Oracle内置了一些角色,如经常使用的 connnet,reseource和dba等。
权限: 加了 with admin/grant option 就可以传递,(没加时就不能传递,只能自己使用)
with admin/grant option 的区别
with admin option 只能在赋予system privilege 时使用(系统权限和角色权限时),如connect角色权限时 ,如:grant connect to mike with admin option;(注:grant resource to mike with admin option; --虽然显示授权成功,但是并不能操作别的表,如查询别的表,只是让该用户拥有对自身的resource权限而已(增删改查等),还是需要用下面的语句进行授权。) (取消时不是级联
)
with grant option 只能在赋予object privilege 时使用,如:授予select权限时 如:grant select on myt.student to mike with grant option; (取消时级联
)
在查询时:在拥有对别的用户的某个表的查询权限后,查询的写法:select * myt.student; --注: 如果表中没有数据,会显示未选定行