温馨提示×

Linux Informix怎么设置权限

小樊
42
2026-07-31 13:39:52
栏目: 智能运维

Linux 上的 Informix 中,“设置权限”通常涉及 操作系统权限、Informix 实例权限、数据库对象权限 三个层面。下面按常见场景系统说明。


一、操作系统层面权限(最常见)

1️⃣ Informix 用户和组

Informix 通常运行在专用用户下:

# 查看 informix 用户
id informix

建议:

  • Informix 用户informix
  • Informix 组informix
  • 数据目录、日志目录必须属于 informix:informix
chown -R informix:informix /opt/informix
chmod -R 750 /opt/informix

2️⃣ 环境变量权限

确保只有 informix 有权限修改环境配置:

chown informix:informix ~/.bash_profile
chmod 600 ~/.bash_profile

二、Informix 实例级权限

1️⃣ 谁可以启动/停止数据库

只有 informix 用户 或 root(不推荐)可以:

oninit      # 启动
onmode -ky  # 停止

⚠️ 普通用户不能启停实例。


2️⃣ 允许普通用户连接实例

需要:

  • 操作系统用户存在
  • $INFORMIXSQLHOSTS 访问权限
  • 有数据库用户权限
chmod 644 $INFORMIXDIR/etc/sqlhosts

三、数据库用户与权限(重点)

Informix 使用 数据库用户 + 角色机制

1️⃣ 查看当前用户

SELECT CURRENT_USER FROM systables WHERE tabid = 1;

2️⃣ 创建数据库用户(基于 OS 用户)

Informix 默认使用 OS 用户认证

useradd testuser
passwd testuser

然后授权:

GRANT CONNECT TO testuser;

3️⃣ 常见权限类型

权限 说明
CONNECT 连接数据库
RESOURCE 建表、索引
DBA 数据库管理员

示例:

GRANT RESOURCE TO testuser;
GRANT DBA TO testuser;

四、表 / 对象级权限

1️⃣ 表权限

GRANT SELECT ON customer TO testuser;
GRANT INSERT, UPDATE ON customer TO testuser;
GRANT ALL ON customer TO testuser;

2️⃣ 收回权限

REVOKE UPDATE ON customer FROM testuser;

五、角色(Role)管理(推荐)

1️⃣ 创建角色

CREATE ROLE read_role;

2️⃣ 给角色授权

GRANT SELECT ON customer TO read_role;

3️⃣ 把角色给用户

GRANT read_role TO testuser;

4️⃣ 用户启用角色

SET ROLE read_role;

六、常见配置文件权限检查

文件 建议权限
$INFORMIXDIR/etc/sqlhosts 644
$INFORMIXDIR/etc/onconfig 640
数据目录 750
日志目录 750

七、典型问题排查

❌ 连接失败

951: Cannot connect to database server

检查:

  • sqlhosts 是否正确
  • 端口是否监听
  • 用户是否存在
  • 是否有 CONNECT 权限

八、总结一句话

Linux Informix 权限 = OS 用户权限 + Informix 实例权限 + 数据库/对象权限


如果你能具体说明是 哪一类权限问题(例如:用户连不上、表没权限、实例启不来、某个命令没权限),我可以给你更精确的命令。

0