温馨提示×

ubuntu oracle权限怎么设

小樊
44
2026-09-28 23:32:20
栏目: 云计算

在 Ubuntu 上涉及 Oracle(通常是 Oracle Database)权限设置,一般分三层来说:系统用户权限、Oracle 用户/组权限、数据库内部权限。下面按常见场景说明。


一、Ubuntu 系统层权限

1. Oracle 安装用户(通常是 oracle)

Oracle 不能装在 root 下,必须用专用用户:

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

目录权限示例(以 /u01 为例):

sudo mkdir -p /u01/app/oracle
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01

✅ 原则:Oracle 软件目录属主必须是 oracle:oinstall


2. sudo / 系统权限

如果 oracle 用户需要执行系统命令:

sudo visudo

添加:

oracle ALL=(ALL) NOPASSWD:ALL

(生产环境建议只给必要命令)


二、Oracle 数据库用户权限(重点)

1. 登录数据库

sqlplus / as sysdba

2. 创建用户并授权(最常见)

CREATE USER testuser IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO testuser;

常用权限说明:

  • CONNECT:能登录
  • RESOURCE:建表、序列等
  • DBA:管理员(慎用)

3. 表空间权限

ALTER USER testuser
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;

4. 对象权限(表/视图)

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

5. 查看权限

SELECT * FROM user_sys_privs;
SELECT * FROM user_tab_privs;

三、常见错误 & 解决

❌ ORA-01031: insufficient privileges

原因:

  • 不是 dba 组
  • 用错了登录方式

解决:

sqlplus / as sysdba

❌ Ubuntu 上 Oracle 启不来

检查:

id oracle
groups oracle

必须是:

uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

四、如果你用的是 Docker Oracle

权限更简单:

docker exec -it oracle_db sqlplus sys/密码@//localhost:1521/ORCLCDB as sysdba

你可以告诉我:

  • ✅ 是 Oracle Database 还是 Oracle Cloud / OCI
  • ✅ Ubuntu 版本(20.04 / 22.04)
  • ✅ 想设 系统权限 还是 数据库用户权限

我可以直接给你一套可复制的命令。

0 踩