
Oracle数据库安全管理PPT课件102页.ppt
101页第第10章章 安全管理安全管理主要内容主要内容pOracle数据库安全性概述p用户管理 p权限管理 p角色管理p概要文件管理p审计 p利用OEM进行安全管理本章要求本章要求p了解Oracle数据库安全机制p掌握用户管理p掌握权限管理p掌握角色管理p了解概要文件的作用及其应用p了解审计及其应用10.1 数据库安全性概述数据库安全性概述p数据库的安全性主要包括两个方面的含义:n一方面是防止非法用户对数据库的访问,未授权的用一方面是防止非法用户对数据库的访问,未授权的用户不能登录数据库;户不能登录数据库;n另一方面是每个数据库用户都有不同的操作权限,只另一方面是每个数据库用户都有不同的操作权限,只能进行自己权限范围内的操作能进行自己权限范围内的操作pOracle数据安全控制机制 n用户管理用户管理n权限管理权限管理 n角色管理角色管理 n表空间设置和配额表空间设置和配额 n用户资源限制用户资源限制 n数据库审计数据库审计 pOracle数据库的安全可以分为两类:n系统安全性系统安全性p系统安全性是指在系统级控制数据库的存取和使用的机制,包括有效的用户名与口令的组合、用户是否被授权可连接数据库、用户创建数据库对象时可以使用的磁盘空间大小、用户的资源限制、是否启动了数据库审计功能,以及用户可进行哪些系统操作等。
n数据安全性数据安全性p数据安全性是指在对象级控制数据库的存取和使用机制,包括用户可存取的模式对象和在该对象上允许进行的操作等 10.2 用户管理用户管理p用户管理概述 p创建用户 p修改用户 p删除用户 p查询用户信息 10.2.1用户管理概述用户管理概述pOracle数据库初始用户 n SYS:是数据库中具有最高权限的数据库管理员,可:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典;以启动、修改和关闭数据库,拥有数据字典;n SYSTEM:是一个辅助的数据库管理员,不能启动和:是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等用户、删除用户等nSCOTT:是一个用于测试网络连接的用户,其口令为:是一个用于测试网络连接的用户,其口令为TIGERnPUBLIC:实质上是一个用户组,数据库中任何一个:实质上是一个用户组,数据库中任何一个用户都属于该组成员要为数据库中每个用户都授予用户都属于该组成员要为数据库中每个用户都授予某个权限,只需把权限授予某个权限,只需把权限授予PUBLIC就可以了。
就可以了p用户属性n用户身份认证方式用户身份认证方式n默认表空间默认表空间n临时表空间临时表空间n表空间配额表空间配额 n概要文件概要文件 n账户状态账户状态n用户身份认证方式用户身份认证方式p数据库身份认证:数据库用户口令以加密方式保存在数据库内部,当用户连接数据库时必须输入用户名和口令,通过数据库认证后才可以登录数据库 p外部身份认证:当使用外部身份认证时,用户的账户由Oracle数据库管理,但口令管理和身份验证由外部服务完成外部服务可以是操作系统或网络服务当用户试图建立与数据库的连接时,数据库不会要求用户输入用户名和口令,而从外部服务中获取当前用户的登录信息 p全局身份认证::当用户试图建立与数据库连接时,Oracle使用网络中的安全管理服务器(Oracle Enterprise Security Manager)对用户进行身份认证Oracle的安全管理服务器可以提供全局范围内管理数据库用户的功能 n默认表空间默认表空间p当用户在创建数据库对象时,如果没有显式地指明该对象在哪个表空间中存储,系统会自动将该数据库对象存储在当前用户的默认表空间中如果没有为用户指定默认表空间,则系统将数据库的默认表空间作为用户的默认表空间。
n临时表空间临时表空间 p当用户进行排序、汇总和执行连接、分组等操作时,系统首先使用内存中的排序区SORT_AREA_SIZE,如果该区域内存不够,则自动使用用户的临时表空间在Oracle 10g中,如果没有为用户指定临时表空间,则系统将数据库的默认临时表空间作为用户的临时表空间n表空间配额表空间配额p表空间配额限制用户在永久表空间中可以使用的存储空间的大小,默认情况下,新建用户在任何表空间中都没有任何配额p用户在临时表空间中不需要配额 n概要文件概要文件 p每个用户都必须有一个概要文件,从会话级和调用级两个层次限制用户对数据库系统资源的使用,同时设置用户的口令管理策略如果没有为用户指定概要文件,Oracle将为用户自动指定DEFAULT概要文件 n账户状态账户状态p在创建用户的同时,可以设定用户的初始状态,包括用户口令是否过期以及账户是否锁定等Oracle允许任何时候对帐户进行锁定或解锁锁定账户后,用户就不能与Oracle数据库建立连接,必须对账户解锁后才允许用户访问数据库 10.2.2.创建用户创建用户p基本语法nCREATE USER user_name IDENTIFIED n[BY password|EXTERNALLY|GLOBALLYn AS 'external_name']n[DEFAULT TABLESPACE tablespace_name]n[TEMPORARY TABLESPACE temp_tablesapce_name]n[QUOTA n K|M|UNLIMITED ON tablespace_name]n[PROFILE profile_name]n[PASSWORD EXPIRE]n[ACCOUNT LOCK|UNLOCK];p参数说明nuser_name::用于设置新建用户名用于设置新建用户名,,在数据库中用户名必须是在数据库中用户名必须是唯一的唯一的;;nIDENTIFIED:用于指明用户身份认证方式;:用于指明用户身份认证方式;nBY password:用于设置用户的数据库身份认证,其中:用于设置用户的数据库身份认证,其中password为用户口令;为用户口令;nEXTERNALLY:用于设置用户的外部身份认证;:用于设置用户的外部身份认证;nGLOBALLY AS'external_name':用于设置用户的全局身:用于设置用户的全局身份认证,其中份认证,其中external_name为为Oracle的安全管理服务器相的安全管理服务器相关信息关信息;;nDEFAULT TABLESPACE:用于设置用户的默认表空间,如果:用于设置用户的默认表空间,如果没有指定,没有指定,Oracle将数据库默认表空间作为用户的默认表空间;将数据库默认表空间作为用户的默认表空间;nTEMPORARY TABLESPACE:用于设置用户的临时表空间;:用于设置用户的临时表空间;nQUOTA:用于指定用户在特定表空间上的配额,即用户在该表:用于指定用户在特定表空间上的配额,即用户在该表空间中可以分配的最大空间中可以分配的最大 空间;空间;nPROFILE:用于为用户指定概要文件,默认值为:用于为用户指定概要文件,默认值为DEFAULT,,采用系统默认的概要文件;采用系统默认的概要文件;nPASSWORD EXPIRE:用于设置用户口令的初始状态为过期,:用于设置用户口令的初始状态为过期,用户在首次登录数据库时必须修改口令;用户在首次登录数据库时必须修改口令;nACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁:用于设置用户初始状态为锁定,默认为不锁定;定;nACCOUNT UNLOCK:用于设置用户初始状态为不锁定或解除:用于设置用户初始状态为不锁定或解除用户的锁定状态用户的锁定状态p注意n在创建新用户后,必须为用户授予适当的权限,用户在创建新用户后,必须为用户授予适当的权限,用户才可以进行相应的数据库操作。
例如,授予用户才可以进行相应的数据库操作例如,授予用户CREATE SESSION权限后,用户才可以连接到数据权限后,用户才可以连接到数据库p创建数据库用户示例 n创建一个用户创建一个用户user3,口令为,口令为user3,默认表空间为,默认表空间为USERS,在该表空间的配额为,在该表空间的配额为10 MB,初始状态为,初始状态为锁定pCREATE USER user3 IDENTIFIED BY user3 pDEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK;n创建一个用户创建一个用户user4,口令为,口令为user4,默认表空间为,默认表空间为USERS,在该表空间的配额为,在该表空间的配额为10 MB口令设置为口令设置为过期状态,即首次连接数据库时需要修改口令概要过期状态,即首次连接数据库时需要修改口令概要文件为文件为example_profile(假设该概要文件已经创(假设该概要文件已经创建)pCREATE USER user4 IDENTIFIED BY user4 pDEFAULT TABLESPACE USERS pQUOTA 10M ON USERSpPROFILE example_profile pPASSWORD EXPIRE; p基本语法nALTER USER user_name [IDENTIFIED]n[BY password|EXTERNALLY|GLOBALLY nAS 'external_name']n[DEFAULT TABLESPACE tablespace_name]n[TEMPORARY TABLESPACE temp_tablesapce_name]n[QUOTA n K|M|UNLIMITED ON tablespace_name]n[PROFILE profile_name]n[DEFAULT ROLE role_list|ALL [EXCEPT role_list] n|NONE]n[PASSWORD EXPIRE]n[ACCOUNT LOCK|UNLOCK]; 10.2.3 修改用户修改用户p参数说明nrole_list:角色列表;:角色列表;nALL :表示所有角色;:表示所有角色;nEXCEPT role_list:表示除了:表示除了role_list列表中的角列表中的角色之外的其他角色;色之外的其他角色;nNONE:表示没有默认角色。
表示没有默认角色p注意,指定的角色必须是使用GRANT命令直接授予该用户的角色p修改数据库用户示例n将用户user3的口令修改为newuser3,同时将该用户解锁pALTER USER user3 pIDENTIFIED BY newuser3 ACCOUNT UNLOCK;n修改用户user4的默认表空间为ORCLTBS1,在该表空间的配额为20 MB,在USERS表空间的配额为10 MBpALTER USER user4pDEFAULT TABLESPACE ORCLTBS1 pQUOTA 20M ON ORCLTBS1 pQUOTA 10M ON USERS; p用户的锁定与解锁n某个用户暂时离开工作某个用户暂时离开工作 n某个用户永久离开工作某个用户永久离开工作nDBA创建的特殊用户帐户创建的特殊用户帐户p示例nALTER USER user3 ACCOUNT LOCK; nALTER USER user3 ACCOUNT UNLOCK;10.2.4删除用户删除用户p基本语法nDROP USER user_name [ CASCADE ];p步骤n先删除用户所拥有的对象先删除用户所拥有的对象n再删除用户再删除用户n将参照该用户对象的其他数据库对象标志为将参照该用户对象的其他数据库对象标志为INVALID10.2.5查询用户信息查询用户信息pALL_USERS:包含数据库所有用户的用户名、用户ID和用户创建时间。
pDBA_USERS:包含数据库所有用户的详细信息pUSER_USERS:包含当前用户的详细信息 pDBA_TS_QUOTAS:包含所有用户的表空间配额信息pUSER_TS_QUOTAS:包含当前用户的表空间配额信息pV$SESSION:包含用户会话信息pV$OPEN_CURSOR:包含用户执行的SQL语句信息p查看数据库所有用户名及其默认表空间nSELECT SERNAME,DEFAULT_TABLESPACE nFROM DBA_USERS; p查看数据库中各用户的登录时间、会话号nSELECT nSID,SERIAL#,LOGON_TIME,USERNAME nFROM V$SESSION; 10.3 权限管理权限管理p权限管理概述p系统权限管理p对象权限管理p查询权限信息10.3.1权限管理概述权限管理概述p概念n所谓权限就是执行特定类型所谓权限就是执行特定类型SQLSQL命令或访问其他用户的命令或访问其他用户的对象的权利用户在数据库中可以执行什么样的操作,对象的权利用户在数据库中可以执行什么样的操作,以及可以对哪些对象进行操作,完全取决于该用户所以及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。
拥有的权限p分类n系统权限:系统权限是指在数据库级别执行某种操作系统权限:系统权限是指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限例的权限,或针对某一类对象执行某种操作的权限例如如,,CREATE SESSIONCREATE SESSION权限、权限、CREATE ANY TABLECREATE ANY TABLE权限n对象权限:对象权限是指对某个特定的数据库对象执对象权限:对象权限是指对某个特定的数据库对象执行某种操作的权限例如行某种操作的权限例如,对特定表的插入、删除、,对特定表的插入、删除、修改、查询的权限修改、查询的权限p授权方法n直接授权:利用直接授权:利用GRANT命令直接为用户授权命令直接为用户授权n间接授权:先将权限授予角色,然后再将角色授予用间接授权:先将权限授予角色,然后再将角色授予用户10.3.2系统权限管理系统权限管理p系统权限分类p系统权限的授权 p系统权限的回收 ((1)系统权限分类)系统权限分类p一类是对数据库某一类对象的操作能力,通常带有ANY关键字例如,CREATE ANY INDEX,ALTER ANY INDEX,DROP ANY INDEX 。
p另一类系统权限是数据库级别的某种操作能力例如,CREATE SESSION((2)系统权限的授权)系统权限的授权p语法为nGRANT sys_priv_list TO nuser_list|role_list|PUBLIC n[WITH ADMIN OPTION];p参数说明:nsys_priv_list:表示系统权限列表:表示系统权限列表,,以逗号分隔以逗号分隔;;nuser_list:表示用户列表:表示用户列表,,以逗号分隔以逗号分隔;;nrole_list:表示角色列表,以逗号分隔;:表示角色列表,以逗号分隔;nPUBLIC:表示对系统中所有用户授权;:表示对系统中所有用户授权;nWITH ADMIN OPTION:表示允许系统权限接收:表示允许系统权限接收者再把此权限授予其他用户者再把此权限授予其他用户p系统权限授予时需要注意的几点:n只有只有DBA才应当拥有才应当拥有ALTER DATABASE 系统权系统权限n应用程序开发者一般需要拥有应用程序开发者一般需要拥有CREATE TABLE、、CREATE VIEW和和CREATE INDEX等系统权限等系统权限n普通用户一般只具有普通用户一般只具有CREATE SESSION系统权限。
系统权限n只有授权时带有只有授权时带有WITH ADMIN OPTION子句时,子句时,用户才可以将获得的系统权限再授予其他用户,即系用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性统权限的传递性p为PUBLIC用户组授予CREATE SESSION系统权限nGRANT CREATE SESSION TO PUBLIC;p为用户user1授予CREATE SESSION,CREATE TABLE,CREATE INDEX系统权限nGRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO user1; p为用户user2授予CREATE SESSION,CREATE TABLE ,CREATE INDEX系统权限user2获得权限后,为用户user3授予CREATE TABLE权限nGRANT CREATE SESSION,CREATE TABLE,nCREATE VIEW TO user2 WITH ADMIN OPTION;nCONNECT user2/user2 @ORCL nGRANT CREATE TABLE TO user3;p语法为nREVOKE sys_priv_list nFROM user_list|role_list|PUBLIC;;p注意事项n多个管理员授予用户同一个系统权限后,其中一个管理员多个管理员授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户将不再拥有相应回收其授予该用户的系统权限时,该用户将不再拥有相应的系统权限。
的系统权限 n为了回收用户系统权限的传递性(授权时使用了为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然子句),必须先回收其系统权限,然后再授予其相应的系统权限后再授予其相应的系统权限n如果一个用户获得的系统权限具有传递性,并且给其他用如果一个用户获得的系统权限具有传递性,并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响权限并不受影响3)系统权限的回收)系统权限的回收 10.3 对象权限管理对象权限管理p对象权限分类p对象权限的授权p对象权限的回收 ((1)对象权限分类)对象权限分类p在Oracle数据库中共有9种类型的对象权限,不同类型的模式对象有不同的对象权限,而有的对象并没有对象权限,只能通过系统权限进行控制,如簇、索引、触发器、数据库链接等 对 象 权 限适 合 对 象对象权限功能说明SELECT表、视图、序列查询数据操作UPDATE表、视图更新数据操作DELETE表、视图删除数据操作INSERT表、视图插入数据操作REFERENCES表在其他表中创建外键时可以引用该表EXECUTE存储过程、函数、包执行PL/SQL存储过程、函数和包READ目录读取目录ALTER表、序列修改表或序列结构INDEX表为表创建索引ALL具有对象权限的所有模式对象某个对象所有对象权限操作集合((2)对象权限的授权)对象权限的授权 p语法nGRANT obj_priv_list|ALL ON [schema.]objectnTO user_list|role_list [WITH GRANT OPTION];p参数说明nobj_priv_list:表示对象权限列表,以逗号分隔;:表示对象权限列表,以逗号分隔;n[schema.]object:表示指定的模式对象,默认为当前:表示指定的模式对象,默认为当前模式中的对象;模式中的对象;nuser_list:表示用户列表,以逗号分隔;:表示用户列表,以逗号分隔;nrole_list:表示角色列表,以逗号分隔;:表示角色列表,以逗号分隔;nWITH GRANT OPTION:表示允许对象权限接收者把:表示允许对象权限接收者把此对象权限授予其他用户。
此对象权限授予其他用户 p将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予user1用户nGRANT SELECT,INSERT,UPDATEnON scott.emp TO user1;p将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予user2用户user2用户再将emp表的SELECT,UPDATE权限授予user3用户nGRANT SELECT,INSERT,UPDATE ON scott.emp TO user2 WITH GRANT OPTION;nCONNECT user2/user2@ORCLnGRANT SELECT,UPDATE ON scott.emp TO user3;p语法nREVOKE obj_priv_list | ALL ON [schema.]object FROM user_list|role_list;p注意事项n多个管理员授予用户同一个对象权限后,其中一个管理多个管理员授予用户同一个对象权限后,其中一个管理员回收其授予该用户的对象权限时,该用户不再拥有相员回收其授予该用户的对象权限时,该用户不再拥有相应的对象权限。
应的对象权限n为了回收用户对象权限的传递性(授权时使用了为了回收用户对象权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,子句),必须先回收其对象权限,然后再授予其相应的对象权限然后再授予其相应的对象权限n如果一个用户获得的对象权限具有传递性(授权时使用如果一个用户获得的对象权限具有传递性(授权时使用了了WITH GRANT OPTION子句),并且给其他用户子句),并且给其他用户授权,那么该用户的对象权限被回收后,其他用户的对授权,那么该用户的对象权限被回收后,其他用户的对象权限也被回收象权限也被回收3)对象权限的回收)对象权限的回收 pWITH ADMIN OPTIONn当甲用户授权给乙用户,且激活该选项,则被授权的当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限再授给其他用户丙,或者能回收授出去的权限n当甲用户收回乙用户的权限后,乙用户曾经授给丙用当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限仍然存在户的权限仍然存在p与WITH GRANT OPTION比较n当甲用户授权给乙用户,且激活该选项,则被授权的当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。
再授给其他用户丙,或者能回收授出去的权限n当甲用户收回乙用户的权限后,乙用户曾经授给丙用当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限也被回收户的权限也被回收 WITH ADMIN OPTIONWITH ADMIN OPTIONDBAGRANTREVOKEJeffEmiJeffEmiDBAGRANTGRANTREVOKEREVOKEWITH GRANT OPTIONWITH GRANT OPTIONBobJeffEmiEmiJeffBob10.3.4查询权限信息查询权限信息nDBA_TAB_PRIVS:包含数据库所有对象的授权信息nALL_TAB_PRIVS:包含数据库所有用户和PUBLIC用户组的对象授权信息nUSER_TAB_PRIVS:包含当前用户对象的授权信息nDBA_COL_PRIVS:包含所有字段已授予的对象权限nALL_COL_PRIVS:包含所有字段已授予的对象权限信息nUSER_COL_PRIVS:包含当前用户所有字段已授予的对象权限信息nDBA_SYS_PRIVS:包含授予用户或角色的系统权限信息nUSER_SYS_PRIVS:包含授予当前用户的系统权限信。
10.4角色管理角色管理pOracle数据库角色概述 p预定义角色 p自定义角色p利用角色进行权限管理 p查询角色信息 10.4.1 Oracle数据库角色概述数据库角色概述 p角色的概念n所谓角色就是一系列相关权限的集合所谓角色就是一系列相关权限的集合10.4.2 预定义角色预定义角色p预定义角色概述n预定义角色是指在预定义角色是指在Oracle数据库创建时由系统自动创数据库创建时由系统自动创建的一些常用的角色,这些角色已经由系统授予了相建的一些常用的角色,这些角色已经由系统授予了相应的权限应的权限nDBA可以直接利用预定义的角色为用户授权,也可以可以直接利用预定义的角色为用户授权,也可以修改预定义角色的权限修改预定义角色的权限 nOracle数据库中有数据库中有30多个预定义角色多个预定义角色n可以通过数据字典视图可以通过数据字典视图DBA_ROLES查询当前数据库查询当前数据库中所有的预定义角色,通过中所有的预定义角色,通过DBA_SYS_PRIVS查询查询各个预定义角色所具有的系统权限各个预定义角色所具有的系统权限 角 色角色具有的部分权限CONNECTCREATE SESSIONRESOURCECREATE CLUSTER,CREATE OPERATOR,CREATE TRIGGER,CREATE TYPE,CREATE SEQUENCE,CREATE INDEXTYPE,CREATE PROCEDURE,CREATE TABLEDBAADMINISTER DATABSE TRIGGER,ADMINISTER RESOURCE MANAGE,CREATE…,CREATE ANY…,ALTER…,ALTER ANY…,DROP…,DROP ANY…,EXECUTE…,EXECUTE ANY…EXP_FULL_DATABASEADMINISTER RESOURCE MANAGE,BACKUP ANY TABLE,EXECUTE ANY PROCEDURE,SELECT ANY TABLE,EXECUTE ANY TYPEIMP_FULL_DATABASEADMINISTER DATABSE TRIGGER,ADMINISTER RESOURCE MANAGE,CREATE ANY…,ALTER ANY…,DROP…,DROP ANY…,EXECUTE ANY…10.4.3 自定义角色自定义角色p创建角色 p角色权限的授予与回收 p修改角色 p角色的生效与失效 p删除角色 ((1)创建角色)创建角色 p语法为nCREATE ROLE role_name [NOT IDENTIFIED][IDENTIFIED BY password];p参数说明nrole_name:用于指定自定义角色名称,该名称不:用于指定自定义角色名称,该名称不能与任何用户名或其他角色相同;能与任何用户名或其他角色相同;nNOT IDENTIFIED:用于指定该角色由数据库授权,:用于指定该角色由数据库授权,使该角色生效时不需要口令;使该角色生效时不需要口令;nIDENTIFIED BY password:用于设置角色生效:用于设置角色生效时的认证口令。
时的认证口令 p例如,创建不同类型的角色nCREATE ROLE high_manager_role;nCREATE ROLE middle_manager_role IDENTIFIED BY middlerole;nCREATE ROLE low_manager_role IDENTIFIED BY lowrole;((2)角色权限的授予与回收)角色权限的授予与回收 p说明n给角色授予适当的系统权限、对象权限或已有角色给角色授予适当的系统权限、对象权限或已有角色n在数据库运行过程中,可以为角色增加权限,也可以回在数据库运行过程中,可以为角色增加权限,也可以回收其权限收其权限n给角色授权时应该注意,一个角色可以被授予另一个角给角色授权时应该注意,一个角色可以被授予另一个角色,但不能授予其本身,不能产生循环授权色,但不能授予其本身,不能产生循环授权p 示例nGRANT CONNECT,CREATE TABLE,CREATE VIEW TO low_manager_role;nGRANT CONNECT,CREATE TABLE,CREATE VIEW TO middle_manager_role;nGRANT CONNECT,RESOURCE,DBA TO high_manager_role;nGRANT SELECT,UPDATE,INSERT,DELETE ON scott.emp TO high_manager_role;nREVOKE CONNECT FROM low_manager_role;nREVOKE CREATE TABLE,CREATE VIEW FROM middle_manager_role;nREVOKE UPDATE,DELETE ,INSERT ON scott.emp FROM high_manager_role; ((3)修改角色)修改角色p概念n修改角色是指修改角色生效或失效时的认证方式,也修改角色是指修改角色生效或失效时的认证方式,也就是说,是否必须经过就是说,是否必须经过Oracle确认才允许对角色进行确认才允许对角色进行修改。
修改p修改角色的语法nALTER ROLE role_name n[NOT IDENTIFIED]|[IDENTIFIED BY password];;p示例nALTER ROLE high_manager_role IDENTIFIED BY highrole;nALTER ROLE middle_manager_role NOT IDENTIFIED;((4)角色的生效与失效)角色的生效与失效 p概念n所谓角色的失效是指角色暂时不可用当一个角色生所谓角色的失效是指角色暂时不可用当一个角色生效或失效时,用户从角色中获得的权限也生效或失效效或失效时,用户从角色中获得的权限也生效或失效因此,通过设置角色的生效或失效,可以动态改变用因此,通过设置角色的生效或失效,可以动态改变用户的权限户的权限 n在进行角色生效或失效设置时,需要输入角色的认证在进行角色生效或失效设置时,需要输入角色的认证口令,避免非法设置口令,避免非法设置 p语法nSET ROLE [role_name[IDENTIFIED BY password ]]|[ALL [EXCEPT role_name]]|[NONE];p参数说明nrole_name::表示进行生效或失效设置的角色名称表示进行生效或失效设置的角色名称;;nIDENTIFIED BY password::用于设置角色生效或失效时的用于设置角色生效或失效时的认证口令认证口令;;nALL:表示使当前用户所有角色生效;:表示使当前用户所有角色生效;nEXCEPT role_name::表示除了特定角色外表示除了特定角色外,,其余所有角色生其余所有角色生效效;;nNONE:表示使当前用户所有角色失效。
表示使当前用户所有角色失效 p示例nSET ROLE NONE;nSET ROLE high_manager_role IDENTIFIED BY highrole; nSET ROLE middle_manager_role,low_manager_low IDENTIFIED BY lowrole; nSET ROLE ALL EXCEPT low_manager_role,middle_manager_role; ((5)删除角色)删除角色p语法结构nDROP ROLE role_name;p说明n如果某个角色不再需要,则可以使用如果某个角色不再需要,则可以使用DROP ROLE语句删除角色角色被删除后,用户通语句删除角色角色被删除后,用户通过该角色获得的权限被回收过该角色获得的权限被回收10.4.4 利用角色进行权限管理利用角色进行权限管理p给用户或角色授予角色p从用户或角色回收角色 p用户角色的激活或屏蔽 ((1)给用户或角色授予角色)给用户或角色授予角色p语法nGRANT role_list TO user_list|role_list;;p例如,将CONNECT,high_manager_role角色授予用户user1,将RESOURCE,CONNECT角色授予角色middle_manager_role。
nGRANT CONNECT,high_manager_role TO user1;nGRANT RESOURCE,CONNECT TO middle_manager_role;((2)从用户或角色回收角色)从用户或角色回收角色p语法为nREVOKE role_list FROM user_list|role_list;;p例如,回收角色middle_manager_role的RESOURCE,CONNECT角色nSQL>REVOKE RESOURCE,CONNECT FROM middle_manager_role; ((3)用户角色的激活或屏蔽)用户角色的激活或屏蔽p语法为nALTER USER user_name DEFAULT ROLE n[role_name]|[ALL [EXCEPT role_name]]| n[NONE]; p示例nALTER USER user1 DEFAULT ROLE NONE; nALTER USER user1 DEFAULT ROLE CONNECT,DBA; nALTER USER user1 DEFAULT ROLE ALL; nALTER USER user1 DEFAULT ROLE ALL EXCEPT DBA; 10.4.5查询角色信息查询角色信息pDBA_ROLES::包含数据库中所有角色及其描述包含数据库中所有角色及其描述;;pDBA_ROLE_PRIVS::包含为数据库中所有用户和角包含为数据库中所有用户和角色授予的角色信息色授予的角色信息;;pUSER_ROLE_PRIVS:包含为当前用户授予的角色:包含为当前用户授予的角色信息;信息;pROLE_ROLE_PRIVS:为角色授予的角色信息;:为角色授予的角色信息;pROLE_SYS_PRIVS:为角色授予的系统权限信息;:为角色授予的系统权限信息;pROLE_TAB_PRIVS:为角色授予的对象权限信息;:为角色授予的对象权限信息;pSESSION_PRIVS:当前会话所具有的系统权限信息;:当前会话所具有的系统权限信息;pSESSION_ROLES:当前会话所具有的角色信息。
当前会话所具有的角色信息p查询角色CONNECT所具有的系统权限信息 nSELECT * nFROM ROLE_SYS_PRIVS nWHERE ROLE='CONNECT'; p查询DBA角色被授予的角色信息nSELECT * nFROM ROLE_ROLE_PRIVS nWHERE ROLE='DBA';10.5概要文件管理概要文件管理p概要文件概述 p概要文件中参数介绍 p概要文件的管理 10.5.1 概要文件概述概要文件概述p概要文件的作用 p资源限制级别和类型 p启用或停用资源限制 ((1)概要文件的作用)概要文件的作用p概要文件(PROFILE)是数据库和系统资源限制的集合,是Oracle数据库安全策略的重要组成部分p利用概要文件,可以限制用户对数据库和系统资源的使用,同时还可以对用户口令进行管理p在Oracle数据库创建的同时,系统会创建一个名为DEFAULT的默认概要文件如果没有为用户显式地指定一个概要文件,系统默认将DEFAULT概要文件作为用户的概要文件((2)资源限制级别和类型)资源限制级别和类型 p资源限制级别n会话级资源限制:对用户在一个会话过程中所能使用会话级资源限制:对用户在一个会话过程中所能使用的资源进行限制。
的资源进行限制n调用级资源限制:对一条调用级资源限制:对一条SQL语句在执行过程中所能语句在执行过程中所能使用的资源进行限制使用的资源进行限制p资源限制类型n CPU使用时间使用时间;;n 逻辑读逻辑读;;n 每个用户的并发会话数每个用户的并发会话数;;n 用户连接数据库的空闲时间用户连接数据库的空闲时间;;n 用户连接数据库的时间用户连接数据库的时间;;n 私有私有SQL区和区和PL/SQL区的使用区的使用((3)启用或停用资源限制)启用或停用资源限制 p在数据库启动前启用或停用资源限制n将数据库初始化参数文件中的参数将数据库初始化参数文件中的参数RESOURCE_LIMIT的值设置为的值设置为TRUE或或FALSE(默认),来启用或停用系统资源限制默认),来启用或停用系统资源限制p在数据库启动后启用或停用资源限制n使用使用ALTER SYSTEM语句修改语句修改RESOURCE_LIMIT的参数值为的参数值为TRUE或或FALSE,,来启动或关闭系统资源限制来启动或关闭系统资源限制pALTER SYSTEM SET RESOURCE_LIMIT=TRUE; 10.5.2 概要文件中参数概要文件中参数p资源限制参数p口令管理参数((1)资源限制参数)资源限制参数pCPU_PER_SESSION:限制用户在一次会话期间可以占用的CPU 时间总量,单位为百分之一秒。
当达到该时间限制后,用户就不能在会话中执行任何操作了,必须断开连接,然后重新建立连接pCPU_PER_CALL:限制每个调用可以占用的CPU 时间总量,单位为百分之一秒当一个SQL语句执行时间达到该限制后,该语句以错误信息结束pCONNECT_TIME:限制每个会话可持续的最大时间值,单位为分钟当数据库连接持续时间超出该设置时,连接被断开pIDLE_TIME:限制每个会话处于连续空闲状态的最大时间值,单位为分钟当会话空闲时间超过该设置时,连接被断开pSESSIONS_PER_USER:限制一个用户打开数据库会话的最大数量 pLOGICAL_READS_PER_SESSION:允许一个会话读取数据块的最大数量,包括从内存中读取的数据块和从磁盘中读取的数据块的总和 pLOGICAL_READS_PER_CALL:允许一个调用读取的数据块的最大数量,包括从内存中读取的数据块和从磁盘中读取的数据块的总和 pPRIVATE_SGA:在共享服务器操作模式中,执行SQL语句或PL/SQL程序时,Oracle将在SGA中创建私有SQL区该参数限制在SGA中一个会话可分配私有SQL区的最大值pCOMPOSITE_LIMIT:称为“综合资源限制”,是一个用户会话可以消耗的资源总限额。
该参数由CPU_PER_SESSION,LOGICAL_READS_PER_SESSION,PRIVATE_SGA,CONNECT_ TIME几个参数综合决定((2)口令管理参数)口令管理参数pFAILED_LOGIN_ATTEMPTS:限制用户在登录Oracle数据库时允许失败的次数一个用户尝试登录数据库的次数达到该值时,该用户的账户将被锁定,只有解锁后才可以继续使用 pPASSWORD_LOCK_TIME:设定当用户登录失败后,用户账户被锁定的时间长度 pPASSWORD_LIFE_TIME:设置用户口令的有效天数达到限制的天数后,该口令将过期,需要设置新口令pPASSWORD_GRACE_TIME:用于设定提示口令过期的天数在这几天中,用户将接收到一个关于口令过期需要修改口令的警告当达到规定的天数后,原口令过期pPASSWORD_REUSE_TIME:指定一个用户口令被修改后,必须经过多少天后才可以重新使用该口令pPASSWORD_REUSE_MAX:指定一个口令被重新使用前,必须经过多少次修改pPASSWORD_VERIFY_FUNCTION:设置口令复杂性校验函数该函数会对口令进行校验,以判断口令是否符合最低复杂程度或其他校验规则。
10.5.3概要文件管理概要文件管理p创建概要文件 p将概要文件分配给用户 p修改概要文件 p删除概要文件 p查询概要文件 ((1)创建概要文件)创建概要文件 p语法为nCREATE PROFILE profile_name LIMITnresource_parameters|password_parameters;p参数说明如下nprofile_name:用于指定要创建的概要文件名称;:用于指定要创建的概要文件名称;nresource_parameter:用于设置资源限制参数,形式为:用于设置资源限制参数,形式为presource_parameter_name integer|UNLIMITED|DEFALUTnpassword_parameters:用于设置口令参数,形式为:用于设置口令参数,形式为ppassword_parameter_name integer|UNLIMITED|DEFALUTp创建一个名为res_profile的概要文件,要求每个用户最多可以创建4个并发会话;每个会话持续时间最长为60分钟;如果会话在连续20分钟内空闲,则结束会话;每个会话的私有SQL区为100 KB;每个SQL语句占用CPU时间总量不超过10秒。
nCREATE PROFILE res_profile LIMITnSESSIONS_PER_USER 4 CONNECT_TIME 60 nIDLE_TIME 20 PRIVATE_SGA 100Kn CPU_PER_CALL 100;p创建一个名为pwd_profile的概要文件,如果用户连续4次登录失败,则锁定该账户,10天后该账户自动解锁nCREATE PROFILE pwd_profile LIMIT nFAILED_LOGIN_ATTEMPTS 4nPASSWORD_LOCK_TIME 10;;((2)将概要文件分配给用户)将概要文件分配给用户 p可以在创建用户时为用户指定概要文件nCREATE USER user5 IDENTIFIED BY user5 nPROFILE res_profile;p也可以在修改用户时为用户指定概要文件nALTER USER user5 PROFILE pwd_profile;((3)修改概要文件)修改概要文件 p语法为nALTER PROFILE profile_name LIMIT nresource_parameters|password_parameters;p注意n对概要文件的修改只有在用户开始一个新的会话时才对概要文件的修改只有在用户开始一个新的会话时才会生效。
会生效p修改pwd_profile概要文件,将用户口令有效期设置为10天nALTER PROFILE pwd_profile LIMITnPASSWORD_LIFE_TIME 10;((4)删除概要文件)删除概要文件 p语法nDROP PROFILE profile_name [CASCADE];p注意n如果要删除的概要文件已经指定给用户,则必须在如果要删除的概要文件已经指定给用户,则必须在DROP PROFILE语句中使用语句中使用CASCADE子句n如果为用户指定的概要文件被删除,则系统自动将如果为用户指定的概要文件被删除,则系统自动将DEFAULT概要文件指定给该用户概要文件指定给该用户p删除概要文件pwd_profilenDROP PROFILE pwd_profile CASCADE;((5)查询概要文件)查询概要文件pUSER_PASSWORD_LIMITS:包含通过概要文件为用户设置的口令策略信息pUSER_RESOURCE_LIMITS:包含通过概要文件为用户设置的资源限制参数pDBA_PROFILES:包含所有概要文件的基本信息10.6 审计审计 p审计的概念 p审计分类p审计的启动10.6.1审计的概念审计的概念 p审计是监视和记录用户对数据库所进行的操作,以供DBA进行统计和分析。
p利用审计可以完成下列任务:n调查数据库中的可疑活动调查数据库中的可疑活动n监视和收集特定数据库活动的数据监视和收集特定数据库活动的数据p一条审计记录中包含用户名、会话标识、终端标识、所访问的模式对象名称、执行的操作、操作的完整语句代码、日期和时间戳、所使用的系统权限等10.6.2审计分类审计分类 p语句审计(Statement Auditing):对特定的SQL语句进行审计,不指定具体对象p权限审计(Privilege Auditing):对特定的系统权限使用情况进行审计p对象审计(Object Auditing):对特定的模式对象上执行的特定语句进行审计p精细审计(Fine-Grained Auditing,FGA):对基于内容的各种SQL语句进行审计,可以使用布尔表达式对列级别上的内容进行审计p根据用户执行的语句是否成功,审计分为:n成功执行语句的审计成功执行语句的审计n不成功执行语句的审计不成功执行语句的审计n无论语句是否执行成功都进行审计无论语句是否执行成功都进行审计p根据对同一个语句审计次数的不同,审计分为:n会话级审计:对某一个用户或所有用户的同一个语句会话级审计:对某一个用户或所有用户的同一个语句只审计一次,形成一条审计记录;只审计一次,形成一条审计记录;n存取方式审计:对某一个用户或所有用户的同一个语存取方式审计:对某一个用户或所有用户的同一个语句每执行一次便审计一次,即同一条语句形成多个审句每执行一次便审计一次,即同一条语句形成多个审计记录。
计记录10.6.3审计的启动审计的启动p通过修改静态参数AUDIT_TRAIL值来启动或关闭数据库的审计功能pAUDIT_TRAIL参数可以取值:为DB,OS,NONE,TRUE,FALSE,DB_EXTENDED,XML或EXTENDEDnDB表示启动审计功能,审计信息写入表示启动审计功能,审计信息写入SYS.AUD$数据字典中;数据字典中;nOS表示启动审计功能,审计信息写入操作系统文件中;表示启动审计功能,审计信息写入操作系统文件中;n默认为默认为NONE,表示不启动审计功能;,表示不启动审计功能;nTRUE功能与功能与DB选项一样;选项一样;nFALSE表示不启动审计功能,但表示不启动审计功能,但Oracle会监视特定活动并写入会监视特定活动并写入操作系统文件,如例程的启动、关闭以及操作系统文件,如例程的启动、关闭以及DBA连接数据库等连接数据库等p通过SQL*Plus环境启动数据库的审计功能nALTER SYSTEM SET audit_trail ='DB' SCOPE=SPFILE;nSHUTDOWN IMMEDIATEnSTARTUP p通过OEM数据库控制台启动数据库的审计功能。
10.7 利用利用OEM进行安全管理进行安全管理p用户管理 p角色管理 p概要文件管理 p审计设置((1)用户管理)用户管理 ((2)角色管理)角色管理p单击“角色”链接后进入角色管理界面,可以完成数据库角色的创建、编辑、查看、删除等操作p对角色的管理过程与用户管理过程基本相似,可以参考用户管理 ((3)概要文件管理)概要文件管理 ((4)审计设置)审计设置•5、世上最美好的事是:我已经长大,父母还未老;我有能力报答,父母仍然健康• 6、没什么可怕的,大家都一样,在试探中不断前行• 7、时间就像一张网,你撒在哪里,你的收获就在哪里纽扣第一颗就扣错了,可你扣到最后一颗才发现有些事一开始就是错的,可只有到最后才不得不承认• 8、世上的事,只要肯用心去学,没有一件是太晚的要始终保持敬畏之心,对阳光,对美,对痛楚• 9、别再去抱怨身边人善变,多懂一些道理,明白一些事理,毕竟每个人都是越活越现实• 10、山有封顶,还有彼岸,慢慢长途,终有回转,余味苦涩,终有回甘• 11、人生就像是一个马尔可夫链,你的未来取决于你当下正在做的事,而无关于过去做完的事。
• 12、女人,要么有美貌,要么有智慧,如果两者你都不占绝对优势,那你就选择善良• 13、时间,抓住了就是黄金,虚度了就是流水理想,努力了才叫梦想,放弃了那只是妄想努力,虽然未必会收获,但放弃,就一定一无所获• 14、一个人的知识,通过学习可以得到;一个人的成长,就必须通过磨练若是自己没有尽力,就没有资格批评别人不用心开口抱怨很容易,但是闭嘴努力的人更加值得尊敬• 15、如果没有人为你遮风挡雨,那就学会自己披荆斩棘,面对一切,用倔强的骄傲,活出无人能及的精彩•5、人生每天都要笑,生活的下一秒发生什么,我们谁也不知道所以,放下心里的纠结,放下脑中的烦恼,放下生活的不愉快,活在当下人生喜怒哀乐,百般形态,不如在心里全部淡然处之,轻轻一笑,让心更自在,生命更恒久积极者相信只有推动自己才能推动世界,只要推动自己就能推动世界• 6、人性本善,纯如清溪流水凝露莹烁欲望与情绪如风沙袭扰,把原本如天空旷蔚蓝的心蒙蔽但我知道,每个人的心灵深处,不管乌云密布还是阴淤苍茫,但依然有一道彩虹,亮丽于心中某处• 7、每个人的心里,都藏着一个了不起的自己,只要你不颓废,不消极,一直悄悄酝酿着乐观,培养着豁达,坚持着善良,只要在路上,就没有到达不了的远方!• 8、不要活在别人眼中,更不要活在别人嘴中。
世界不会因为你的抱怨不满而为你改变,你能做到的只有改变你自己!• 9、欲戴王冠,必承其重哪有什么好命天赐,不都是一路披荆斩棘才换来的• 10、放手如拔牙牙被拔掉的那一刻,你会觉得解脱但舌头总会不由自主地往那个空空的牙洞里舔,一天数次不痛了不代表你能完全无视,留下的那个空缺永远都在,偶尔甚至会异常挂念适应是需要时间的,但牙总是要拔,因为太痛,所以终归还是要放手,随它去• 11、这个世界其实很公平,你想要比别人强,你就必须去做别人不想做的事,你想要过更好的生活,你就必须去承受更多的困难,承受别人不能承受的压力• 12、逆境给人宝贵的磨炼机会只有经得起环境考验的人,才能算是真正的强者自古以来的伟人,大多是抱着不屈不挠的精神,从逆境中挣扎奋斗过来的• 13、不同的人生,有不同的幸福去发现你所拥有幸运,少抱怨上苍的不公,把握属于自己的幸福你,我,我们大家都可以经历幸福的人生• 14、给自己一份坚强,擦干眼泪;给自己一份自信,不卑不亢;给自己一份洒脱,悠然前行轻轻品,静静藏为了看阳光,我来到这世上;为了与阳光同行,我笑对忧伤• 15、总不能流血就喊痛,怕黑就开灯,想念就联系,疲惫就放空,被孤立就讨好,脆弱就想家,不要被现在而蒙蔽双眼,终究是要长大,最漆黑的那段路终要自己走完。
•5、从来不跌倒不算光彩,每次跌倒后能再站起来,才是最大的荣耀• 6、这个世界到处充满着不公平,我们能做的不仅仅是接受,还要试着做一些反抗• 7、一个最困苦、最卑贱、最为命运所屈辱的人,只要还抱有希望,便无所怨惧• 8、有些人,因为陪你走的时间长了,你便淡然了,其实是他们给你撑起了生命的天空;有些人,分开了,就忘了吧,残缺是一种大美• 9、照自己的意思去理解自己,不要小看自己,被别人的意见引入歧途• 10、没人能让我输,除非我不想赢!• 11、花开不是为了花落,而是为了开的更加灿烂• 12、随随便便浪费的时间,再也不能赢回来• 13、不管从什么时候开始,重要的是开始以后不要停止;不管在什么时候结束,重要的是结束以后不要后悔• 14、当你决定坚持一件事情,全世界都会为你让路• 15、只有在开水里,茶叶才能展开生命浓郁的香气。
