在Ubuntu系统中,Informix数据库的用户账号本质是系统用户,因此需先通过系统命令管理用户及组,为数据库权限奠定基础:
useradd命令创建专属数据库用户(如informix或自定义用户),避免使用root运行数据库服务。例如:sudo useradd -m -s /bin/bash informix(-m创建家目录,-s指定shell)。passwd命令为用户设置强密码:sudo passwd informix。informix组),便于权限集中管理。例如:sudo usermod -aG informix myuser(-aG表示追加到组)。/opt/IBM/informix/data)需严格控制权限,确保仅informix用户及组可访问。例如:sudo chown -R informix:informix /opt/IBM/informix/data(修改所有者),sudo chmod -R 750 /opt/IBM/informix/data(设置权限:所有者可读写执行,组可读执行,其他用户无权限)。CREATE USER语句创建数据库用户,指定密码(需符合Ubuntu系统的口令复杂度要求,如包含大小写字母、数字、特殊字符中的至少3类)。例如:CREATE USER "mydba" IDENTIFIED BY "StrongPass123!";
DROP USER语句移除用户(需确认用户无活动连接)。例如:DROP USER "mydba";。Informix权限分为系统级别(全局权限)和对象级别(表、视图等具体对象权限):
CONNECT:允许用户连接到数据库(最低权限)。RESOURCE:允许用户创建表、视图等对象(需CONNECT权限)。DBA:最高权限,允许管理所有数据库对象及用户(需谨慎授予)。mydba用户DBA权限):GRANT DBA TO "mydba";
SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)、ALL PRIVILEGES(所有权限)。示例(授予mydba用户对sales.orders表的增删改查权限):GRANT SELECT, INSERT, UPDATE, DELETE ON "sales"."orders" TO "mydba";
CREATE ROLE "sales_role";GRANT SELECT, INSERT ON "sales"."orders" TO "sales_role";GRANT "sales_role" TO "mydba";。REVOKE语句回收权限(语法与GRANT相反)。示例(撤销mydba用户对sales.orders表的DELETE权限):REVOKE DELETE ON "sales"."orders" FROM "mydba";
sysusers查询用户权限(需DBA权限)。示例(查看mydba用户的权限):SELECT * FROM sysusers WHERE username = 'mydba';
onspassword命令(位于$INFORMIXDIR/bin目录)更改用户密码。示例(将mydba用户密码改为NewPass456!!):onspassword -u "mydba" -p "NewPass456!!"
```。
为提升Informix数据库安全性,需结合Ubuntu系统配置以下安全策略:
/etc/pam.d/common-password文件,在password requisite pam_cracklib.so后添加ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1(要求密码包含大小写字母、数字、特殊字符中的至少3类)。/etc/login.defs文件,将PASS_MIN_LEN参数设置为8(强制密码长度≥8位)。/etc/pam.d/common-auth文件,添加auth required pam_tally2.so deny=6 onerr=fail unlock_time=300(连续认证失败6次锁定账户300秒)。/etc/pam.d/common-password文件,添加remember=5(禁止用户重复使用最近5次密码)。/etc/login.defs文件,将PASS_MAX_DAYS参数设置为90(密码有效期≤90天)。$INFORMIXDIR/aaodir/adtcfg文件,将ADTMODE参数设置为7(启用全面审计,记录所有数据库活动及DBSA操作)。以上步骤覆盖了Ubuntu环境下Informix数据库权限管理的核心环节,需根据实际业务需求调整权限粒度,并定期审查权限分配情况,确保数据安全。