首页主机资讯Oracle在Linux上的权限设置指南

Oracle在Linux上的权限设置指南

时间2026-01-18 07:13:03发布访客分类主机资讯浏览1096
导读:一 操作系统层面权限设置 创建专用用户与组:使用专用账户运行数据库,避免以 root 直接管理。建议创建组 oinstall(安装归属)与 dba(管理),并创建用户 oracle 加入对应组。示例:groupadd oinstall;g...

一 操作系统层面权限设置

  • 创建专用用户与组:使用专用账户运行数据库,避免以 root 直接管理。建议创建组 oinstall(安装归属)与 dba(管理),并创建用户 oracle 加入对应组。示例:groupadd oinstall;groupadd dba;useradd -g oinstall -G dba -m oracle;passwd oracle。完成后设置环境变量(~/.bash_profile 或 ~/.bashrc):ORACLE_BASE、ORACLE_HOME、ORACLE_SID、PATH、LD_LIBRARY_PATH,并执行 source 使其生效。目录建议统一在 /u01/app/oracle(软件)与 /u01/app/oradata(数据)。
  • 资源限制:编辑 /etc/security/limits.conf,为 oracle 设置进程与文件句柄等上限,示例:oracle soft nproc 2047;oracle hard nproc 16384;oracle soft nofile 1024;oracle hard nofile 65536;oracle soft stack 10240。
  • 内核参数:编辑 /etc/sysctl.conf,设置文件与共享内存、网络等参数,示例:fs.aio-max-nr 1048576;fs.file-max 6815744;kernel.shmmni 4096;kernel.sem 250 32000 100 128;kernel.shmall 2097152;kernel.shmmax 2147483648;net.ipv4.ip_local_port_range 9000 65500;net.core.rmem_default 262144;net.core.rmem_max 4194304;net.core.wmem_default 262144;net.core.wmem_max 1048576;执行 sysctl -p 使生效。
  • 目录权限:将软件与数据目录归属 oracle:oinstall,权限建议 755(所有者 rwx,组与其他 r-x),示例:chown -R oracle:oinstall /u01/app/oracle;chown -R oracle:oinstall /u01/app/oradata;chmod -R 755 /u01/app/oracle。
  • SELinux:若启用,设置正确的文件上下文,示例:chcon -R -t oracle_home_t /u01/app/oracle;chcon -R -t oracle_db_t /u01/app/oradata。
  • 可选 sudo:为运维便利,可用 visudo 授予 oracle 仅对特定命令的免密执行权限(如监听启停、RMAN),遵循最小权限原则。

二 数据库层面权限设置

  • 管理员登录:以 SYSDBA 身份登录(sqlplus / as sysdba)。
  • 创建用户与默认表空间:CREATE USER test_user IDENTIFIED BY DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
  • 系统权限:按任务最小集授予,示例:GRANT CONNECT, RESOURCE TO test_user; 谨慎授予 DBA。
  • 对象权限:对指定对象授予,示例:GRANT SELECT, INSERT ON hr.employees TO test_user;
  • 角色管理:创建角色并批量授权,示例:CREATE ROLE hr_manager; GRANT CREATE SESSION, SELECT, INSERT ON hr.employees TO hr_manager; GRANT hr_manager TO test_user; 常用预定义角色有 CONNECT、RESOURCE、DBA。
  • 查看与撤销:查询系统权限 SELECT * FROM USER_SYS_PRIVS; 查询对象权限 SELECT * FROM USER_TAB_PRIVS; 撤销示例:REVOKE SELECT ON hr.employees FROM test_user; REVOKE hr_manager FROM test_user。

三 安全加固要点

  • 数据字典保护:ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=SPFILE; 重启后生效。
  • 口令复杂度与锁定:通过 PROFILE 强制复杂度与锁定策略,示例:CREATE PROFILE strong_pwd LIMIT PASSWORD_VERIFY_FUNCTION verify_function_11G PASSWORD_LIFE_TIME 90 FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1/24; 将 SYS/SYSTEM 等用户应用该 PROFILE。
  • 限制 SYSDBA 远程登录:ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=NONE SCOPE=SPFILE; 重启后生效(如需远程 SYSDBA,请改用安全的口令文件并严格管控)。
  • 审计:启用审计,示例:ALTER SYSTEM SET AUDIT_TRAIL=‘DB,EXTENDED’ SCOPE=SPFILE; 重启后生效;可按用户或操作审计,如 AUDIT ALL BY scott BY ACCESS;
  • 监听器安全:为监听设置密码(LSNRCTL> CHANGE_PASSWORD;SAVE_CONFIG),仅允许可信维护。
  • 网络访问控制:在 sqlnet.ora 中启用白名单,示例:TCP.VALIDNODE_CHECKING=YES;TCP.INVITED_NODES=(< 可信IP列表> );可选 TCP.EXCLUDED_NODES。
  • 传输加密:在 sqlnet.ora 中启用加密与校验,示例:SQLNET.ENCRYPTION_SERVER=REQUIRED;SQLNET.ENCRYPTION_TYPES_SERVER=(AES256);SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED;SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA256)。
  • 防火墙:放行数据库端口(默认 1521/TCP),示例(firewalld):firewall-cmd --permanent --zone=public --add-port=1521/tcp;firewall-cmd --reload。

四 维护与验证清单

  • 权限审查:定期核查高权限账户与对象授权,清理不再使用的账号/权限;可按需查询 DBA_SYS_PRIVS、DBA_TAB_PRIVS 等数据字典视图。
  • 备份与安全存储:备份口令文件(orapwd 生成)与关键配置,限制备份文件访问权限。
  • 变更回退:对涉及参数、权限、监听与网络策略的变更,先在测试环境验证,并做好回退方案与窗口期安排。
  • 监控告警:对登录失败、权限变更、审计异常与监听器状态建立监控与告警。

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


若转载请注明出处: Oracle在Linux上的权限设置指南
本文地址: https://pptw.com/jishu/783943.html
Oracle Linux系统更新与补丁管理 Linux环境下Oracle故障排查方法

游客 回复需填写必要信息