CentOS环境下SQL*Plus安全设置建议
CREATE SESSION用于连接数据库,SELECT/INSERT/UPDATE用于数据操作,避免直接授予DBA等高权限角色)。例如:CREATE USER app_user IDENTIFIED BY StrongPassword123;
GRANT CREATE SESSION, SELECT ON schema.table TO app_user;
FLUSH PRIVILEGES;
DBA),如需使用角色,应在连接时显式启用(如SET ROLE admin_role;),防止用户默认拥有过高权限。SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'APP_USER';查询用户权限,及时回收不必要的权限(如REVOKE DROP ANY TABLE FROM app_user;)。chage命令配置密码有效期(如90天)、修改间隔(如7天)、过期提醒(如10天):chage -M 90 -m 7 -W 10 app_user
/etc/pam.d/system-auth和/etc/pam.d/password-auth),要求密码包含大小写字母、数字、特殊字符(如dcredit=-1要求至少1个数字,ucredit=-1要求至少1个大写字母),并禁止使用最近5次密码:sed -i '/pam_pwquality.so/s/^/#/; s/$/ dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1 minlen=12 remember=5/' /etc/pam.d/system-auth
passwd -x 90 app_user设置密码最大使用天数,提醒用户主动更换密码。firewalld)仅开放SQL*Plus使用的端口(默认1521)给特定IP段:firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="1521" accept' --permanent
firewall-cmd --reload
$ORACLE_HOME/network/admin/listener.ora),移除TCP以外的协议(如IPC、SDP),仅保留TCP:LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip)(PORT = 1521))
)
)
sqlnet.ora中配置SQLNET.ENCRYPTION_SERVER=REQUIRED和SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED,强制加密客户端与服务器之间的通信,防止数据泄露。SELECT操作:AUDIT SELECT TABLE BY ACCESS;
$ORACLE_HOME/rdbms/audit/)和CentOS系统日志(/var/log/secure),关注异常登录(如频繁失败、非工作时间登录)。DBA_AUDIT_TRAIL),生成审计报告(如每日用户操作汇总),并通过邮件发送给管理员。games、nobody),防止非法使用:usermod -L games # 锁定账户
userdel nobody # 删除账户
$ORACLE_HOME/bin/sqlplus、$ORACLE_HOME/network/admin/tnsnames.ora)的权限正确,仅允许Oracle用户和dba组访问:chmod 750 $ORACLE_HOME/bin/sqlplus
chown oracle:dba $ORACLE_HOME/network/admin/tnsnames.ora
ssh -N -R 1521:localhost:1521 remote_user@remote_server_ip
此时,本地可通过sqlplus user/password@localhost:1521/service_name连接远程数据库。sqlplus user/password),而是通过交互式提示输入(默认行为),或使用加密工具(如Oracle Wallet)存储密码。$ORACLE_HOME/sqlplus/admin/glogin.sql文件,添加自定义提示符(如显示当前用户和数据库),提醒用户当前环境:SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER> "
~/.sqlplusrc),移除自动连接的配置(如CONNECT user/password@service_name),避免未经授权的自动连接。