首页主机资讯centos sqlplus安全设置建议

centos sqlplus安全设置建议

时间2025-10-28 09:25:03发布访客分类主机资讯浏览310
导读:CentOS环境下SQL*Plus安全设置建议 1. 用户权限精细化管理 最小权限原则分配权限:创建用户时,仅授予完成工作所需的最低权限(如CREATE SESSION用于连接数据库,SELECT/INSERT/UPDATE用于数据操作,...

CentOS环境下SQL*Plus安全设置建议

1. 用户权限精细化管理

  • 最小权限原则分配权限:创建用户时,仅授予完成工作所需的最低权限(如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; )。

2. 密码策略强化

  • 设置密码有效期:通过chage命令配置密码有效期(如90天)、修改间隔(如7天)、过期提醒(如10天):
    chage -M 90 -m 7 -W 10 app_user
    
  • 强制密码复杂度:修改PAM配置文件(/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设置密码最大使用天数,提醒用户主动更换密码。

3. 网络与连接安全

  • 限制远程访问IP:通过CentOS防火墙(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监听器配置文件($ORACLE_HOME/network/admin/listener.ora),移除TCP以外的协议(如IPCSDP),仅保留TCP
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip)(PORT = 1521))
        )
      )
    
  • 启用连接加密:在sqlnet.ora中配置SQLNET.ENCRYPTION_SERVER=REQUIREDSQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED,强制加密客户端与服务器之间的通信,防止数据泄露。

4. 审计与监控

  • 开启数据库审计:通过Oracle审计功能记录用户操作(如登录、数据修改),便于追溯异常行为。例如,审计所有用户的SELECT操作:
    AUDIT SELECT TABLE BY ACCESS;
        
    
  • 监控登录日志:定期检查Oracle审计日志($ORACLE_HOME/rdbms/audit/)和CentOS系统日志(/var/log/secure),关注异常登录(如频繁失败、非工作时间登录)。
  • 使用Shell脚本自动化审计:编写脚本定期查询审计表(如DBA_AUDIT_TRAIL),生成审计报告(如每日用户操作汇总),并通过邮件发送给管理员。

5. 系统与环境安全

  • 锁定无用账户:禁用或删除系统中无用的账户(如gamesnobody),防止非法使用:
    usermod -L games  # 锁定账户
    userdel nobody    # 删除账户
    
  • 保护敏感文件权限:确保Oracle相关文件(如$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反向隧道:若需远程访问SQL*Plus,通过SSH反向隧道将本地端口映射到远程服务器,避免直接暴露1521端口:
    ssh -N -R 1521:localhost:1521 remote_user@remote_server_ip
    
    此时,本地可通过sqlplus user/password@localhost:1521/service_name连接远程数据库。

6. SQL*Plus配置安全

  • 避免明文存储密码:不要在命令行中直接输入密码(如sqlplus user/password),而是通过交互式提示输入(默认行为),或使用加密工具(如Oracle Wallet)存储密码。
  • 配置SQL*Plus提示符:修改$ORACLE_HOME/sqlplus/admin/glogin.sql文件,添加自定义提示符(如显示当前用户和数据库),提醒用户当前环境:
    SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER>
         "
    
  • 禁用自动连接:编辑SQL*Plus配置文件(如~/.sqlplusrc),移除自动连接的配置(如CONNECT user/password@service_name),避免未经授权的自动连接。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos sqlplus安全设置建议
本文地址: https://pptw.com/jishu/736471.html
centos sqlplus版本升级攻略 centos sqlplus数据备份与恢复

游客 回复需填写必要信息