首页主机资讯Ubuntu上Oracle数据库如何进行安全管理

Ubuntu上Oracle数据库如何进行安全管理

时间2026-01-20 12:56:04发布访客分类主机资讯浏览950
导读:Ubuntu上Oracle数据库安全管理要点 一 系统层安全加固 以专用的oracle系统用户运行实例,将其加入dba组;仅允许受控管理员通过sudo执行管理命令,避免直接使用root操作数据库软件与数据文件。示例:sudo gpassw...

Ubuntu上Oracle数据库安全管理要点

一 系统层安全加固

  • 以专用的oracle系统用户运行实例,将其加入dba组;仅允许受控管理员通过sudo执行管理命令,避免直接使用root操作数据库软件与数据文件。示例:sudo gpasswd -a alice dba 将管理员加入dba组;groups oracle 可核对组成员关系。
  • 严格管控**$ORACLE_HOME/bin与数据文件权限:可执行程序建议711**,数据库数据文件建议0600,仅oracle属主可读写,杜绝其他用户直接访问。
  • 通过UFW/iptables限制数据库端口访问,仅放通应用与跳板机网段,例如仅允许办公网段访问1521/TCP;对管理口与业务口分离,减少攻击面。

二 数据库账户与权限治理

  • 清理默认与共享账户:对不再使用的账户执行锁定/删除(如 ALTER USER xxx ACCOUNT LOCK; DROP USER xxx CASCADE; ),避免共享账号与默认口令。
  • 强口令与周期性轮换:对SYS/SYSTEM及高权限账户设置复杂口令并定期更换;禁止明文存储与硬编码口令,应用配置外置并使用安全凭据管理。
  • 最小权限与角色分离:普通应用账户仅授予CONNECT/RESOURCE等必要权限;管理员使用专用账户并遵循“最小权限原则”,避免日常业务使用DBA角色。
  • 细粒度授权与回收:按业务最小集授予对象权限(如 GRANT SELECT, INSERT, UPDATE ON schema.tbl TO app; ),必要时使用 WITH GRANT OPTION 控制可转授权限;回收用 REVOKE 及时清理过度授权。
  • 用户级资源与登录安全:通过PROFILE限制失败登录与锁定时间(如 FAILED_LOGIN_ATTEMPTSPASSWORD_LOCK_TIME),并合理设置口令生命周期,降低暴力破解与口令复用风险。

三 网络与监听器安全

  • 限制监听器访问:在**$ORACLE_HOME/network/admin/sqlnet.ora**启用白名单校验,仅允许可信网段访问数据库监听器。示例:
    • tcp.validnode_checking = yes
    • tcp.invited_nodes = (10.0.1.0/24,192.168.10.0/24) 修改后重启监听:lsnrctl stoplsnrctl start
  • 监听器口令保护:使用 lsnrctl change_password 设置监听管理口令并 save_config 持久化,防止未授权关停或重配置。
  • 空闲连接治理:在sqlnet.ora设置SQLNET.EXPIRE_TIME=10(单位:分钟),定期探测并清理半开/僵死连接,降低资源占用与会话劫持风险。
  • 远程高权限限制:如无远程SYSDBA需求,可在sqlnet.ora中设置 SQLNET.AUTHENTICATION_SERVICES=NONE,并在参数文件将 REMOTE_LOGIN_PASSWORDFILE=NONE,减少远程高权限登录面。

四 审计与合规

  • 启用审计并覆盖关键操作:将audit_sys_operations=TRUE记录SYSDBA/SYSOPER操作;将audit_trail=DB,EXTENDED写入数据库审计表并携带SQL文本与绑定变量,便于取证与合规审计。示例:
    • ALTER SYSTEM SET audit_sys_operations=TRUE SCOPE=SPFILE;
    • ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
    • 重启实例后生效。
  • 审计范围与策略:按业务与风险选择审计级别与对象,建议至少覆盖:
    • 语句级:AUDIT SESSION; AUDIT TABLE; 等;
    • 权限级:对危险权限如 SELECT ANY TABLECREATE ANY PROCEDURE 等开启审计;
    • 对象级:对敏感表/视图的 SELECT/INSERT/UPDATE/DELETE/DROP 按主体审计;
    • 选项:按需要选择 BY ACCESS(每次操作记录)或 BY SESSION(会话内同类操作合并),并可结合 WHENEVER SUCCESSFUL/NOT SUCCESSFUL 精细化记录。
  • 审计留存与清理:审计记录写入SYS.AUD$及相关视图(如DBA_AUDIT_TRAIL);制定保留周期归档/清理策略,防止审计表膨胀影响性能。

五 快速检查清单

检查项 期望状态/做法
系统账户与组 oracle运行账户仅加入必要组(如dba),sudo受控;禁止root直连数据库
文件权限 $ORACLE_HOME/bin 为711;数据文件为0600;仅oracle属主可写
防火墙 仅放通1521/TCP与必要管理网段,默认拒绝
监听器 启用白名单(sqlnet.ora);设置监听口令;变更后重启
登录安全 失败登录限制(FAILED_LOGIN_ATTEMPTS);定期改密;禁用共享/默认账号
权限模型 最小权限与角色分离;按需授予与回收;避免PUBLIC过度授权
审计 audit_sys_operations=TRUE;audit_trail=DB,EXTENDED;关键语句/权限/对象审计已启用
连接治理 SQLNET.EXPIRE_TIME=10 清理空闲会话;监控异常会话与失败登录

以上措施在Ubuntu上同样适用,关键在于“系统层最小暴露 + 数据库层最小权限 + 网络层白名单 + 全链路审计留痕”。

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


若转载请注明出处: Ubuntu上Oracle数据库如何进行安全管理
本文地址: https://pptw.com/jishu/787166.html
Oracle在Ubuntu上的高可用性解决方案 SecureCRT在Debian中的快捷键大全

游客 回复需填写必要信息