在 Ubuntu 上如果使用 Oracle 数据库(通常是 Oracle Database 19c / 21c 等),“设置权限”一般涉及 系统层权限(OS 用户/组)、Oracle 数据文件权限 和 数据库内部权限(用户/角色)。下面按常见场景说明。
Oracle 通常不使用 root 运行,而是:
oracle:oinstall
oracle:dba
查看:
id oracle
su - oracle
vi .bashrc
常见内容:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
生效:
source .bashrc
Oracle 数据文件必须属于 oracle:oinstall 或 oracle:dba
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
⚠️ 不要给 /u01 设 777,会有安全风险
sqlplus / as sysdba
CREATE USER testuser IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO testuser;
GRANT SELECT, INSERT, UPDATE ON scott.emp TO testuser;
REVOKE INSERT ON scott.emp FROM testuser;
CREATE ROLE app_role;
GRANT SELECT, INSERT ON orders TO app_role;
GRANT app_role TO testuser;
SELECT * FROM user_sys_privs;
SELECT * FROM user_tab_privs;
sudo ufw allow 1521/tcp
lsnrctl status
❌ ORA-01031: insufficient privileges
sysdba✅ 解决:
sqlplus / as sysdba
GRANT DBA TO username;
如果你指的是 “Ubuntu 上 Oracle 用户无法启动”、“数据文件权限错误”、或 “某个具体 SQL 权限”,可以告诉我具体场景,我可以给你精确命令。