在 Linux + Oracle 数据库 环境中,“设权限”通常涉及 操作系统层权限 和 Oracle 数据库层权限 两部分。下面按常见场景说明。
Oracle 一般使用专用用户:
oracle:oinstall
oracle:dba
查看:
id oracle
常见目录:
/u01/app/oracle
/u01/app/oraInventory
正确权限示例:
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app/oracle
⚠️ 不要用 777,有安全风险。
Oracle 自带脚本会设置好,一般不要手动改:
$ORACLE_HOME/bin/oracle
通常应为:
-rwsr-s--x oracle oinstall
若异常可修复:
chown oracle:oinstall $ORACLE_HOME/bin/oracle
chmod 6751 $ORACLE_HOME/bin/oracle
chown oracle:dba /dev/sd*
chmod 660 /dev/sd*
(生产环境建议用 udev 规则)
sqlplus / as sysdba
CREATE USER test IDENTIFIED BY test123;
GRANT CONNECT, RESOURCE TO test;
GRANT CREATE TABLE TO test;
GRANT CREATE VIEW TO test;
GRANT UNLIMITED TABLESPACE TO test;
GRANT SELECT, INSERT ON scott.emp TO test;
CREATE ROLE app_role;
GRANT CONNECT, RESOURCE TO app_role;
GRANT app_role TO test;
SELECT * FROM dba_sys_privs WHERE grantee='TEST';
SELECT * FROM dba_tab_privs WHERE grantee='TEST';
CREATE USER appuser IDENTIFIED BY app123;
GRANT CONNECT, RESOURCE, CREATE VIEW TO appuser;
ALTER USER appuser DEFAULT TABLESPACE users;
CREATE USER readonly IDENTIFIED BY ro123;
GRANT CREATE SESSION TO readonly;
GRANT SELECT ON scott.emp TO readonly;
usermod -aG dba user1
root 跑 OracleDBA 角色给普通用户SELECT * FROM dba_role_privs;
如果你指的是 具体某一种权限(比如:表权限 / 目录权限 / 启停权限 / 网段访问),可以告诉我,我给你更精确的命令。