ubuntu informix权限怎么设置
小樊
35
2025-12-23 00:14:44
Ubuntu 上 Informix 权限设置指南
一 系统层权限设置
- 创建专用的系统用户与组(示例使用 informix:informix,UID/GID 为 3000/3000):
- 命令:sudo groupadd -g 3000 informix;sudo useradd -u 3000 -g 3000 -d /opt/IBM/informix -m informix
- 目录与实例文件权限:
- 安装目录:sudo chown -R informix:informix /opt/IBM/informix;sudo chmod -R 755 /opt/IBM/informix
- 数据目录(示例 /dbs):sudo mkdir -p /dbs;sudo chown informix:informix /dbs;sudo chmod 755 /dbs
- 设备/数据文件(如 rootdbs、datadbs):先 touch 创建空文件,再 sudo chown informix:informix 文件名;sudo chmod 660 文件名
- 临时目录要求:
- 若使用 /opt/IBM/informix/tmp,需 sudo chmod 770 /opt/IBM/informix/tmp,避免“too secure”报错
- 安全基线:
- 避免对实例目录设置 0777 这类含“公共写”的权限,防止 oninit 报“permissions 0777 include public write access”
- 说明:
- 以上属主属组与权限为 Informix 在 Linux/Unix 上的通用实践,Ubuntu 同样适用;目录与文件路径可按实际环境调整。
二 数据库层权限设置
- 以数据库管理员(如 informix 用户)登录数据库环境后,使用 SQL 进行授权与回收(示例):
- 创建用户:CREATE USER appuser WITH PASSWORD ‘******’;
- 授予数据库权限:GRANT CONNECT TO appuser; GRANT RESOURCE TO appuser;
- 授予 DBA:GRANT DBA TO appuser;(谨慎授予)
- 授予/回收表级权限:GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.mytab TO appuser; 或 REVOKE …
- 授予/回收视图/序列/存储过程权限:使用相应的 GRANT/REVOKE 语法
- 将用户加入角色并授权:CREATE ROLE report_role; GRANT SELECT ON mydb.rpt_view TO report_role; GRANT report_role TO appuser;
- 要点:
- 遵循最小权限原则;应用账号通常仅需对业务表授予所需 DML,DBA 账号单独管理
- 生产环境建议通过角色管理权限,便于审计与回收
三 常见权限报错与修复
- oninit -ivy 报 “permissions 0777 include public write access”
- 修复:将实例目录及子目录权限收敛为 755(或更严格的 750),并确保不含“其他写”位;如:sudo chmod -R 755 /opt/IBM/informix
- “directory …/tmp is too secure (has mode 755, needs 770)”
- 修复:sudo chmod 770 /opt/IBM/informix/tmp
- “path is not trusted”
- 修复:检查并修正目录属主属组为 informix:informix,权限为 755(或更严格),确保实例目录受信
- “Fatal error in shared memory creation / number of file descriptors is limited”
- 修复:在启动前提升文件描述符限制,例如 ulimit -n 65535;并在 /etc/security/limits.conf 增加:* soft nofile 65535;* hard nofile 65535,然后重新登录/重启
- 说明:
- 上述报错及修复方式在 Informix on Linux 环境中具有代表性,按提示收敛权限与放宽必要的受限资源即可恢复。
四 日常运维与最小权限清单
- 原则:
- 系统层:实例目录与数据文件仅 informix 用户(及必要组)可读写执行;临时目录 770;严禁对实例目录使用 0777
- 数据库层:按业务最小权限授予;通过角色统一管理;定期审计与回收不必要权限
- 快速检查清单:
- ls -ld /opt/IBM/informix /opt/IBM/informix/tmp /dbs;ls -l /dbs/rootdbs /dbs/datadbs*
- 确认环境变量由 informix 用户正确加载(如 INFORMIXDIR、INFORMIXSERVER、ONCONFIG、PATH、LD_LIBRARY_PATH)
- 以应用账号连接数据库,验证仅具备预期权限(仅查询/更新指定表等)