资源描述:
《数据库原理之数据库权限管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle安全管理用户与模式用户是指在数据库中定义的、用来访问数据库的名称,模式是指一系列数据库对象(如表、视图、索引等)的集合,模式对象是数据库数据的逻辑结构。用户的作用是连接数据库并访问模式中的对象,而模式的作用是创建和管理数据库的对象。在Oracle数据库中,模式与用户是一一对应的,一个模式只能被一个用户所拥有并且名字必须与用户的名称相同,而一个用户也只能拥有一个模式。用户与模式当用户访问自己模式中的对象时,不需要指定模式名。经过授权的用户还可以访问其他模式的对象,访问时要在对象名的前面加上模式名。一、创建用户语法格式如下:CREATEUSERuser_nameIDENTIF
2、IED[BYpassword
3、EXTERNALLY
4、GLOBALLY][DEFAULTTABLESPACEdefault_tablespace][TEMPORARYTABLESPACEtemp_tablespace][QUOTAsize
5、UNLIMITEDONtablesapce_name][PROFILEprofile][PASSWORDEXPIRE][ACCOUNTLOCK
6、UNLOCK];一、创建用户(1)user_name是要创建的数据库用户的名称。(2)IDENTIFIED子句用于指定数据库用户的认证方式,password是指要创建的数据库用户的密码,也就是使用密码认证方式
7、,EXTERNALLY表示要使用外部认证方式,GLOBALLY表示要使用全局认证方式。(3)DEFAULTTABLESPACE用于指定创建用户的默认表空间。一、创建用户(4)TEMPORARYTABLESPACE用于指定用户的临时表空间。(5)QUOTA(配额)在Oracle数据库中用于对资源的使用进行限制。(6)PASSWORDEXPIRE用于指定用户密码初始状态为过期。(7)ACCOUNT用于指定用户的锁定状态。(8)创建用户后,Oracle数据库就会自动创建一个与该用户名称相同的模式,该用户创建的所有对象都会保存在这个模式中。二、系统权限管理1.常用的系统权限Oracle数据库
8、的系统权限非常多,共有200多种,总体上可以分为操作数据库的权限和操作对象的权限,可以通过查询视图system_privilege_map了解Oracle数据库中的系统权限。特殊的系统权限就是sysdba(数据库管理员)和sysoper(数据库操作员)。二、系统权限管理2.为用户授予系统权限语法格式如下:GRANTsys_priv[,sys_priv,…]TOuser[,user,…]
9、role[,role,…]
10、PUBLIC[WITHADMINOPTION]二、系统权限管理3.回收授予的系统权限语法格式如下:REVOKEsys_priv[,sys_priv,…]FROMuser[,
11、user,…]
12、role[,role,…]
13、PUBLIC二、系统权限管理4.查看用户的系统权限可以通过以下的数据字典视图了解与用户系统权限相关的信息:(1)user_sys_privs:显示授予给当前用户的系统权限信息,包括用户名称、系统权限和是否能转授权限的标志信息等信息。(2)dba_sys_privs:显示数据库中所有授予给用户和角色的系统权限信息,包括接受者、系统权限和是否可以转授等信息。(3)session_privs:显示当前用户所拥有的全部系统权限的信息。三、对象权限管理1.常用的对象权限Oracle数据库中有8种对象权限,它们分别是:(1)SELECT权限:执行查询操
14、作,能够执行的对象是表、视图和序列。(2)INSERT权限:执行插入数据的操作,能够执行的对象是表和视图。(3)UPDATE权限:执行更新数据的操作,能够执行的对象是表和视图。(4)DETELE权限:执行删除数据的操作,能够执行的对象是表和视图。三、对象权限管理(5)ALTER权限:执行修改对象的操作,能够执行的对象是表和序列。(6)INDEX权限:执行创建索引的操作,能够执行的对象是表。(7)REFERENCES权限:执行外键引用的操作,能够执行的对象是表。(8)EXECUTE权限:执行对象的操作,能够执行的对象是函数、过程和包。三、对象权限管理2.为用户授予对象权限GRANTob
15、j_priv[(column_name,...)][,obj_priv[(column_name,...)],…]ONobj_nameTOuser[,user,…]
16、role[,role,…]
17、PUBLIC[WITHGRANTOPTION]三、对象权限管理3.回收授予的对象权限REVOKEobj_priv[(column_name,...)][,obj_priv[(column_name,...)],…]ONobj_nameFROMuser[,user,…