Informix的用户权限管理与Ubuntu系统用户关联紧密,需先创建对应的系统用户,再配置Informix数据库权限。
使用adduser命令创建系统用户(如informixuser),并按照提示设置密码及其他信息:
sudo adduser informixuser
为确保Informix客户端/服务端能正确识别路径,需为系统用户配置环境变量。编辑用户家目录下的.bashrc文件:
nano /home/informixuser/.bashrc
在文件末尾添加以下内容(根据实际Informix安装路径调整INFORMIXDIR):
export INFORMIXDIR=/opt/informix # Informix安装根目录
export PATH=$PATH:$INFORMIXDIR/bin # 添加Informix命令到PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INFORMIXDIR/lib # 添加库文件路径
export CLASSPATH=$CLASSPATH:$INFORMIXDIR/lib # 添加Java类路径(如需)
保存后执行source命令使配置生效:
source /home/informixuser/.bashrc
所有Informix数据库操作需以informix系统用户(或具有管理员权限的用户)身份执行:
sudo -i -u informixuser
使用onmode命令创建数据库(如mydatabase):
onmode -c "CREATE DATABASE mydatabase"
Informix数据库用户需通过create user SQL命令创建(而非系统命令),并设置密码:
isql -U informix -P your_password -d mydatabase <<EOF
CREATE USER mydba WITH PASSWORD 'user_password';
EOF
其中,your_password是Informix管理员密码,mydba为要创建的数据库用户,user_password为用户密码。
Informix支持数据库级别权限(控制用户对整个数据库的访问)和表级别权限(控制用户对特定表的访问):
CONNECT):允许用户连接到数据库。GRANT CONNECT ON DATABASE mydatabase TO mydba;
RESOURCE):允许用户创建表、索引等对象(需CONNECT权限)。GRANT RESOURCE ON DATABASE mydatabase TO mydba;
GRANT DBA ON DATABASE mydatabase TO mydba;
SELECT、INSERT):限制用户对特定表的操作。GRANT SELECT, INSERT ON mytable TO mydba;
角色是一组预定义权限的集合,可简化权限分配与管理:
CREATE ROLE data_reader;
GRANT SELECT ON mytable TO data_reader;
GRANT data_reader TO mydba;
REVOKE data_reader FROM mydba;
使用isql命令以目标用户身份登录,测试权限是否生效:
isql -U mydba -P user_password -d mydatabase
登录后执行SQL语句(如SELECT * FROM mytable),验证是否有相应权限。
DBA权限)。onstat -g sec命令查看用户权限,及时撤销不必要的权限。$INFORMIXDIR/etc/onconfig文件,设置口令复杂度(如长度≥8位,包含数字、字母、特殊字符)。PASSWORD_LIFE_TIME设置为90天)。$INFORMIXDIR/aaodir/adtcfg文件开启审计,跟踪用户活动(如ADTMODE=ON)。informix用户或管理员身份执行命令。INFORMIXDIR环境变量是否正确,数据库服务是否启动(sudo service informix start)。COMMIT提交事务。