在 Linux 上管理 Oracle 数据库相关权限,通常涉及 操作系统用户/组权限、Oracle 数据文件权限 以及 Oracle 数据库内部权限。下面按常见场景说明。
Oracle 一般使用专用用户和组:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
设置密码:
passwd oracle
Oracle 软件和数据目录必须属于 oracle 用户:
chown -R oracle:oinstall /u01
chmod -R 775 /u01
常见目录:
/u01/app/oracle:Oracle 软件/u01/oradata:数据文件/u01/arch:归档日志数据文件必须由 oracle 用户拥有:
chown oracle:dba /u01/oradata/*.dbf
chmod 660 /u01/oradata/*.dbf
⚠️ 不要给 777,存在安全风险。
su - oracle
sqlplus / as sysdba
创建用户:
CREATE USER test IDENTIFIED BY test123;
授权:
GRANT CONNECT, RESOURCE TO test;
管理员权限:
GRANT DBA TO test;
GRANT SELECT, INSERT ON scott.emp TO test;
回收权限:
REVOKE INSERT ON scott.emp FROM test;
监听通常由 oracle 用户启动:
lsnrctl start
如果端口 < 1024(如 1521 没问题,80 不行):
# 需要 root 或特殊配置
sysdbadba 组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 权限管“谁能操作数据”
如果你能补充说明:
我可以给你更精确的操作步骤。