配色: 字号:
第12章安全管理
2022-12-20 | 阅:  转:  |  分享 
  
第12章 安全管理主要内容用户管理权限管理角色管理概要文件管理审计案例数据库安全控制的实现12.1 用户管理用户管理概述 创建用户 修改用户
用户的锁定与解锁删除用户 查询用户信息 12.1.1用户管理概述SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关
闭数据库,拥有数据字典;SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除
用户等。SYSMAN:是OEM的管理员用户,可以对OEM进行配置和管理。DBSNMP:是OEM代理用来监视和管理数据库的用户。PU
BLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需把权限授予PUBLIC就
可以了。12.1.2.创建用户基本语法CREATE USER user_name IDENTIFIED [BY password
|EXTERNALLY|GLOBALLY AS ''external_name''][DEFAULT TABLESPACE table
space_name][TEMPORARY TABLESPACE temp_tablesapce_name][QUOTA n K|
M|UNLIMITED ON tablespace_name][PROFILE profile_name][PASSWORD EX
PIRE][ACCOUNT LOCK|UNLOCK];参数说明user_name:用于设置新建用户名,在数据库中用户名必须是唯一的
;IDENTIFIED:用于指明用户身份认证方式;BY password:用于设置用户的数据库身份认证,其中password为用户
口令;EXTERNALLY:用于设置用户的外部身份认证;GLOBALLY AS''external_name'':用于设置用户的全局身
份认证,其中external_name为Oracle的安全管理服务器相关信息;DEFAULT TABLESPACE:用于设置用户的
默认表空间,如果没有指定,Oracle将数据库默认表空间作为用户的默认表空间;TEMPORARY TABLESPACE:用于设置用
户的临时表空间;QUOTA:用于指定用户在特定表空间上的配额,即用户在该表空间中可以分配的最大 空间;PROFILE:用于为用
户指定概要文件,默认值为DEFAULT,采用系统默认的概要文件;PASSWORD EXPIRE:用于设置用户口令的初始状态为过期,
用户在首次登录数据库时必须修改口令;ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁定;ACCOUNT UNLOC
K:用于设置用户初始状态为不锁定或解除用户的锁定状态注意在创建新用户后,必须为用户授予适当的权限,用户才可以进行相应的数据库操作。
例如,授予用户CREATE SESSION权限后,用户才可以连接到数据库。创建一个用户user1,口令为user1,默认表空间为U
SERS,在该表空间的配额为10MB,初始状态为锁定。CREATE USER user1 IDENTIFIED BY user1
DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK;创建一个用户us
er2,口令为user2,默认表空间为USERS,在该表空间的配额为10MB。口令设置为过期状态,即首次连接数据库时需要修改口令。
概要文件为example_profile(假设该概要文件已经创建)。CREATE USER user2 IDENTIFIED BY
user2 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS PROFILE exampl
e_profile PASSWORD EXPIRE;基本语法ALTER USER user_name [IDENTIFIED][B
Y password|EXTERNALLY|GLOBALLY AS ''external_name''][DEFAULT TABLES
PACE tablespace_name][TEMPORARY TABLESPACE temp_tablesapce_name][
QUOTA n K|M|UNLIMITED ON tablespace_name][PROFILE profile_name][D
EFAULT ROLE role_list|ALL [EXCEPT role_list] |NONE][PASSWORD EXPI
RE][ACCOUNT LOCK|UNLOCK]; 12.1.3 修改用户参数说明role_list:角色列表;ALL :表示所有
角色;EXCEPT role_list:表示除了role_list列表中的角色之外的其他角色;NONE:表示没有默认角色。注意,指
定的角色必须是使用GRANT命令直接授予该用户的角色。将用户user1的口令修改为newuser1,同时将该用户解锁。ALTER
USER user1 IDENTIFIED BY newuser1 ACCOUNT UNLOCK;修改用户user2的默认表空间为
ORCLTBS1,在该表空间的配额为20MB,在USERS表空间的配额为10MB。ALTER USER user4 DEFAULT
TABLESPACE ORCLTBS1 QUOTA 20M ON ORCLTBS1 QUOTA 10M ON USERS;12
.1.4 用户的锁定与解锁用户的锁定与解锁某个用户暂时离开工作 某个用户永久离开工作应用程序开发过程中使用的一些数据库用户账户
DBA创建的特殊用户帐户示例ALTER USER oe ACCOUNT LOCK;ALTER USER scott ACCOUNT
UNLOCK;12.1.5删除用户基本语法DROP USER user_name [ CASCADE ];步骤先删除用户所拥有的
对象再删除用户将参照该用户对象的其他数据库对象标志为INVALID12.1.6查询用户信息ALL_USERS:包含数据库所有用户的
用户名、用户ID和用户创建时间。DBA_USERS:包含数据库所有用户的详细信息。USER_USERS:包含当前用户的详细信息。
DBA_TS_QUOTAS:包含所有用户的表空间配额信息。USER_TS_QUOTAS:包含当前用户的表空间配额信息。V$SESS
ION:包含用户会话信息。V$OPEN_CURSOR:包含用户执行的SQL语句信息。查看数据库所有用户名及其默认表空间。SELEC
T SERNAME,DEFAULT_TABLESPACE FROM DBA_USERS; 查看数据库中各用户的登录时间、会话号。S
ELECT SID,SERIAL#,LOGON_TIME,USERNAME FROM V$SESSION; 12.2 权限管理权限
管理概述系统权限的授予与回收对象权限的授予与回收查询权限信息12.2.1权限管理概述概念所谓权限就是执行特定类型SQL命令或访问其
他用户的对象的权利。用户在数据库中可以执行什么样的操作,以及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。分类系统权限:系
统权限是指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。例如,CREATE SESSION权限、CREATE
ANY TABLE权限。对象权限:对象权限是指对某个特定的数据库对象执行某种操作的权限。例如,对特定表的插入、删除、修改、查询的
权限。授权方法直接授权:利用GRANT命令直接为用户授权。间接授权:先将权限授予角色,然后再将角色授予用户。12.2.2系统权限的
授予与回收系统权限分类系统权限的授权 系统权限的回收 (1)系统权限分类一类是对数据库某一类对象的操作能力,通常带有ANY关键字。
例如,CREATE ANY INDEX,ALTER ANY INDEX,DROP ANY INDEX 。另一类系统权限是数据库级别
的某种操作能力。例如,CREATE SESSION。(2)系统权限的授权语法为GRANT sys_priv_list TO use
r_list|role_list|PUBLIC [WITH ADMIN OPTION];参数说明:sys_priv_list:表示
系统权限列表,以逗号分隔;user_list:表示用户列表,以逗号分隔;role_list:表示角色列表,以逗号分隔;PUBLIC
:表示对系统中所有用户授权;WITH ADMIN OPTION:表示允许系统权限接收者再把此权限授予其他用户。系统权限授予时需要注
意的几点:只有DBA才应当拥有ALTER DATABASE 系统权限。应用程序开发者一般需要拥有CREATE TABLE、CREA
TE VIEW和CREATE INDEX等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH
ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。为PUBLIC用户组授予CREAT
E SESSION系统权限。GRANT CREATE SESSION TO PUBLIC;为用户user1授予CREATE SES
SION,CREATE TABLE,CREATE INDEX系统权限。GRANT CREATE SESSION,CREATE TA
BLE,CREATE VIEW TO user1; 为用户user2授予CREATE SESSION,CREATE TABLE ,
CREATE INDEX系统权限。user2获得权限后,为用户user3授予CREATE TABLE权限。GRANT CREAT
E SESSION,CREATE TABLE,CREATE VIEW TO user2 WITH ADMIN OPTION;CON
NECT user2/user2 @HUMAN_RESOURCE GRANT CREATE TABLE TO user3;语法为R
EVOKE sys_priv_list FROM user_list|role_list|PUBLIC;;注意事项多个管理员授予用
户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户将不再拥有相应的系统权限。 为了回收用户系统权限的传递性(授
权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。如果一个用户获得的系统权限具
有传递性,并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。(3)系统权限的回收 12.2.3 对象
权限的授予与回收对象权限分类对象权限的授权对象权限的回收 (1)对象权限分类在Oracle数据库中共有9种类型的对象权限,不同类型
的模式对象有不同的对象权限,而有的对象并没有对象权限,只能通过系统权限进行控制,如簇、索引、触发器、数据库链接等。 (2)对象权限
的授权 语法GRANT obj_priv_list|ALL ON [schema.]objectTO user_list|role
_list [WITH GRANT OPTION];参数说明obj_priv_list:表示对象权限列表,以逗号分隔;[schem
a.]object:表示指定的模式对象,默认为当前模式中的对象;user_list:表示用户列表,以逗号分隔;role_list:
表示角色列表,以逗号分隔;WITH GRANT OPTION:表示允许对象权限接收者把此对象权限授予其他用户。 将ehr模式下的e
mployees表的SELECT、UPDATE、INSERT权限授予user1用户。GRANT SELECT,INSERT,UPD
ATE ON ehr.employees TO user1;将ehr模式下的employees表的SELECT、UPDATE、IN
SERT权限授予user2用户。user2用户再将employees表的SELECT、UPDATE权限授予user3用户。CONN
ECT system/tiger@HUMAN_RESOURCE GRANT SELECT, INSERT,UPDATE ON eh
r.employees TO user2 WITH GRANT OPTION;CONNECT user2/user2@HUMAN_
RESOURCEGRANT SELECT, UPDATE ON ehr.employees TO user3;语法REVOKE o
bj_priv_list | ALL ON [schema.]object FROM user_list|role_list;注意
事项多个管理员授予用户同一个对象权限后,其中一个管理员回收其授予该用户的对象权限时,该用户不再拥有相应的对象权限。为了回收用户对象
权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,然后再授予其相应的对象权限。如果一个用户
获得的对象权限具有传递性(授权时使用了WITH GRANT OPTION子句),并且给其他用户授权,那么该用户的对象权限被回收后,
其他用户的对象权限也被回收。(3)对象权限的回收 WITH ADMIN OPTION当甲用户授权给乙用户,且激活该选项,则被授权的
乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。当甲用户收回乙用户的权限后,乙用户曾经授给
丙用户的权限仍然存在与WITH GRANT OPTION比较当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能
力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限也被回收。
WITH ADMIN OPTIONDBAGRANTREVOKEJeffEmiJeffEmiDBAGRANTREVOKEWITH
GRANT OPTIONscottuser2user3EmiJeffBob12.2.4查询权限信息DBA_TAB_PRIVS:包含
数据库所有对象的授权信息ALL_TAB_PRIVS:包含数据库所有用户和PUBLIC用户组的对象授权信息USER_TAB_PRIV
S:包含当前用户对象的授权信息DBA_SYS_PRIVS:包含授予用户或角色的系统权限信息USER_SYS_PRIVS:包含授予当
前用户的系统权限信。12.3角色管理角色概述 系统预定义角色 自定义角色利用角色进行权限管理 查询角色信息 12.3.1 Ora
cle数据库角色概述 角色的概念所谓角色就是一系列相关权限的集合12.3.2 预定义角色预定义角色概述预定义角色是指在Oracl
e数据库创建时由系统自动创建的一些常用的角色,这些角色已经由系统授予了相应的权限。DBA可以直接利用预定义的角色为用户授权,也可以
修改预定义角色的权限。 Oracle数据库中有50多个预定义角色。可以通过数据字典视图DBA_ROLES查询当前数据库中所有的预定
义角色,通过DBA_SYS_PRIVS查询各个预定义角色所具有的系统权限。 12.3.3 自定义角色创建角色 角色权限的授予与回
收 修改角色 删除角色 (1)创建角色 语法为CREATE ROLE role_name [NOT IDENTIFIED][IDE
NTIFIED BY password];参数说明role_name:用于指定自定义角色名称,该名称不能与任何用户名或其他角色相同
;NOT IDENTIFIED:用于指定该角色由数据库授权,使该角色生效时不需要口令;IDENTIFIED BY password
:用于设置角色生效时的认证口令。 例如,创建不同类型的角色。CREATE ROLE high_manager_role;CREAT
E ROLE middle_manager_role IDENTIFIED BY middlerole;CREATE ROLE l
ow_manager_role IDENTIFIED BY lowrole;(2)角色权限的授予与回收 说明给角色授予适当的系统权
限、对象权限或已有角色。在数据库运行过程中,可以为角色增加权限,也可以回收其权限。给角色授权时应该注意,一个角色可以被授予另一个角
色,但不能授予其本身,不能产生循环授权。 示例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;GRA
NT SELECT,UPDATE,INSERT,DELETE ON scott.emp TO high_manager_role;
REVOKE CONNECT FROM low_manager_role;REVOKE CREATE TABLE,CREATE V
IEW FROM middle_manager_role;REVOKE UPDATE,DELETE ,INSERT ON scot
t.emp FROM high_manager_role; (3)修改角色概念修改角色是指修改角色生效或失效时的认证方式,也就是说
,是否必须经过Oracle确认才允许对角色进行修改。修改角色的语法ALTER ROLE role_name [NOT IDENTI
FIED]|[IDENTIFIED BY password];示例ALTER ROLE high_manager_role IDE
NTIFIED BY highrole;ALTER ROLE middle_manager_role NOT IDENTIFIED
;(4)删除角色语法结构DROP ROLE role_name;说明如果某个角色不再需要,则可以使用DROP ROLE语句删除角色
。角色被删除后,用户通过该角色获得的权限被回收。12.3.4 利用角色进行权限管理给用户或角色授予角色从用户或角色回收角色 用户
角色的激活或屏蔽 (1)给用户或角色授予角色语法GRANT role_list TO user_list|role_list;例如
,将CONNECT,high_manager_role角色授予用户user1,将RESOURCE,CONNECT角色授予角色mid
dle_manager_role。GRANT CONNECT,high_manager_role TO user1;GRANT R
ESOURCE,CONNECT TO middle_manager_role;(2)从用户或角色回收角色语法为REVOKE rol
e_list FROM user_list|role_list;例如,回收角色middle_manager_role的RESOUR
CE,CONNECT角色。REVOKE RESOURCE,CONNECT FROM middle_manager_role; (3
)用户角色的激活或屏蔽语法为ALTER USER user_name DEFAULT ROLE [role_name]|[ALL
[EXCEPT role_name]]| [NONE]; 示例ALTER USER user1 DEFAULT ROLE NONE
; ALTER USER user1 DEFAULT ROLE CONNECT,DBA; ALTER USER user1 DEF
AULT ROLE ALL; ALTER USER user1 DEFAULT ROLE ALL EXCEPT DBA; 13.3
.5查询角色信息DBA_ROLES:包含数据库中所有角色及其描述;DBA_ROLE_PRIVS:包含为数据库中所有用户和角色授予的
角色信息;USER_ROLE_PRIVS:包含为当前用户授予的角色信息;ROLE_ROLE_PRIVS:为角色授予的角色信息;RO
LE_SYS_PRIVS:为角色授予的系统权限信息;ROLE_TAB_PRIVS:为角色授予的对象权限信息;SESSION_PRI
VS:当前会话所具有的系统权限信息;SESSION_ROLES:当前会话所具有的角色信息。。查询角色CONNECT所具有的系统权限
信息。 SELECT FROM ROLE_SYS_PRIVS WHERE ROLE=''CONNECT''; 查询DBA角色被授予
的角色信息。SELECT FROM ROLE_ROLE_PRIVS WHERE ROLE=''DBA'';12.4概要文件管理概
要文件概述 概要文件中参数介绍 创建概要文件修改概要文件删除概要文件查询概要文件12.4.1 概要文件概述概要文件的作用 资源限
制级别和类型 启用或停用资源限制 (1)概要文件的作用概要文件(PROFILE)是数据库和系统资源限制的集合,是Oracle数据库
安全策略的重要组成部分。利用概要文件,可以限制用户对数据库和系统资源的使用,同时还可以对用户口令进行管理。。在Oracle数据库创
建的同时,系统会创建一个名为DEFAULT的默认概要文件。如果没有为用户显式地指定一个概要文件,系统默认将DEFAULT概要文件作
为用户的概要文件。(2)资源限制级别和类型 资源限制级别会话级资源限制:对用户在一个会话过程中所能使用的资源进行限制。调用级资源限
制:对一条SQL语句在执行过程中所能使用的资源进行限制。资源限制类型?CPU使用时间; 逻辑读; 每个用户的并发会话数; 用户连接
数据库的空闲时间; 用户连接数据库的时间; 私有SQL区和PL/SQL区的使用。(3)启用或停用资源限制 在数据库启动前启用或停用
资源限制将数据库初始化参数文件中的参数RESOURCE_LIMIT的值设置为TRUE或FALSE(默认),来启用或停用系统资源限制
。在数据库启动后启用或停用资源限制使用ALTER SYSTEM语句修改RESOURCE_LIMIT的参数值为TRUE或FALSE,
来启动或关闭系统资源限制。ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; 12.4.2 概要文件中参数
资源限制参数口令管理参数(1)资源限制参数CPU_PER_SESSION:限制用户在一次会话期间可以占用的CPU 时间总量,单位为
百分之一秒。当达到该时间限制后,用户就不能在会话中执行任何操作了,必须断开连接,然后重新建立连接。CPU_PER_CALL:限制每
个调用可以占用的CPU 时间总量,单位为百分之一秒。当一个SQL语句执行时间达到该限制后,该语句以错误信息结束。CONNECT_T
IME:限制每个会话可持续的最大时间值,单位为分钟。当数据库连接持续时间超出该设置时,连接被断开。IDLE_TIME:限制每个会话
处于连续空闲状态的最大时间值,单位为分钟。当会话空闲时间超过该设置时,连接被断开。SESSIONS_PER_USER:限制一个用户
打开数据库会话的最大数量。 LOGICAL_READS_PER_SESSION:允许一个会话读取数据块的最大数量,包括从内存中读取
的数据块和从磁盘中读取的数据块的总和。 LOGICAL_READS_PER_CALL:允许一个调用读取的数据块的最大数量,包括从
内存中读取的数据块和从磁盘中读取的数据块的总和。 PRIVATE_SGA:在共享服务器操作模式中,执行SQL语句或PL/SQL程序
时,Oracle将在SGA中创建私有SQL区。该参数限制在SGA中一个会话可分配私有SQL区的最大值。COMPOSITE_LIMI
T:称为“综合资源限制”,是一个用户会话可以消耗的资源总限额。该参数由CPU_PER_SESSION,LOGICAL_READS_
PER_SESSION,PRIVATE_SGA,CONNECT_ TIME几个参数综合决定。(2)口令管理参数FAILED_LOG
IN_ATTEMPTS:限制用户在登录Oracle数据库时允许失败的次数。一个用户尝试登录数据库的次数达到该值时,该用户的账户将被
锁定,只有解锁后才可以继续使用。 PASSWORD_LOCK_TIME:设定当用户登录失败后,用户账户被锁定的时间长度。 PASS
WORD_LIFE_TIME:设置用户口令的有效天数。达到限制的天数后,该口令将过期,需要设置新口令。PASSWORD_GRACE
_TIME:用于设定提示口令过期的天数。在这几天中,用户将接收到一个关于口令过期需要修改口令的警告。当达到规定的天数后,原口令过期
。PASSWORD_REUSE_TIME:指定一个用户口令被修改后,必须经过多少天后才可以重新使用该口令。PASSWORD_REU
SE_MAX:指定一个口令被重新使用前,必须经过多少次修改。PASSWORD_VERIFY_FUNCTION:设置口令复杂性校验函
数。该函数会对口令进行校验,以判断口令是否符合最低复杂程度或其他校验规则。 12.4.3 创建概要文件语法为CREATE PRO
FILE profile_name LIMITresource_parameters|password_parameters;参数
说明如下。profile_name:用于指定要创建的概要文件名称;resource_parameter:用于设置资源限制参数,形式
为resource_parameter_name integer|UNLIMITED|DEFALUTpassword_param
eters:用于设置口令参数,形式为password_parameter_name integer|UNLIMITED|DEFA
LUT创建一个名为res_profile的概要文件,要求每个用户最多可以创建4个并发会话;每个会话持续时间最长为60分钟;如果会话
在连续20分钟内空闲,则结束会话;每个会话的私有SQL区为100 KB;每个SQL语句占用CPU时间总量不超过10秒。CREATE
PROFILE res_profile LIMITSESSIONS_PER_USER 4 CONNECT_TIME 60 ID
LE_TIME 20 PRIVATE_SGA 100K CPU_PER_CALL 100;创建一个名为pwd_profile的概要
文件,如果用户连续4次登录失败,则锁定该账户,10天后该账户自动解锁。CREATE PROFILE pwd_profile LIM
IT FAILED_LOGIN_ATTEMPTS 4PASSWORD_LOCK_TIME 10;将概要文件分配给用户 可以在创建用
户时为用户指定概要文件CREATE USER user1 IDENTIFIED BY user1 PROFILE res_prof
ile;也可以在修改用户时为用户指定概要文件。ALTER USER user2 PROFILE pwd_profile;;12.4
.4 修改概要文件语法为ALTER PROFILE profile_name LIMIT resource_parameters
|password_parameters;注意对概要文件的修改只有在用户开始一个新的会话时才会生效。修改pwd_profile概要
文件,将用户口令有效期设置为10天。ALTER PROFILE pwd_profile LIMITPASSWORD_LIFE_TI
ME 10;12.4.5 删除概要文件语法DROP PROFILE profile_name [CASCADE];注意如果要删除
的概要文件已经指定给用户,则必须在DROP PROFILE语句中使用CASCADE子句。如果为用户指定的概要文件被删除,则系统自动
将DEFAULT概要文件指定给该用户。删除概要文件pwd_profile。DROP PROFILE pwd_profile CAS
CADE;12.4.6 查询概要文件USER_PASSWORD_LIMITS:包含通过概要文件为用户设置的口令策略信息。USER
_RESOURCE_LIMITS:包含通过概要文件为用户设置的资源限制参数。DBA_PROFILES:包含所有概要文件的基本信息。
12.5 审计 审计介绍启动审计 语句审计 权限审计 对象审计 网络审计 12.5.1 审计概述审计的概念 审计分类 (1)审计
的概念 审计是监视和记录用户对数据库所进行的操作,以供DBA进行统计和分析。利用审计可以完成下列任务:调查数据库中的可疑活动。监视
和收集特定数据库活动的数据。一条审计记录中包含用户名、会话标识、终端标识、所访问的模式对象名称、执行的操作、操作的完整语句代码、日
期和时间戳、所使用的系统权限等。(2)审计分类 语句审计(Statement Auditing):对特定的SQL语句进行审计,不指
定具体对象。权限审计(Privilege Auditing):对特定的系统权限使用情况进行审计。对象审计(Object Audit
ing):对特定的模式对象上执行的特定语句进行审计。网络审计(Network Auditing):对网络协议错误与网络层内部错误进
行审计。根据用户执行的语句是否成功,审计分为:成功执行语句的审计不成功执行语句的审计无论语句是否执行成功都进行审计根据对同一个语句
审计次数的不同,审计分为:会话级审计:对某一个用户或所有用户的同一个语句只审计一次,形成一条审计记录;存取方式审计:对某一个用户或
所有用户的同一个语句每执行一次便审计一次,即同一条语句形成多个审计记录。12.5.2 启动审计通过修改静态参数AUDIT_TRA
IL值来启动或关闭数据库的审计功能。AUDIT_TRAIL参数可以取值:为DB,OS,NONE,TRUE,FALSE,DB_EXT
ENDED,XML或EXTENDED。DB表示启动审计功能,审计信息写入SYS.AUD$数据字典中;OS表示启动审计功能,审计信息
写入操作系统文件中;默认为NONE,表示不启动审计功能;TRUE功能与DB选项一样;FALSE表示不启动审计功能,但Oracle会
监视特定活动并写入操作系统文件,如例程的启动、关闭以及DBA连接数据库等。通过SQLPlus环境启动数据库的审计功能。ALTER
SYSTEM SET audit_trail =''DB'' SCOPE=SPFILE;SHUTDOWN IMMEDIATESTAR
TUP 12.5.2 语句审计概念语句审计是指对特定类型的SQL语句进行审计,与具体的对象没有关系。可以审计某个用户或所有用户
的SQL语句;可以是会话级审计或存取方式审计;可以对成功执行的SQL语句、没有成功执行的SQL语句或无论是否成功执行的SQL语句进
行审计。语句审计的基本语法为AUDIT sql_statement|sql_statement_option [BY user1,
user2…][BY SESSION|ACCESS][WHENEVER [NOT] SUCCESSFUL]参数说明sql_stat
ement:被审计的SQL语句sql_statement_option:被审计的SQL语句选项BY user:指定审计的用户,如果
没有指定,则审计所有用户;BY SESSION:语句级审计,同一个SQL语句只审计一次(默认);BY ACCESS:存取方式审计,
同一个SQL语句执行几次审计几次;WHENEVER SUCCESSFUL:只审计成功的SQL语句;WHENEVER NOT SUC
CESSFUL:只审计不成功的SQL语句。对ehr用户的ALTER TABLE操作、对所有用户的连接操作进行审计。CONN sys
tem/tiger@HUMAN_RESORUCEAUDIT ALTER TABLE BY ehr WHENEVER SUCCESS
FUL;AUDIT ALL STATEMENTS IN SESSION CURRENT BY ACCESS WHENEVER NO
T SUCCESSFUL;如果要了解当前数据库对哪些用户进行了语句审计,以及审计设置信息,可以通过查询数据字典视图DBA_STMT
_AUDIT_OPTS获得。SELECT user_name,audit_option,success FROM dba_stmt
_audit_opts; 取消对某个语句的审计,只需将AUDIT命令改为NOAUDIT命令就可以了。 12.5.4 权限审计概念
权限审计是指对特定系统权限的使用情况进行审计。语法AUDIT system_privilege[BY user1,user2…][
BY SESSION|ACCESS][WHENEVER [NOT] SUCCESSFUL]对用户SCOTT和用户ehr的部分系统权限进行审计。AUDIT CREATE ANY TABLE,CREATE ANY VIEW BY scott,ehr;AUDIT ALTER ANY TABLE BY ehr WHENEVER SUCCESSFUL;如果要了解当前数据库对哪些用户的系统权限进行了审计以及审计设置信息,可以通过查询数据字典DBA_PRIV_AUDIT_OPTS获得。SELECT user_name,privilege,success FROM dba_priv_audit_opts; 取消对某个系统权限的审计,只需将AUDIT命令改为NOAUDIT命令就可以了。12.5.5 对象审计概念对象审计是指对特定模式对象执行的特点操作进行审计,与用户没有关系。语法为AUDIT object_privilege ON schema.object_name[BY user1,user2…][BY SESSION|ACCESS][WHENEVER [NOT] SUCCESSFUL]参数说明object_privilege:特定的对象权限schema.object_name:特定模式对象。 对scott模式下的emp表、dept表进行审计。AUDIT SELECT,UPDATE ON scott.emp BY ACCESS;AUDIT INSERT,DELETE ON scott.dept BY SESSION WHENEVER NOT SUCCESSFUL;如果要了解当前数据库对哪些模式对象进行了审计以及审计设置信息,可以通过查询数据字典视图DBA_OBJ_AUDIT_OPTS获得。SELECT owner,object_type,ins,upd,sel,del FROM dba_obj_audit_opts; 如果要取消对某个模式对象的审计,只需将AUDIT命令改为NOAUDIT命令就可以了。 12.5.6 网络审计网络审计的语法为:AUDIT NETWORK [BY SESSION|ACCESS][WHENEVER [NOT] SUCCESSFUL]对当前网络进行审计。AUDIT NETWORK BY ACCESS;总结用户管理权限管理角色管理概要文件管理审计
献花(0)
+1
(本文系籽油荃面原创)