在Ubuntu上管理Informix权限前,需完成以下基础配置:
创建系统用户:Informix服务需专用系统用户(通常为informix),负责运行数据库进程。使用以下命令创建并设置密码:
sudo adduser informix
sudo passwd informix
配置环境变量:编辑informix用户的~/.bashrc或~/.profile文件,添加Informix路径和环境变量:
export INFORMIXDIR=/opt/IBM/informix # 根据实际安装路径调整
export PATH=$INFORMIXDIR/bin:$PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$LD_LIBRARY_PATH
export ONCONFIG=onconfig # Informix配置文件名(默认)
执行source ~/.bashrc使变量生效。
设置数据目录权限:Informix数据目录(如$INFORMIXDIR/data)需严格限制为informix用户所有,防止未授权访问:
sudo chown -R informix:informix $INFORMIXDIR/data
sudo chmod -R 700 $INFORMIXDIR/data
使用SQL的CREATE USER语句创建数据库用户,指定密码(建议使用强密码,包含大小写字母、数字和特殊字符):
-- 登录Informix数据库(需有DBA权限)
isql -U informix -P informix_pwd -d sysmaster
-- 创建用户(例如:创建用户"sales_user",密码"Sales@1234")
CREATE USER sales_user IDENTIFIED BY Sales@1234;
注意:IDENTIFIED BY是Informix的关键字,用于设置用户密码。
权限分为系统级(数据库访问)和对象级(表、视图等操作),推荐使用角色简化权限管理:
系统级权限:
GRANT CONNECT ON DATABASE your_db TO sales_user;
GRANT RESOURCE ON DATABASE your_db TO sales_user;
GRANT DBA ON DATABASE your_db TO sales_user;
对象级权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE your_schema.sales_table TO sales_user;
-- 创建角色
CREATE ROLE sales_role;
-- 授予角色权限
GRANT SELECT, INSERT ON TABLE your_schema.sales_table TO sales_role;
-- 将角色分配给用户
GRANT sales_role TO sales_user;
使用REVOKE语句撤销已授予的权限:
REVOKE CONNECT ON DATABASE your_db FROM sales_user;
REVOKE SELECT, INSERT ON TABLE your_schema.sales_table FROM sales_user;
REVOKE sales_role FROM sales_user;
通过查询系统表sysusers查看用户权限详情:
SELECT * FROM sysusers WHERE username = 'sales_user';
或使用Informix提供的工具(如onstat -g usr)查看当前登录用户权限。
密码策略配置:
$INFORMIXDIR/etc/onconfig文件,设置PWD_HISTORY=5)。onconfig中的PWD_EXPIRY=90)。onconfig中的PWD_LOCKTIME=6)。密码修改:
使用onspassword命令修改用户密码(需有DBA权限):
onspassword -u sales_user -p NewSales@1234
执行后会提示输入旧密码(若有)和新密码。
SELECT权限,无需INSERT/UPDATE)。sysusers表,清理离职用户或无用权限;启用Informix审计功能(修改onconfig中的ADTMODE=1),记录用户操作日志。sales_role、report_role),便于批量分配和调整权限。sysusers表和onconfig文件,防止权限丢失。通过以上步骤,可在Ubuntu系统上实现Informix数据库的精细化权限管理,保障数据库安全。操作前请备份重要数据,并参考Informix官方文档确认命令兼容性。