db2与oracle的全面对比9


例如,要从用户
JEN
撤消
STAFF
表上的 ALTER 特权,可以发出以下语句:

REVOKE ALTER ON TABLE staff FROM USER jen

要从
JEN
撤消
STAFF
表上的所有特权,可以发出以下语句:

REVOKE ALL PRIVILEGES ON TABLE staff FROM USER jen

 

授予和撤消数据库权限

也使用 GRANT 语句将数据库级权限(比如 DBADMLOAD CREATETAB)授予用户或组。例如,以下语句将 DBADM 权限授予用户
SALLY

GRANT DBADM ON DATABASE TO USER sally

以下语句将 LOAD 权限授予组
MAINT

GRANT LOAD ON DATABASE TO GROUP maint

如果 LOAD 操作定义为 REPLACE,那么具有 LOAD 权限的用户还需要 INSERT 特权(为了将数据装载到表中)和 DELETE 特权。

要撤消数据库级权限,使用 REVOKE 语句。例如,要从组 MAINT 撤消 LOAD 权限,可以发出以下语句:

REVOKE LOAD ON DATABASE FROM GROUP maint

 

 

 

5.6    注意事项

    Public

DB2 UDB 在内部使用一个伪组 PUBLIC,可以对它授予和撤消特权。PUBLIC 实际上并不是外部安全设施中定义的一个组,而是一种向成功经过身份验证的用户分配特权的方式。可以对 PUBLIC 组授予和撤消特权,就像对其他组一样。例如,要从 PUBLIC 组撤消 IMPLICIT_SCHEMA 权限,可以发出以下语句:

REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC

重要的是,要理解向 PUBLIC 组授予特权的安全影响。任何提供了有效用户 ID 和密码的用户都能够执行 PUBLIC 组有权执行的操作。

    With grant option

GRANT ALTERIN, CREATEIN, DROPIN ON SCHEMA ACCT TO GROUP G1 WITH GRANT OPTION

    要撤消 DBADM 权限,必须具有 SYSADM 权限。

    在采用server认证的方式下,数据库用户就是os用户。若要新增一个用户,先要在操作系统上新增一个用户,在数据库内进行授权来实现访问控制

6     !异常的公式结尾数据库审计

6.1    审计功能介绍


1. DB2 UDB 架构中的 DB2 审计功能

 

1. 可以审计的数据库事件类型

事件类型

描述

审计
(AUDIT)

    当审计设置被更改或者审计日志被访问时生成记录

权限检查
(CHECKING)

    在对访问或操作 DB2 对象或函数的尝试进行权限检查时生成记录

对象维护
(OBJMAINT)

    在创建或删除数据对象时生成记录

安全性维护
(SECMAINT)

    在授予或者撤销对象或数据库特权或 DBADM 权限时生成记录

    当数据库管理器的安全性配置参数 SYSADM_GROUPSYSCTRL_GROUP SYSMAINT_GROUP 被修改时也会生成记录

系统管理
(SYSADMIN)

    当执行需要 SYSADMSYSMAINT SYSCTRL 权限的操作时生成记录

用户验证
(VALIDATE)

    当认证用户或检索系统安全性信息时生成记录

操作上下文
(CONTEXT)

    当执行数据库操作时,生成记录以便显示操作上下文

    这样分类可以更好地解释审计记录。当与日志的事件相关符字段一起使用时,可以从一组事件跟踪回到一个数据库操作,该数据库操作可以提供分析审计结果所需的上下文。

例如,如果只需要审计数据库连接和系统管理事件类型,那么在配置审计功能时应该仅指定 VALIDATE SYSADMIN 事件类型

 

6.2    如何配置审计

如果将缓冲区大小设置为 0,那么将发生同步写日志操作,而不使用审计缓冲区。在这种配置中,生成审计记录的事件必须等到记录被写到磁盘上,才能返回它的状态,配置audit_buf_sz命令:

 

update dbm cfg using audit_buf_sz 10

 

清单 1. db2audit 实用程序的语法

                

>>-db2audit–+-configure–+-reset——————-+————————–+-><

| ‘-| Audit Configuration |-‘ |

+-describe——————————————————–+

+-extract–| Audit Extraction |———————————–+

+-flush———————————————————–+

+-prune–+-all————————————————–+-+

| ‘-date–YYYYMMDDHH–+——————————–+-‘ |

| ‘-pathname–Path_with_temp_space-‘ |

+-start———————————————————–+

‘-stop————————————————————‘

 

Audit Configuration:

 

|–+—————————–+–+———————+—–>

‘-scope–+-all————–+-‘ ‘-status–+-both—-+-‘

| .-,————. | +-success-+

| V | | ‘-failure-‘

‘—+-audit—-+-+-‘

+-checking-+

+-objmaint-+

+-secmaint-+

+-sysadmin-+

+-validate-+

‘-context–‘

 

>–+———————–+————————————|

‘-errortype–+-audit–+-‘

‘-normal-‘

 

Audit Extraction:

 

|–+-file–output-file———————+——————–>

‘-delasc–+—————————+-‘

‘-delimiter–load-delimiter-‘

 

>–+—————————-+——————————->

| .-,————. |

| V | |

‘-category—-+-audit—-+-+-‘

+-checking-+

+-objmaint-+

+-secmaint-+

+-sysadmin-+

+-validate-+

‘-context–‘

 

>–+————————-+–+———————+———|

‘-database–database-name-‘ ‘-status–+-success-+-‘

‘-failure-‘

 

为了更好地理解如何使用该命令语法,本文给出了一些例子。在第一个例子中,需要将审计功能配置成只记录失败的 AUDIT VALIDATE 事件,并使用 NORMAL 错误处理选项。为此,发出以下 db2audit 命令:

db2audit configure scope audit, validate status failure errortype normal 

 

为了将审计功能配置成监视所有事件类型,同时记录成功的和失败的尝试,并且使用 AUDIT 错误处理选项,可发出以下 db2audit 命令:

db2audit configure scope all status both errortype audit 

 

为了查看当前审计配置设置和状态,请使用以下 db2audit 命令:

db2audit describe 

 

 

其它相关命令:

db2audit configure reset

db2audit start/stop

db2audit flush

db2audit extract delasc delimiter !

db2audit extract delasc delimiter ! category audit database sample status failure

db2audit prune date YYYYMMDDHH

db2audit prune all
					

6.3    注意事项

    Db2审计日志,以文件的形式的存放。该文件可读性比较差,需要后续做进一步的入库处理

    Db2审计没有做到对特定对象的单独审计,所有的审计都针对数据库级,在实际中可用性不大。审计功能的开启将对数据库性能产生较大的影响

    同步与异步写日志选择

在选择同步还是异步写日志时,要考虑的一个重要因素就是当数据库管理器发生错误时情况会怎样。如果采用异步写日志的方式,那么在发生错误时,可能会丢失多条审计记录,因为这些审计记录在被写到磁盘之前都在缓冲区中。如果同步写日志,那么只会丢失一条记录,因为发生的错误最多只能阻止一条审计记录被写到磁盘。

 


 

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注