温馨提示×

Oracle在Ubuntu上的权限如何设置

小樊
35
2025-12-16 18:41:37
栏目: 云计算

Ubuntu 上 Oracle 权限设置

一 系统前置权限准备

  • 创建操作系统用户与组:至少需要 oinstall(安装/属主)与 dba(DBA 管理)两个组,并创建 oracle 用户加入对应组。示例:sudo groupadd oinstall;sudo groupadd dba;sudo useradd -g oinstall -G dba -m -s /bin/bash oracle;sudo passwd oracle。
  • 创建目录与所有权:安装目录常用 /u01/app/oracle(或 /opt/oracle),将目录属主设为 oracle:oinstall,权限建议 775(目录)或 755(文件)。示例:sudo mkdir -p /u01/app/oracle;sudo chown -R oracle:oinstall /u01;sudo chmod -R 775 /u01。
  • 内核与资源限制:在 /etc/sysctl.d/60-oracle.conf 设置共享内存、信号量、文件句柄等;在 /etc/security/limits.conf 为 oracle 用户设置 nproc/nofile/stack;在 /etc/pam.d/login/etc/pam.d/su 确认加载 limits 模块。
  • 依赖与兼容性:安装 libaio1、unixODBC 等依赖;部分旧版本 Oracle 在 Ubuntu 上需要少量兼容链接(如 awk、rpm、/etc/rc.d 等)。

二 目录与文件系统权限

  • 推荐目录结构与权限如下(示例以 /u01/app/oracle 为 Oracle Base):
路径 建议属主 建议权限 说明
/u01 root:root 755 顶层目录,仅 root 可写
/u01/app root:root 755 应用目录,仅 root 可写
/u01/app/oracle oracle:oinstall 775 Oracle Base,oracle 与 DBA 可写
$ORACLE_HOME oracle:oinstall 775 软件安装目录
$ORACLE_BASE/oradata oracle:oinstall 775 数据文件目录
$ORACLE_BASE/diag oracle:oinstall 775 诊断/跟踪目录
$ORACLE_HOME/bin root:oinstall 755 二进制文件,仅属主可写
  • 设置示例:sudo chown -R oracle:oinstall /u01;sudo chmod -R 775 /u01/app/oracle;sudo find /u01/app/oracle -type f -exec chmod 644 {} ;;sudo find /u01/app/oracle -type d -exec chmod 775 {} ;。
  • 说明:目录使用 775 可确保 oracledba 组成员对数据/日志/跟踪目录具备读写执行权限;二进制目录保持 755 更安全。

三 Oracle 内部权限与角色

  • SYSDBA 身份登录后执行:
    • 创建业务用户:create user app identified by “StrongPass!23”;
    • 授予基本权限:grant connect, resource to app;
    • 授予 DBA 管理权限(谨慎):grant dba to app;
    • 对象级授权示例:grant select, insert, update, delete on hr.employees to app;
    • 修改系统账户口令:alter user system identified by “NewSysPass!23”; alter user sys identified by “NewSysPass!23”;
  • 原则:生产环境遵循最小权限,避免使用 DBA 角色授予应用账户;通过 角色细粒度授权 控制访问。

四 运维与 sudo 权限边界

  • 日常运维以 oracle 用户执行(监听、启停实例、备份等);仅在安装/升级阶段由 root 执行脚本(如 root.sh)。
  • 如需管理员在系统层面执行少量命令,可将指定用户加入 sudo 组(usermod -aG sudo ),但应避免以 root 直接运行 sqlplus/监听器等,降低安全风险。
  • 权限问题排查要点:
    • 检查目录属主/权限是否为 oracle:oinstall 且目录权限 775
    • 确认 oracle 用户的环境变量 ORACLE_HOME、ORACLE_SID、PATH、LD_LIBRARY_PATH 已正确加载;
    • 若提示未授权,优先检查当前用户是否属于 dba/oinstall 组,以及是否使用了 sudo

五 容器化部署的权限注意

  • 使用 Docker 时,容器内以 oracle 用户运行,宿主机目录需以 正确属主/权限 挂载到容器(例如将宿主机 /u01 挂载到容器内相同路径,并确保宿主机目录属主为 oracle:oinstall),否则会出现权限拒绝。
  • 示例:docker run -d --name oracle-db -p 1521:1521 -p 5500:5500 -v /u01:/u01 store/oracle/database-enterprise:12.2.0.1(挂载前先 chown -R oracle:oinstall /u01)。
  • 容器内的用户/组 ID 需与宿主机保持一致,或在运行容器时通过用户映射参数处理,以避免权限错配。

0