CentOS 上 Oracle SQL*Plus 权限管理
一 管理边界与前置检查
passwd -S <user> 或 chage -l <user> 查看密码与账号过期信息)。lsnrctl status)。sqlplus / as sysdba(本地操作系统认证)。二 数据库层权限管理常用操作
CREATE USER app_user IDENTIFIED BY S3cureP@ss
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 100M ON users
ACCOUNT UNLOCK;
GRANT CREATE SESSION TO app_user;GRANT CONNECT, RESOURCE TO app_user;(按需细化,避免过度授权)GRANT SELECT, INSERT, UPDATE ON hr.employees TO app_user;GRANT SELECT ON hr.employees TO app_user WITH GRANT OPTION;GRANT CREATE TABLE TO app_user;GRANT CREATE TABLE TO app_user WITH ADMIN OPTION;REVOKE SELECT, INSERT, UPDATE ON hr.employees FROM app_user;REVOKE CREATE TABLE FROM app_user;CREATE ROLE app_role;GRANT CREATE SESSION, CREATE TABLE TO app_role;GRANT app_role TO app_user;SHOW USER;SELECT * FROM USER_SYS_PRIVS;、SELECT * FROM USER_TAB_PRIVS;、SELECT * FROM USER_ROLE_PRIVS;CREATE USER r_only IDENTIFIED BY R0nly#2026;
ALTER USER r_only DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 50M ON users ACCOUNT UNLOCK;
GRANT CREATE SESSION TO r_only;
GRANT SELECT ON hr.employees TO r_only;
-- 如需批量授权可结合数据字典动态生成 GRANT 语句
以上命令均为 SQL*Plus 内执行的标准 DDL/DCL 用法,适用于 Oracle 11g/12c/19c 等常见版本。
三 操作系统层访问控制
%dba ALL=(ALL) NOPASSWD: /usr/bin/sqlpluspasswd -l <user>(对应 shadow 中 ! 前缀),解锁:passwd -u <user>。passwd -S、chage -l 检查密码与账号过期策略,避免共享账号与弱口令。四 审计与合规建议