CentOS 上 Informix 用户与权限管理
一 操作系统层安全与用户
- 创建专用的系统用户与组,仅用于运行 Informix,禁止以 root 直接启动实例。示例:groupadd informix;useradd -g informix -d /opt/informix -m informix;passwd informix。安装与运行均切换到 informix 用户执行。
- 目录与文件权限最小化:安装目录(如 /opt/informix)建议 755,数据块/日志等文件 660,属主属组均为 informix:informix;临时目录(如 /opt/informix/tmp)建议 770,否则实例启动可能报“directory … is too secure (has mode 755, needs 770)”。
- 安全加固:用 firewalld/iptables 仅开放实例监听端口(如 onsoctcp 端口);限制 su 使用范围;为关键文件设置不可变属性(如 chattr +i)以防篡改;设置 TMOUT 自动注销;开启 auditd 审计关键文件与命令。
二 数据库层用户与权限模型
- 创建与修改用户:使用 SQL 语句创建数据库用户并设置口令,例如:CREATE USER john IDENTIFIED BY ‘******’; 修改口令可用 onspassword -u john -p ‘newpass’。
- 授权与回收:按对象粒度授予权限,如数据库级:GRANT ALL PRIVILEGES ON DATABASE mydb TO john;表级:GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE sales.orders TO john;回收用 REVOKE。
- 角色与最小权限:创建角色聚合权限并授予用户,例如:CREATE ROLE sales_role; GRANT ALL PRIVILEGES ON DATABASE mydb TO sales_role; GRANT sales_role TO john; 撤销用 REVOKE sales_role FROM john。
- 权限查询:可查询系统表(如 sysusers)了解用户/角色授权情况。
三 典型操作流程
- 初始化实例与目录权限:以 informix 用户执行安装与初始化(如 oninit -ivy),确保 ROOTPATH/ROOTCHK 等文件权限为 660、目录 755/770 正确,避免因权限不当导致启动失败。
- 创建数据库与对象:CREATE DATABASE mydb; 建表后按需授予用户/角色在库、表、视图、存储过程上的权限。
- 日常运维:变更口令用 onspassword;回收权限用 REVOKE;定期审计用户活动与登录失败日志,配合 auditd 与数据库日志进行审查。
四 常见权限问题与排查
- 启动时报 “permissions 0777 include public write access”:目录或文件权限过宽,需改为更严格权限(如 755/750/660),并确保属主为 informix:informix。
- 报 “directory … is too secure (has mode 755, needs 770)”:临时目录权限不足,执行 chmod 770 /opt/informix/tmp。
- 报 “path is not trusted”:目录信任属性或权限不当,检查并修正目录权限/ACL,使 informix 用户具备所需访问。
- 报 “Fatal error in shared memory creation” 或 “number of file descriptors is limited”:检查系统资源限制(如 ulimit -n 与 /etc/security/limits.conf 的 nofile 设置),并确认共享内存参数与系统内核参数匹配。
五 安全加固清单
- 访问控制:仅开放必要端口与来源网段;禁用不必要的服务与端口;数据库层采用 RBAC 与最小权限原则,必要时启用 LBAC 做行列级细粒度控制。
- 加密与机密性:启用 TDE 对数据/日志/备份加密;对敏感列使用列级加密;传输通道使用 TLS/SSL。
- 审计与监控:开启数据库与系统审计,持续监测失败登录与关键数据访问;定期更新 Informix 补丁与操作系统安全更新。