第1章 概要文件和数据库审计
【学习目标】
本章内容介绍了Oracle数据库概要文件和Oracle数据库审计的概念,通过概要文件可以进行口令管理和对用户资源进行限制。通过对数据库的审计可以监视和记录用户对数据库所作的操作,可以更好地保证数据库的安全以及数据库的高效运行。
【本章要点】 ? ? ?
使用概要文件管理口令 使用概要文件进行资源限制
进行语句审计、权限审计和对象审计
【关键术语】
Profiles 概要文件 Resource limits 资源限制 Password expiration 口令失效 Password grace time 口令失效宽限时间 Audit 审计 Privilege audit 权限审计 Audit trail 审计跟踪
Statement audit 语句审计 Object audit 对象审计
Password limits 口令限制 Default profile 默认概要文件 Password verification 口令验证
1.1 概要文件管理
1.1.1 概要文件的作用
概要文件是口令限制和资源限制的命名集合,是Oracle安全策略的重要组成部分,利用概要文件可以对数据库用户进行口令管理和资源限制。例如使用概要文可以指定口令有效期、口令校验函数、用户连接时间以及最大空闲时间等。概要文件具有以下一些作用:
? ? ? ?
限制用户执行消耗资源过度的SQL操作。 自动断开空闲会话。
在大而复杂的多用户数据库系统中合理分配资源。 控制用户口令的使用。
在建立数据库时,Oracle会自动建立名称为DEFAULT的默认概要文件,初始的DEFAULT概要文件的所有口令及资源限制选项值均为UNLIMITED,即未进行任何口令及资源限制。当建立用户时,如果不指定概要文件,则Oracle会将DEFAULT概要文件分配给该用户。根据用户所承担任务的不同,DBA应该建立不同的概要文件,并将概要文件分配给相应用户。一个用户只能分配一个概要文件,一个概要文件可以同时包含口令限制和资源限制。
1.1.2 概要文件内容
概要文件内容包括口令和资源的限制,下面分别介绍这两部分的有关参数。 1. 口令策略参数
口令策略参数可以实现帐户锁定、口令的过期以及口令的复杂度等策略,在概要文件中的口令参数可以有以下几个:
?
FAILED_LOGIN_ATTEMPTS:该参数指定允许的输入错误口令的次数,超过该次数后用户帐户被自动锁定。 ? ?
PASSWORD_LOCK_TIME:用于指定指定账户被锁定的天数(单位:天)。 PASSWORD_LIFE_TIME:指定口令的有效期(单位:天)。如果在达到有效期前用户还没有更换口令,它的口令将失效,这时必须由DBA为它重新设置新的口令。 ? ?
PASSWORD_GRACE_TIME:用于指定口令失效的宽限期(单位:天)。
PASSWORD_REUSE_TIME:指定能够重复使用一个口令前必须经过的时间(单位:天)。 ?
PASSWORD_REUSE_MAX:用于指定在重复使用口令之前必须对口令进行修改的次数。PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX两个参数只能设置一个,另一个必须为UNLIMITED。 ?
PASSWORD_VERIFY_FUNCTION:指定验证口令复杂度的函数。Oracle提供了一个默认的口令校验函数,这可以通过运行脚本utlpwdmg.sql来建立该函数,脚本保存在ORACLE_HOME\\rdbms\\admin目录中。DBA也可以通过修改脚本来实现自己的口令校验函数。
2.资源限制参数
利用概要文件,可以对以下系统资源进行限制。 ? ?
CPU时间 逻辑读
? ? ? ?
用户的并发会话数 空闲时间 连接时间 私有SGA区
对这些资源的限制是通过在概要文件中设置参数来实现的,参数的值可以是一个整数,也可以是UNLIMITED(即不受限制),还可以是DEFAULT(使用DEFAULT概要文件中的参数设置)。下面分别介绍有关参数:
?
CPU_PER_SESSION:限制每个会话所能使用的CPU时间。参数值是一个整数,单位是百分之一秒。 ? ?
SESSIONS_PER_USER:限制每个用户所允许建立的最大并发会话数。
CONNECT_TIME:限制每个会话能连接到数据库的最长时间,超过这个时间会话将自动断开。参数值是一个整数,单位是分钟。 ?
IDLE_TIME:限制每个会话所允许的最长连续空闲时间,超过这个时间会话将自动断开。参数值是一个整数,单位是分钟。 ? ?
LOGICAL_READS_PER _SESSION:限制每个会话所能读取的数据块数目。 PRIVATE_SGA:每个会话分配的私有SGA区大小(以字节为单位)。该参数只对共享服务器模式有效。 ?
CPU_PER_CALL:用于指定每条SQL语句可占用的最大CPU时间,单位是百分之一秒。 ?
LOGICAL_READS_PER_CALL:用于指定每条SQL语句最多所能读取的数据块数目。
1.2 使用概要文件管理口令
Oracle数据库中不同用户账户具有不同的口令,如何防止其他人窃取账户密码是DBA要重点关切的问题。为了加强用户账户的安全性,Oracle提供了概要文件来管理口令,概要文件管理口令有锁定账户、终止口令、口令历史以及口令校验等四种安全保护方式。大家需要注意,前面介绍的概要文件中共包含了7个口令管理选项,如果仅指定某个或某几个选项,那么其他选项将自动使用DEFAULT概要文件的相应选项值。
使用概要文件管理口令主要步骤是先创建概要文件,然后设置相关口令参数,最后把概
要文件分配给用户。建立概要文件是使用CREATE PROFILE命令来完成的,一般情况下建立概要文件是由DBA来完成的,如果要以其他用户身份建立概要文件,则要求该用户必须具有CREATE PROFILE系统权限。
1.2.1 锁定帐户
通过使用概要文件,可以限制登录失败次数,如果连续登录的失败次数超出一定范围,那么Oracle会自动锁定账户。
【实例16-1】为了加强devp用户的口令安全,要限制其登录失败次数为3。 1)以管理员身份登录
SQL>CONNECT / AS SYSDBA
已连接。
2)创建概要文件,设定相关参数
SQL>CREATE PROFILE devp_lock LIMIT FAILED_LOGIN_ATTEMPTS 3; 配置文件已创建
3) 分配概要文件给用户devp,这既可以在建立用户时使用PROFILE子句,也可以在建立用户之后使用ALTER USER语句修改。
SQL>ALTER USER devp PROFILE devp_lock; 用户已更改。
当将概要文件分配给devp用户之后,如果以devp连接到数据库时,连续登录失败次数达到三次,那么系统会自动锁定该用户账户。此时,即使为用户devp提供了正确的口令,也将无法连接到数据库,并显示错误信息。例如:
SQL>connect devp 请输入口令: ERROR:
ORA-28000: the account is locked
1.2.2 终止口令
终止口令用于指定用户口令到期,并强制用户改变口令。当建立用户并为其提供了口令 之后,默认情况下其口令一直有效。为了加强口令安全,用户应该定期修改口令,以防止口令被泄露或被窃取。通过使用概要文件,DBA可以强制用户定期改变其自身口令。
【实例16-2】强制用户devp每隔10天修改其自身口令,并设置两天宽限期。 1)以管理员身份登录
SQL>CONNECT / AS SYSDBA 已连接。
2)创建概要文件,设定相关参数
SQL>CREATE PROFILE devp_life LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2; 配置文件已创建
3) 分配概要文件给用户devp
SQL>ALTER USER devp PROFILE devp_life; 用户已更改。
当将概要文件分配给用户devp之后,第10天登录会显示警告信息: SQL>connect devp/development ERROR:
ORA_28002:the password will expire within 2 days 已连接。
如果第10天未改变口令,那么第11天登录时仍然会显示类似警告信息。但用户如果第 11天仍然未改变口令,那么第12天登录时系统会强制你改变口令,并显示如下信息: SQL>connect devp/development ERROR:
ORA-28001: the password has expired 更改devp的口令 新口令:
重新键入新口令: 口令已更改 已连接。
1.2.3 口令历史
口令历史用于比较用户的新、旧口令,以确保用户在单位时间或特定次数内不会使用以前曾经用过的口令。当口令终止时用户必须要改变自身口令,然后才能登录,但对新口令没有进行任何限制。假定devp原有口令为development,终止口令时新口令仍然可以设置为development,这种做法显然失去了终止口令的含义。为了强制用户使用不同口令,可以使用口令历史选项。
【实例16-3】为了防止用户devp重用旧口令,强制该用户在口令终止10天之内不能重用以前口令。
1)以管理员身份登录
SQL>CONNECT / AS SYSDBA 2)创建概要文件,设定相关参数
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库12、概要文件和数据库审计在线全文阅读。
相关推荐: