在管理Informix用戶權限前,需確保Linux系統用戶與Informix環境正確配置:
adduser
命令創建專門用于運行Informix的用戶(如informix
),并設置密碼。sudo adduser informix
sudo passwd informix
informix
用戶的.bashrc
或profile
文件,添加以下變量(根據實際安裝路徑調整):export INFORMIXDIR=/opt/informix # Informix安裝目錄
export PATH=$PATH:$INFORMIXDIR/bin # 添加Informix命令到PATH
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$LD_LIBRARY_PATH # 設置庫路徑
執行source ~/.bashrc
使配置生效。使用具有管理員權限的用戶(如informix
)登錄服務器,切換至informix
用戶并啟動Informix服務:
su - informix
oninit -i # 初始化數據庫(若未啟動)
通過isql
工具連接數據庫(默認端口9088):
isql -U informix -P password -d sysmaster # 連接系統數據庫
通過SQL語句創建用戶,可指定密碼、默認表空間等參數:
CREATE USER 'newuser' IDENTIFIED BY 'StrongPassword123';
ALTER USER 'newuser' DEFAULT TABLESPACE userspace; -- 設置默認表空間
刪除用戶前需確認其無未完成事務:
DROP USER 'newuser';
通過系統表查詢當前所有數據庫用戶:
SELECT * FROM sysusers;
授予用戶對特定對象的SELECT、INSERT、UPDATE等權限:
GRANT SELECT, INSERT ON schema_name.table_name TO 'newuser';
授予用戶對整個數據庫的操作權限(如ALL PRIVILEGES):
GRANT ALL PRIVILEGES ON DATABASE mydb TO 'newuser';
創建角色并分配權限,再將角色授予用戶,簡化權限管理:
CREATE ROLE sales_role; -- 創建角色
GRANT ALL PRIVILEGES ON DATABASE mydb TO sales_role; -- 分配權限給角色
GRANT sales_role TO 'newuser'; -- 將角色授予用戶
使用REVOKE
語句撤銷已授予的權限,語法與GRANT
對應:
-- 撤銷表級別權限
REVOKE SELECT, INSERT ON schema_name.table_name FROM 'newuser';
-- 撤銷數據庫級別權限
REVOKE ALL PRIVILEGES ON DATABASE mydb FROM 'newuser';
-- 撤銷角色權限
REVOKE sales_role FROM 'newuser';
使用onspassword
命令修改用戶密碼(需管理員權限):
onspassword -u 'newuser' -p NewStrongPassword456
通過sysusers
系統表查看用戶權限詳情:
SELECT * FROM sysusers WHERE username = 'newuser';
啟用Informix審計功能,跟蹤用戶操作(需修改onconfig
文件):
AUDIT_ON=1 # 開啟審計
AUDIT_FILE_PATH=/opt/informix/audit # 審計日志路徑
AUDIT_MASK=ALL # 記錄所有操作
重啟Informix服務使配置生效:
onmode -ky # 停止服務
oninit -i # 啟動服務
ufw
)限制Informix端口(默認9088)的訪問,僅允許信任IP地址連接:sudo ufw allow from 192.168.1.0/24 to any port 9088/tcp
sudo ufw reload
sysusers
表),確保災難恢復時權限不丟失。