温馨提示×

linux oracle怎么设置权限

小樊
42
2026-09-10 10:15:19
栏目: 云计算

在 Linux 上管理 Oracle 数据库相关权限,通常涉及 操作系统用户/组权限、Oracle 数据文件权限 以及 Oracle 数据库内部权限。下面按常见场景说明。


一、Linux 系统层面权限(最常见)

1. Oracle 用户和组

Oracle 一般使用专用用户和组:

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle

设置密码:

passwd oracle

2. Oracle 目录权限

Oracle 软件和数据目录必须属于 oracle 用户:

chown -R oracle:oinstall /u01
chmod -R 775 /u01

常见目录:

  • /u01/app/oracle:Oracle 软件
  • /u01/oradata:数据文件
  • /u01/arch:归档日志

二、Oracle 数据文件权限(很重要)

数据文件必须由 oracle 用户拥有:

chown oracle:dba /u01/oradata/*.dbf
chmod 660 /u01/oradata/*.dbf

⚠️ 不要给 777,存在安全风险。


三、Oracle 数据库内部权限(SQL 层面)

1. 登录 Oracle

su - oracle
sqlplus / as sysdba

2. 用户权限管理

创建用户:

CREATE USER test IDENTIFIED BY test123;

授权:

GRANT CONNECT, RESOURCE TO test;

管理员权限:

GRANT DBA TO test;

3. 表/对象权限

GRANT SELECT, INSERT ON scott.emp TO test;

回收权限:

REVOKE INSERT ON scott.emp FROM test;

四、监听和端口权限

监听通常由 oracle 用户启动:

lsnrctl start

如果端口 < 1024(如 1521 没问题,80 不行):

# 需要 root 或特殊配置

五、常见问题排查

1. ORA-01031: insufficient privileges

  • 未使用 sysdba
  • oracle 用户不在 dba 组
  • 操作系统认证文件权限错误
ls -l $ORACLE_HOME/bin/oracle
# 应为 -rwsr-s--x oracle dba

修复:

chown oracle:dba $ORACLE_HOME/bin/oracle
chmod 6751 $ORACLE_HOME/bin/oracle

六、总结一句话

Linux 权限管“谁能访问文件”,Oracle 权限管“谁能操作数据”

如果你能补充说明:

  • Oracle 版本(11g / 12c / 19c)
  • 是 系统权限 还是 数据库权限
  • 遇到的具体报错

我可以给你更精确的操作步骤。

0 踩