全部博文(113)
分类: DB2/Informix
2013-08-12 14:26:34
在Informix中,有三个数据库特权级别:DBA、Resource 和 Connect
Connect 特权允许用户访问数据库以及添加、修改和删除数据。
Resource 特权授予用户所有 Connect 特权,还授予创建新的表、索引和过程的特权。
DBA 特权包括 Connect 和 Resurce 特权,还授予用户把 Resource、Connect 或DBA 特权授予其他用户的权力。具有DBA 特权的用户还可以删除数据库中的所有对象或完全删除数据库。
Informix在数据库、表和列级都应用了安全措施。但是所有安全措施都基于用来连接数库的用户名。Informix 使用关键字 public 表示应用于所有用户的特权。public关键字是一个非常强大的工具,可以开放对数据的访问。
取消Public的Connect特权
默认地,public被授予了connect特权。这意味着任何人,只要持有有效的操作系统用户ID和口令,都可以连接到数据库服务器。
启用审计
应该对关键事件进行审计,例如登陆尝试失败。
取消Public对文件访问例程的权限
默认地,public可以执行文件访问函数,例如lotofile、filetoclob和ifx_file_to_file。这将允许攻击者读、写服务
器上的文件。为帮助解决这一安全漏洞,创建一个名为FileAccess的角色,按照严格的业务需求,只把那些需要访问文件的用户分配为该角色的成员。然
后为该角色分配对文件访问例程的执行权限,并取消public的执行权限。
取消Public对模块例程的执行权限
默认地,public可以执行模块函数,例如ifx_replace_module、ifx_load_internal和
reload_module。这将允许攻击者强制Informix服务器加载任意的库并像Informix用户一样执行代码。为帮助解决这一安全漏洞,创
建一个名为ModuleAccess的角色,按照严格的业务需求,只把那些需要加载模块的用户分配为该角色的成员。然后为该角色分配对这些例程的执行权
限,并取消public的执行权限。
限制语言Usage权限
应该限制被授予了C和Java例程语言usage权限的用户的数量。拥有这些语言的usage权限的任何人都可以像Informix用户一样运行代码。
检查命令
# 显示informix数据库版本、状态,启动时间和所占内存
onstat -
# 查看日志情况(逻辑日志和物力日志,包括页地址)
onstat -l
# 查看配置文件信息($informixdir/etc/$onconfig)
onstat -c
# 查看informix配置参数
cat $INFORMIXDIR/etc/onconfig
# 查看数据库特权命令
Select * from sysusers
# 查看表级别特权
select * from systabauth
# 使用详细列表格式显示数据库事务日志信息记录(系统管理日志)
ls -la $INFORMIXDIR/online.log # System message log file path
# 查看逻辑日志的备份(报警项)
cat $INFORMIXDIR/etc/log_full.sh # Alarm program path
# 显示用户信息
onstat -u
# 显示数据库空间使用信息
onstat -d