在 Linux 上的 Informix 中,“设置权限”通常涉及 操作系统权限、Informix 实例权限、数据库对象权限 三个层面。下面按常见场景系统说明。
Informix 通常运行在专用用户下:
# 查看 informix 用户
id informix
建议:
informixinformixinformix:informixchown -R informix:informix /opt/informix
chmod -R 750 /opt/informix
确保只有 informix 有权限修改环境配置:
chown informix:informix ~/.bash_profile
chmod 600 ~/.bash_profile
只有 informix 用户 或 root(不推荐)可以:
oninit # 启动
onmode -ky # 停止
⚠️ 普通用户不能启停实例。
需要:
$INFORMIXSQLHOSTS 访问权限chmod 644 $INFORMIXDIR/etc/sqlhosts
Informix 使用 数据库用户 + 角色机制。
SELECT CURRENT_USER FROM systables WHERE tabid = 1;
Informix 默认使用 OS 用户认证:
useradd testuser
passwd testuser
然后授权:
GRANT CONNECT TO testuser;
| 权限 | 说明 |
|---|---|
| CONNECT | 连接数据库 |
| RESOURCE | 建表、索引 |
| DBA | 数据库管理员 |
示例:
GRANT RESOURCE TO testuser;
GRANT DBA TO testuser;
GRANT SELECT ON customer TO testuser;
GRANT INSERT, UPDATE ON customer TO testuser;
GRANT ALL ON customer TO testuser;
REVOKE UPDATE ON customer FROM testuser;
CREATE ROLE read_role;
GRANT SELECT ON customer TO read_role;
GRANT read_role TO testuser;
SET ROLE read_role;
| 文件 | 建议权限 |
|---|---|
$INFORMIXDIR/etc/sqlhosts |
644 |
$INFORMIXDIR/etc/onconfig |
640 |
| 数据目录 | 750 |
| 日志目录 | 750 |
951: Cannot connect to database server
检查:
sqlhosts 是否正确Linux Informix 权限 = OS 用户权限 + Informix 实例权限 + 数据库/对象权限
如果你能具体说明是 哪一类权限问题(例如:用户连不上、表没权限、实例启不来、某个命令没权限),我可以给你更精确的命令。