12概要文件和数据库审计.docx
- 文档编号:20687728
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:30
- 大小:89.28KB
12概要文件和数据库审计.docx
《12概要文件和数据库审计.docx》由会员分享,可在线阅读,更多相关《12概要文件和数据库审计.docx(30页珍藏版)》请在冰豆网上搜索。
12概要文件和数据库审计
第1章概要文件和数据库审计
【学习目标】
本章内容介绍了Oracle数据库概要文件和Oracle数据库审计的概念,通过概要文件可以进行口令管理和对用户资源进行限制。
通过对数据库的审计可以监视和记录用户对数据库所作的操作,可以更好地保证数据库的安全以及数据库的高效运行。
【本章要点】
•使用概要文件管理口令
•使用概要文件进行资源限制
•进行语句审计、权限审计和对象审计
【关键术语】
Profiles概要文件Passwordlimits口令限制
Resourcelimits资源限制Defaultprofile默认概要文件
Passwordexpiration口令失效Passwordverification口令验证
Passwordgracetime口令失效宽限时间
Audit审计Statementaudit语句审计
Privilegeaudit权限审计Objectaudit对象审计
Audittrail审计跟踪
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概要文件的相应选项值。
使用概要文件管理口令主要步骤是先创建概要文件,然后设置相关口令参数,最后把概要文件分配给用户。
建立概要文件是使用CREATEPROFILE命令来完成的,一般情况下建立概要文件是由DBA来完成的,如果要以其他用户身份建立概要文件,则要求该用户必须具有CREATEPROFILE系统权限。
1.2.1锁定帐户
通过使用概要文件,可以限制登录失败次数,如果连续登录的失败次数超出一定范围,那么Oracle会自动锁定账户。
【实例16-1】为了加强devp用户的口令安全,要限制其登录失败次数为3。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)创建概要文件,设定相关参数
SQL>CREATEPROFILEdevp_lockLIMIT
FAILED_LOGIN_ATTEMPTS3;
配置文件已创建
3)分配概要文件给用户devp,这既可以在建立用户时使用PROFILE子句,也可以在建立用户之后使用ALTERUSER语句修改。
SQL>ALTERUSERdevpPROFILEdevp_lock;
用户已更改。
当将概要文件分配给devp用户之后,如果以devp连接到数据库时,连续登录失败次数达到三次,那么系统会自动锁定该用户账户。
此时,即使为用户devp提供了正确的口令,也将无法连接到数据库,并显示错误信息。
例如:
SQL>connectdevp
请输入口令:
ERROR:
ORA-28000:
theaccountislocked
1.2.2终止口令
终止口令用于指定用户口令到期,并强制用户改变口令。
当建立用户并为其提供了口令
之后,默认情况下其口令一直有效。
为了加强口令安全,用户应该定期修改口令,以防止口令被泄露或被窃取。
通过使用概要文件,DBA可以强制用户定期改变其自身口令。
【实例16-2】强制用户devp每隔10天修改其自身口令,并设置两天宽限期。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)创建概要文件,设定相关参数
SQL>CREATEPROFILEdevp_lifeLIMIT
PASSWORD_LIFE_TIME10
PASSWORD_GRACE_TIME2;
配置文件已创建
3)分配概要文件给用户devp
SQL>ALTERUSERdevpPROFILEdevp_life;
用户已更改。
当将概要文件分配给用户devp之后,第10天登录会显示警告信息:
SQL>connectdevp/development
ERROR:
ORA_28002:
thepasswordwillexpirewithin2days
已连接。
如果第10天未改变口令,那么第11天登录时仍然会显示类似警告信息。
但用户如果第
11天仍然未改变口令,那么第12天登录时系统会强制你改变口令,并显示如下信息:
SQL>connectdevp/development
ERROR:
ORA-28001:
thepasswordhasexpired
更改devp的口令
新口令:
重新键入新口令:
口令已更改
已连接。
1.2.3口令历史
口令历史用于比较用户的新、旧口令,以确保用户在单位时间或特定次数内不会使用以前曾经用过的口令。
当口令终止时用户必须要改变自身口令,然后才能登录,但对新口令没有进行任何限制。
假定devp原有口令为development,终止口令时新口令仍然可以设置为development,这种做法显然失去了终止口令的含义。
为了强制用户使用不同口令,可以使用口令历史选项。
【实例16-3】为了防止用户devp重用旧口令,强制该用户在口令终止10天之内不能重用以前口令。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
2)创建概要文件,设定相关参数
SQL>CREATEPROFILEdevp_hisLIMIT
PASSWORD_LIFE_TIME10
PASSWORD_GRACE_TIME2
PASSWORD_REUSE_TIME10
PASSWORD_REUSE_MAXUNLIMITED;
配置文件已创建
3)分配概要文件给用户devp
SQL>ALTERUSERdevpPROFILEdevp_his;
用户已更改。
注意,前面已经提到过,当使用口令历史选项时,PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX两个参数只能设置一个,另一个必须为UNLIMITED。
当将概要文件分配给用户devp之后,如果前11天没有修改用户口令,那么在第12天登录时,Oracle会强制终止口令,并要求用户改变口令。
但如果仍然使用过去的口令,则口令修改不能成功,如下所示:
SQL>CONNECTdevp/development
ERROR:
ORA-28001:
thepasswordhasexpired
更改devp的口令
新口令:
重新键入新口令:
ERROR:
ORA-28007:
thepasswordcannotbereused
口令未更改
1.2.4口令校验
口令校验是指使用PL/SQL函数检查口令的有效性。
在设置口令时,多数人都习惯于按照自己易记的方式(如用户名、生日等)来指定口令。
但如果其他人很了解用户的各种习惯,那么口令将不再安全。
通过使用口令校验函数,可以强制用户使用复杂的口令。
尽管这种做法会给用户带来一些小麻烦,但却可以大大加强口令的安全性。
大家需要注意,如果要使用口令校验函数,那么必须要以SYS用户建立口令校验函数,并且口令校验函数必须满足如下规范:
function_name(
userid_parameterINVARCHAR2(30),
password_parameterINVARCHAR2(30),
old_password_parameterINVARCHAR2(30))
RETURNBOOLEAN
其中,userid_parameter对应于用户名,password_parameter对应于用户的新口令,old_password_parameter对应于用户的旧口令。
如果函数返回值为TRUE,则表示新口令可以使用;但如果返回值为FALSE,则表示新口令不满足函数规则。
另外,Oracle也提供了默认的口令校验函数VERIFY_FUNCTION,该口令校验函数具有以下一些功能:
•口令最少为4个字符。
•口令不能与用户名相同。
•新口令与旧口令至少有三个字符不同。
•口令至少包含一个阿拉伯字母、一个数字和一个特殊字符。
可以通过以SYS用户身份登录后运行脚本utlpwdmg.sql来建立默认的口令校验函数,脚本保存在ORACLE_HOME\rdbms\admin目录中。
DBA也可以通过修改脚本来实现自己的口令校验函数。
【实例16-4】为用户devp指定口令校验函数以强制它使用复杂口令
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)运行脚本utlpwdmg.sql建立默认口令校验函数VERIFY_FUNCTION。
(当然也可自己创建口令校验函数)
SQL>@%ORACLE_HOME%/rdbms/admin/utlpwdmg.sql
函数已创建。
3)创建概要文件,设定参数
SQL>CREATEPROFILEdevp_verifyLIMIT
PASSWORD_LIFE_TIME10
PASSWORD_GRACE_TIME2
PASSWORD_VERIFY_FUNCTIONverify_function;
配置文件已创建
4)分配概要文件给用户devp
SQL>ALTERUSERdevpPROFILEdevp_verify;
用户已更改。
这样,当修改devp用户口令时,如果不满足函数规则,会出错。
如把devp的口令改成与用户名一样,则会显示如下错误信息:
SQL>alteruserdevpidentifiedbydevp;
alteruserdevpidentifiedbydevp
*
ERROR位于第1行:
ORA-28003:
指定口令的口令验证失败
ORA-20001:
Passwordsameasorsimilartouser
另外,如果你不想使用口令校验函数,则可以将PASSWORD_VERIFY_FUNCTION选项设置为NULL。
1.3使用概要文件管理资源
概要文件不仅可用于管理用户口令,也可用于限制用户的资源占用。
概要文件既可以限制整个会话的资源占用,也可以限制调用级(SQL语句)的资源占用。
但大家需要注意,如果要使用概要文件管理资源,则必须要激活资源限制功能,这可以通过设置初始化参数RESOURCE_LIMIT为TRUE做到:
ALTERSYSTEMSETRESOURCE_LIMIT=TRUE;
使用概要文件管理资源的步骤同管理口令的步骤一样,也是先创建概要文件,然后设置相关资源参数,最后把概要文件分配给用户。
1.3.1限制会话资源
限制会话资源是指限制会话在连接期间所占用的总计资源。
当超过会话资源限制时,系统要么自动断开会话并释放其所占用资源,要么不对SQL语句进行任何处理并返回错误信息。
当连接到数据库时,Oracle会在服务器端为用户进程分配相应的服务器进程(占用内存资源),而当用户发出SQL语句时,所有SQL操作都是由服务器进程来执行的(占用CPU资源)。
即使用户不执行任何操作,服务器进程也会一直占用内存资源。
为了有效地利用CPU和内存资源,就必须对用户资源进行适当限制。
【实例16-5】数据库最多允许两个开发人员以devp用户登录进行应用开发,每个会话连接时间不能超过30min,会话空闲时间不能超过10min。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)创建概要文件,设定参数
SQL>CREATEPROFILEdevp_sessionLIMIT
CPU_PER_SESSION5000
SESSIONS_PER_USER2
CONNECT_TIME30
IDLE_TIME10;
配置文件已创建
3)分配概要文件给用户devp
SQL>ALTERUSERdevpPROFILEdevp_session;
用户已更改。
因为在建立概要文件时指定SESSION_PER_USER选项为2,即允许用户最多可以同时建立两个会话,所以如果用户devp的并发会话个数达到两个,那么当建立第三个会话时则会显示如下错误信息:
SQL>CONNECTdevp/development
ERROR:
ORA-02391:
exceededsimultaneousSESSIONS_PER_USERlimit
因为IDLE_TIME选项被设置为10,所以如果会话空闲时间超过10min,那么Oracle会自动断开会话。
1.3.2限制调用资源
通过限制调用资源,可以确保用户不能执行消耗资源过度的SQL操作。
当超出调用级资源限制时,Oracle会自动终止语句处理并回退该语句操作。
【实例16-6】限制用户devp的调用级资源。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)创建概要文件,设定参数
SQL>CREATEPROFILEdevp_callLIMIT
CPU_PER_CALL200
LOGICAL_READS_PER_CALL3;
配置文件已创建
3)分配概要文件给用户devp
SQL>ALTERUSERdevpPROFILEdevp_call;
用户已更改。
因为在建立概要文件devp_call时指定了LOGICAL_READS_PER_CALL选项为3,所以如果执行单条SQL语句访问的数据块总数超过3,则会显示如下错误信息:
SQL>CONNECTdevp/development
已连接。
SQL>select*fromscott.emp;
select*fromscott.emp
*
ERROR位于第1行:
ORA-02395:
超出IO使用的调用限制
1.4其它操作
1.4.1修改概要文件
当口令和资源限制无法满足用户的实际需求时,你就需要修改概要文件中的口令及资源限制参数。
修改概要文件是使用ALTERPROFILE命令由DBA来完成的;如果要以其它用户身份修改概要文件,则要求该用户必须具有ALTERPROFILE系统权限。
需要注意,修改概要文件对已存在会话没有影响,而只对新会话起作用。
【实例16-7】修改用户devp的口令和资源限制。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)修改概要文件
SQL>ALTERPROFILEdevp_callLIMIT
SESSIONS_PER_USER2
FAILED_LOGIN_ATTEMPTS2
CPU_PER_CALL200;
配置文件已更改
修改用户devp当前的概要文件后,当devp重新登录后,其口令和资源限制就发生变化了,如该用户的口令失败次数只能两次。
1.4.2删除概要文件
当某个概要文件不需要时,可以删除它。
删除概要文件是使用DROPPROFILE命令由DBA来完成的,如果要以其他用户身份删除概要文件,则要求该用户必须具有DROPPROFILE系统权限。
【实例16-8】删除概要文件devp_call
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)删除概要文件
SQL>DROPPROFILEdevp_callCASCADE;
配置文件已丢弃
需要注意,如果概要文件已经被分配给某个用户,那么当删除概要文件时必须带有CASCADE选项。
如果用户的概要文件已经被删除,Oracle将自动为用户重新指定DEFAULT概要文件。
1.4.3显示概要文件信息
Oracle提供了几个数据字典视图查询有关概要文件的信息。
下面分别介绍。
1.显示用户的概要文件
当建立或修改用户时,通过PROFILE子句可以为用户分配概要文件。
如果没有显式地分配概要文件,那么Oracle会将DEFAULT概要文件自动分配给用户。
那么如何确定用户的概要文件呢?
通过查询数据字典视图DBA_USERS,可以取得用户的概要文件信息。
【实例16-9】查询用户devp的概要文件
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)查询
SQL>SELECTprofileFROMDBA_USERSWHEREusername=’DEVP’;
PROFILE
------------------------
DEFAULT
2.显示概要文件的内容
数据字典视图DBA_PROFILES中包含了每个概要文件的内容,通过查询该数据字典视图可以取得用户的口令限制及资源限制信息。
【实例16-10】查询概要文件devp_session的口令和资源限制。
1)以管理员身份登录
SQL>CONNECT/ASSYSDBA
已连接。
2)查询
SQL>SELECT*FROMDBA_PROFILES
WHEREprofile=’DEVP_SESSION’;
PROFILERESOURCE_NAMERESOURCE_TYPELIMIT
-------------------------------------------------------------------------------------------------
DEVP_SESSIONCONNECT_TIMEKERNAL30
DEVP_SESSIONIDLE_TIMEKERNAL10
DEVP_SESSIONSESSIONS_PER_USERKERNAL3
DEVP_SESSIONCPU_PER_SESSIONKERNAL5000
DEVP_SESSIONPASSWORD_LIFE_TIMEPASSWORDDEFAULT
其中:
•PROFILE:
概要文件名称。
•RESOURCE_NAME:
口令或资源选项名。
•RESOURCE_TYPE:
PASSWORD表示口令管理选项,而KERNAL则表示资源限制选项。
•LIMIT:
概要文件选项值。
1.5用控制台管理概要文件
用控制台管理概要文件过程如下:
1)以独立方式启动控制台,连接到要管理的数据库。
展开数据库中的“安全性”项目,然后选中其中的“概要文件”选项,如图16-1。
2)如果要创建概要文件,在“概要文件”选项上右击鼠标,然后在快捷菜单中选择“创建”,弹出如图16-2的对话框。
进入“一般信息”选项卡,首先为新建的概要文件命名,然后可以对各资源参数进行设置。
在设置资源参数时,可以直接在文本框中输入参数值,也可以从对应的下拉列表中选择一个适当的值。
然后进入“口令”选项卡,设置概要文件中的口令参数,如图16-3。
3)完成设置后,单击“创建”按钮。
如果要修改概要文件,在图16-1对话框中双击要修改的概要文件,然后同步骤2一样,在各个选项卡中修改概要文件的口令和资源参数,最后按确定按钮。
图16-1控制台中数据库的概要文件
图16-2为新建概要文件设置资源参数
图16-3为新建概要文件设置口令参数
1.6数据库审计
1.6.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 概要 文件 数据库 审计