在Debian系统中管理Informix数据库用户权限,需结合系统用户管理与Informix数据库权限控制两部分,核心流程包括:登录数据库、创建/管理用户、分配权限、查看/撤销权限及安全加固。以下是具体步骤:
登录服务器
使用具有足够权限的用户(如root或informix系统用户)通过SSH登录Debian服务器:
su - informix # 切换至informix用户(需提前创建)
启动Informix服务
若服务未运行,使用oninit命令启动:
sudo -u informix /opt/IBM/informix/bin/oninit -i # 初始化实例(首次启动需加-i)
注:
/opt/IBM/informix为Informix默认安装路径,需根据实际调整。
Informix用户需对应Linux系统用户(用于权限映射),若使用非系统用户访问数据库,需先创建系统用户:
sudo useradd -m informix_user # 创建系统用户(-m生成家目录)
sudo passwd informix_user # 设置用户密码
注:若使用系统用户(如
informix),可跳过此步。
创建数据库用户
登录Informix数据库(使用dbaccess工具或命令行),执行CREATE USER语句:
CREATE USER "app_user" IDENTIFIED BY "StrongPassword123";
注:用户名称需用双引号包裹(若包含特殊字符),密码需符合复杂度要求。
修改用户密码
ALTER USER "app_user" IDENTIFIED BY "NewPassword456";
sudo passwd informix_user # 若用户映射至系统用户
删除用户
DROP USER "app_user";
注:删除前需确保用户无未完成事务或活动连接。
Informix权限分为系统权限(数据库级)与对象权限(表/视图级),可通过GRANT语句分配:
系统权限(数据库级)
RESOURCE权限才能创建对象)。GRANT CONNECT TO "app_user"; -- 允许连接
GRANT RESOURCE TO "app_user"; -- 允许创建对象
GRANT DBA TO "admin_user"; -- 授予管理员权限
对象权限(表/视图级)
针对具体表或视图,分配SELECT、INSERT、UPDATE、DELETE等权限:
GRANT SELECT, INSERT ON "sales"."orders" TO "app_user"; -- 允许查询和插入订单表
GRANT ALL PRIVILEGES ON "hr"."employees" TO "admin_user"; -- 允许管理员完全控制员工表
注:权限可细化至字段(如
GRANT SELECT(column1) ON table TO user)。
角色管理(可选)
通过角色简化权限分配:
CREATE ROLE "sales_role"; -- 创建角色
GRANT SELECT, INSERT ON "sales"."orders" TO "sales_role"; -- 分配权限给角色
GRANT "sales_role" TO "app_user"; -- 将角色分配给用户
使用REVOKE语句撤销已分配的权限:
REVOKE SELECT, INSERT ON "sales"."orders" FROM "app_user"; -- 撤销表的查询和插入权限
REVOKE DBA FROM "admin_user"; -- 撤销管理员权限
REVOKE "sales_role" FROM "app_user"; -- 移除用户角色
SELECT * FROM sysusers WHERE username = 'app_user';
SHOW GRANTS FOR "app_user"; -- 显示用户所有权限(部分版本支持)
或通过查询系统表获取详细权限:SELECT * FROM sysprivileges WHERE grantee = 'app_user';
口令策略
编辑/etc/login.defs,设置密码复杂度(如最小长度、生存期):
sudo vim /etc/login.defs
修改以下参数:
PASS_MIN_LEN 8 # 密码最小长度
PASS_MAX_DAYS 90 # 密码有效期(天)
PASS_WARN_AGE 7 # 密码过期前警告天数
账户锁定
配置pam_tally2模块,限制失败登录次数:
sudo vim /etc/pam.d/common-auth
添加以下行:
auth required pam_tally2.so deny=3 unlock_time=300 # 失败3次锁定5分钟
审计功能
启用Informix审计,编辑$INFORMIXDIR/aaodir/adtcfg文件:
sudo vim $INFORMIXDIR/aaodir/adtcfg
设置审计参数:
ADTMODE=ON # 开启审计
ADTLEVEL=HIGH # 审计级别(高)
ADTFILE=/var/audit/informix_audit.log # 审计日志路径
重启服务使配置生效:
sudo -u informix /opt/IBM/informix/bin/onmode -ky && sudo -u informix /opt/IBM/informix/bin/oninit -i
文件系统权限
确保Informix数据库文件/目录仅授权用户可访问:
sudo chown -R informix:informix /opt/IBM/informix # 设置属主
sudo chmod -R 750 /opt/IBM/informix # 设置权限(属主可读写执行,组可读执行)
allowed.surrogates文件映射(参考Informix 11.7+文档)。以上步骤覆盖了Debian环境下Informix用户权限管理的核心场景,可根据实际需求调整。