如何在centos上保障sqlplus的数据安全
导读:在 CentOS 上保障 SQL*Plus 的数据安全 一 身份与权限最小化 创建专用数据库账户,遵循最小权限原则,避免使用SYSTEM等默认高权账户进行日常操作。示例:CREATE USER app_user IDENTIFIED BY...
在 CentOS 上保障 SQL*Plus 的数据安全
一 身份与权限最小化
- 创建专用数据库账户,遵循最小权限原则,避免使用SYSTEM等默认高权账户进行日常操作。示例:CREATE USER app_user IDENTIFIED BY StrongPassword123; GRANT CREATE SESSION, SELECT ON schema_name.table_name TO app_user; 按需授予,避免过度授权。
- 分离职责与角色,管理员权限通过角色(如DBA)集中管控,日常业务仅授予所需权限。
- 禁用或限制默认账户(如SCOTT),降低被滥用的风险。
- 如非必要,禁用操作系统认证以避免本地高权登录绕过口令校验:在 $ORACLE_HOME/network/admin/sqlnet.ora 设置 SQLNET.AUTHENTICATION_SERVICES=(NONE),并验证“sqlplus / as sysdba”不再成功。
二 凭据与客户端侧防护
- 禁止在命令行明文写口令(会被ps与history泄露)。推荐使用:sqlplus /nolog 后执行 CONNECT 交互输入口令,或使用脚本变量在受控环境中输入,避免出现在进程列表与历史记录中。
- 严格控制 SQL*Plus 配置与环境文件权限:对 ~/.sqlplus、login.sql、glogin.sql、sqlnet.ora 等敏感文件设置最小权限(如 600/700),仅允许属主读写执行。
- 避免在脚本或代码中硬编码口令;如需自动化,请结合**钱包(Wallet)**或安全的凭据管理服务,并在脚本退出后清理敏感变量与历史。
三 传输加密与访问控制
- 启用 SSL/TLS 加密通信,保护数据在传输过程中的机密性与完整性。示例(sqlnet.ora):WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/path/to/wallet)))、SSL_VERSION=1.2、SSL_CLIENT_AUTHENTICATION=TRUE;配合 tnsnames.ora 使用 SSL 连接串。
- 使用 firewalld 精细化放行数据库端口(默认 1521),仅允许受控来源 IP 访问:firewall-cmd --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“x.x.x.x” port port=“1521” protocol=“tcp” accept’ --permanent & & firewall-cmd --reload。
- 在 sqlnet.ora 中启用 TCP.VALIDNODE_CHECKING 并结合 TCP.INVITED_NODES/TCP.EXCLUDED_NODES 做来源白名单/黑名单控制,仅允许可信网段访问监听。
四 审计与监控
- 开启数据库审计,记录登录、关键数据访问与权限变更,便于追溯与合规。示例:AUDIT SELECT TABLE BY ACCESS; 审计结果可在 DBA_AUDIT_TRAIL 中查询。
- 结合操作系统日志与数据库审计,建立常态化巡检与告警机制,对异常登录、失败尝试与权限变更进行及时处置。
五 操作系统与备份加固
- 强化 OS 层安全基线:设置强密码策略(长度、复杂度、周期、历史)与失败锁定(如连续失败 5 次锁定 300 秒),降低暴力破解风险。
- 限制root远程登录,仅允许通过普通用户登录后提权;关闭不必要的服务与端口,减少攻击面。
- 对包含脚本、备份与钱包的目录实施严格访问控制与加密存储;定期备份与异地保存,并进行恢复演练,确保可用性与完整性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在centos上保障sqlplus的数据安全
本文地址: https://pptw.com/jishu/778862.html
