《oracle-第11章安全管理》由会员分享,可在线阅读,更多相关《oracle-第11章安全管理(50页珍藏版)》请在金锄头文库上搜索。
1、第11章 安全管理,主要内容,数据库的安全性用户管理权限管理角色管理概要文件管理,本章要求,了解Oracle数据库安全机制掌握用户管理掌握权限管理掌握角色管理了解概要文件的作用及其应用,11.1 数据库安全性概述,数据库的安全性含义防止非法用户对数据库的访问 防止用户的非法操作Oracle数据安全控制机制 用户管理 权限管理 角色管理 表空间设置和配额 用户资源限制 数据库审计,11.2 Oracle数据库安全性管理,用户管理权限管理角色管理概要文件管理,11.2.1用户管理,数据库初始用户用户属性用户的创建、修改、删除、查询,数据库初始用户,SYS数据库中具有最高权限的DBA,可以启动、修改
2、和关 闭数据库,拥有数据字典SYSTEM一个辅助的DBA,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户SCOTT口令tiger,用于测试网络的连接PUBLIC用户组为数据库中所有用户设定必需的对象权限和系统权限,用户属性,认证方式数据库身份认证:口令 外部身份认证:账户由oracle数据库管理,但口令管理和身份验证由外部服务完成,外部服务可以是操作系统或网络服务。全局身份认证:oracle使用网络中的安全管理服务器对用户进行身份认证默认表空间DEFAULT TABLESPACE临时表空间:保存临时数据信息TEMPORARY TABLESPACE,表空间配额QUOTA
3、ON 概要文件限制用户对数据库系统资源的使用设置用户的口令管理策略账户状态是否过期是否锁定,基本语法CREATE USER user_name IDENTIFIED BY password | EXTERNALLY | GLOBALLY AS external_name DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESPACE temp_tablespace_name QUOTA n K|M|UNLIMITED ON tablespace_name PROFILE profile_name PASSWORD EXPIRE ACCOUNT L
4、OCK | UNLOCK ,11.2.2.创建用户,注意新创建的用户并不能直接连接到数据库中,因为它不具有CREATE SESSION系统权限,因此,在新建数据库用户后,通常需要使用GRANT语句为用户授予CREATE SESSION权限,用户表空间的设置,缺省表空间 DEFAULT TABLESPACE tablename 临时表空间 TEMPORARY TABLESPACE tempname配额限制用户所能使用的存储空间的大小。默认情况下,新建用户在任何表空间都不具任何配额 QUOTA ON tablename用户在临时表空间中不需要配额,在临时表空间中创建的所有临时段都属于SYS模式,C
5、REATE USER test IDENTIFIED BY pwd DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 5M ON USERS;,创建用户示例,基本语法ALTER USER user_name IDENTIFIED BY password | EXTERNALLY | GLOBALLY AS external_name DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESPACE temp_tablespace_name QUOTA n K | M | UNLIMIT
6、ED ON tablespace_name PROFILE profile_name DEFAULT ROLE role_list | ALL EXCEPT role_list | NONE PASSWORD EXPIRE ACCOUNT LOCK | UNLOCK ,11.2.3修改用户,ALTER USER test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 10M ON USERS;,修改用户示例,用户的锁定与解锁,锁定用户某个用户暂时离开工作 某个用户永久离开工作DBA创建的特殊用户帐户 ALTER USER te
7、st ACCOUNT LOCK; 解锁用户 ALTER USER test ACCOUNT UNLOCK;,11.2.4删除用户,基本语法DROP USER user_name CASCADE ;步骤先删除用户所拥有的对象再删除用户如果用户拥有数据库对象,必须使用 cascade将参照该用户对象的其他数据库对象(如存储过程、函数等)标志为INVALID,P213ALL_USERSDBA_USERSUSER_USERSDBA_TS_QUOTASUSER_TA_QUOTASV$SESSIONV$OPEN_CURSOR,11.2.5查询用户,11.3 权限管理,权限管理概述系统权限的授予与回收对象权
8、限的授予与回收查询权限信息,11.3.1权限管理概述,所谓权限就是执行特定类型SQL命令或访问其他用户的对象的权利。Oracle中用户权限的分类系统权限在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。 对象权限对某个特定的数据库对象执行某种操作的权限 获取途径的权限直接授权:grant命令直接为用户授权间接授权:先将权限授予角色,然后将角色授予用户,11.3.2系统权限管理,系统权限分类对数据库某一类对象的操作能力,通常带有ANY关键字数据库级别的某种操作能力系统权限的授予语法结构: GRANT sys_list to user_list| role_list | PUBL
9、IC WITH ADMIN OPTION ;示例:为PUBLIC用户组授予CREATE SESSION系统权限 GRANT CREATE SESSION TO PUBLIC;,系统权限授予时需要注意的几点:只有DBA才应当拥有ALTER DATABASE 系统权限。应用程序开发者一般需要拥有CREATE TABLE、CREATE VIEW和CREATE INDEX等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。,系统权限的回收语法结构 REVOKE sys_
10、priv_list FROM user_list| role_list;注意事项多个管理员者授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户不再拥有该系统权限。为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。如果一个用户获得的系统权限具有传递性(授权时使用了WITH ADMIN OPTION子句),并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。,例:sys用户和system用户分别给user1用户授予create table系统权限,当system用
11、户回收user1用户的create table权限后,用户user1不在具有create table权限例:user2用户具有create table系统权限,并有授权给其他用户的权限。为了终止其授予其他用户的权利,需要回收其create table的系统权限,然后重新给user2授权,但是不适用with grant option子句,对象权限分类对象权限的授权语法结构 GRANT obj_priv_list | ALL ON schema.object TO user_list | role_list WITH GRANT OPTION示例:将scott模式下的emp表的SELECT、UPD
12、ATE、 INSERT权限授予user1用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;,11.3对象权限管理,对象权限的回收语法结构 REVOKE obj_priv_list | ALL ON schema.object FROM user_list|role_list;需要注意的几点多个管理员者授予用户同一个对对象权限后,其中一个管理员回收其授予该用户的对象权限时,不影响该用户从其他管理员处获得的对象权限。为了回收用户对象权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,然后再授予其相应的对象
13、权限。如果一个用户获得的对象权限具有传递性(授权时使用了WITH GRANT OPTION子句),并且给其他用户授权,那么该用户的对象权限被回收后,其他用户的对象权限也被回收。,11.3.4查询权限信息,DBA_TAB_PRIVS:包含数据库所有对象的授权信息ALL_TAB_PRIVS:包含数据库所有用户和PUBLIC用户组的对象授权信息USER_TAB_PRIVS:包含当前用户对象的授权信息DBA_COL_PRIVS:包含所有字段已授予的对象权限ALL_COL_PRIVS:包含所有字段已授予的对象权限信息USER_COL_PRIVS:包含当前用户所有字段已授予的对象权限信息。DBA_SYS_
14、PRIVS:包含授予用户或角色的系统权限信息USER_SYS_PRIVS:包含授予当前用户的系统权限信。,11.4角色管理,角色概述角色的分类 数据库系统预定义角色 用户自定义角色角色的管理定义、授权、修改、生效与失效、删除、查询利用角色对用户间接授权,11.4.1 Oracle角色概术,角色的概念所谓角色就是一系列相关权限的集合,11.4.2Oracle角色类型,系统预定义角色P222 表12-3数据字典视图DBA_ROLES查询当前数据库中所有预定义角色 例:查询当前数据库的所有预定义角色 select * from DBA_ROLES;DBA_SYS_PRIVS查询各个预定义角色所具有的
15、系统权限 例:查询DBA角色所具有的系统权限 select * from DBA_SYS_PRIVS where GRANTEE=DBA用户自定义角色,11.4.3 自定义角色,创建角色语法结构 CREATE ROLE role_name NOT IDENTIFIED IDENTIFIED BY password 示例 CREATE ROLE high_manager_role CREATE ROLE middle_manager_role IDENTIFIED BY middlerole; CREATE ROLE low_manager_role IDENTIFIED BY lowrole;
16、,角色权限的授予与回收(GRANT,REVOKE)给角色授予适当的系统权限、对象权限或已有角色。在数据库运行过程中,可以为角色增加权限,也可以回收其权限。示例:GRANT CONNECT,CREATE TABLE,CREATE VIEW TO low_manager_role; GRANT CONNECT,CREATE TABLE,CREATE VIEW TO middle_manager_role;GRANT CONNECT,RESOURCE,DBA TO high_manager_role;GRANT SELECT,UPDATE,INSERT,DELETE ON scott.emp TO high_manager_role;,