温馨提示×

linux oracle如何设置权限

小樊
36
2026-09-28 14:46:04
栏目: 云计算

在 Linux + Oracle 环境中,“设置权限”通常涉及 操作系统用户/组权限、Oracle 软件目录权限、数据库对象权限 等多个层面。下面按常见场景系统说明。


一、Linux 系统层权限(用户与组)

1. Oracle 推荐用户和组

通常 Oracle 安装会创建:

  • 用户:oracle
  • 组:oinstall(主组)、dba(数据库管理组)

查看用户和组:

id oracle
groups oracle

2. 修改用户所属组

usermod -aG dba oracle

3. 目录权限示例(Oracle 软件目录)

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

常见目录:

  • $ORACLE_BASE:如 /u01/app/oracle
  • $ORACLE_HOME:如 /u01/app/oracle/product/19.3.0/dbhome_1

二、Oracle 数据库层权限(最重要)

1. 系统权限(SYSDBA 授予)

-- 赋予用户创建会话、建表权限
GRANT CREATE SESSION, CREATE TABLE TO user1;

-- 赋予 DBA 权限(谨慎)
GRANT DBA TO user1;

2. 对象权限(表、视图等)

GRANT SELECT, INSERT, UPDATE ON scott.emp TO user1;

3. 回收权限

REVOKE SELECT ON scott.emp FROM user1;

4. 查看权限

-- 用户系统权限
SELECT * FROM user_sys_privs;

-- 用户对象权限
SELECT * FROM user_tab_privs;

三、表空间与配额权限

ALTER USER user1 QUOTA UNLIMITED ON users;

四、监听与网络权限(常见坑)

1. listener.ora 权限

chown oracle:oinstall $ORACLE_HOME/network/admin/listener.ora
chmod 644 listener.ora

2. 端口权限(1024 以下需 root)

Oracle 一般使用 1521,无需 root。


五、安全建议(生产环境)

✅ 不要直接给 DBA
✅ 最小化权限原则
✅ 使用角色管理权限

CREATE ROLE app_role;
GRANT SELECT ON scott.emp TO app_role;
GRANT app_role TO user1;

六、常见错误与解决

问题 原因 解决
ORA-01031 权限不足 授予 CREATE SESSION
ORA-01950 无表空间配额 ALTER USER QUOTA
Linux 无法启动 Oracle 目录属主错误 chown oracle

如果你能说明 具体场景(例如:新建用户、备份目录、RAC、DG、19c/11g),我可以给你更精确的命令。

0 踩