温馨提示×

ubuntu中informix如何授权

小樊
46
2026-09-08 08:07:22
栏目: 智能运维

Ubuntu(或 Linux 一般环境) 中使用 IBM Informix 时,“授权”通常指 数据库用户授权(GRANT),而不是操作系统授权。下面按常见场景说明。


一、Informix 用户与操作系统用户的关系

Informix 权限建立在 OS 用户 / 组 之上:

  • Informix 实例用户:informix
  • 数据库用户 = Linux 用户(或通过 USERMAPPING 映射)
  • 通常属于 informix
# 查看用户
id informix

二、登录 Informix 并进入 SQL 模式

su - informix
dbaccess

或指定数据库:

dbaccess mydb

三、基本授权语法(GRANT)

1️⃣ 授权数据库级权限

GRANT CONNECT TO user1;
GRANT RESOURCE TO user1;
GRANT DBA TO user1;

说明:

  • CONNECT:可连接数据库
  • RESOURCE:可建表
  • DBA:数据库管理员

2️⃣ 授权表级权限

GRANT SELECT, INSERT, UPDATE
ON table1
TO user1;

GRANT ALL ON table1 TO user1;

3️⃣ 授权列级权限

GRANT SELECT (col1, col2)
ON table1
TO user1;

4️⃣ 授权给角色(推荐)

CREATE ROLE role_rw;

GRANT SELECT, INSERT ON table1 TO role_rw;

GRANT role_rw TO user1;

5️⃣ 授权给所有用户

GRANT SELECT ON table1 TO PUBLIC;

四、撤销权限(REVOKE)

REVOKE INSERT ON table1 FROM user1;

五、查看已有授权

SELECT * FROM systabauth;
SELECT * FROM sysuserauth;

六、常见问题

❓ Ubuntu 上新用户无法连接

  1. 确保用户存在:
useradd user1
passwd user1
  1. 加入 informix 组:
usermod -aG informix user1
  1. 确保 sqlhosts 配置正确

❓ 使用非 OS 用户(USERMAPPING)

编辑 ONCONFIG

USERMAPPING BASIC

然后:

CREATE USER user1 WITH PASSWORD 'pwd';
GRANT CONNECT TO user1;

七、总结

层级 命令
数据库 GRANT CONNECT / RESOURCE / DBA
GRANT SELECT / INSERT …
角色 CREATE ROLE + GRANT
撤销 REVOKE

如果你有 具体版本(如 Informix 12 / 14)连接方式(socket / TCP)报错信息,可以贴出来,我可以给更精确的授权方案。

0