1.1、系统权限系统权限控制用户可以在数据库中执行的操作类型。系统权限说明CREATE SESSION连接数据库CREATE TABLE创建表CREATE VIEW创建视图CREATE PROCEDURE创建存储过程/函数/包CREATE SEQUENCE创建序列CREATE TRIGGER创建触发器CREATE USER创建用户ALTER USER修改用户DROP USER删除用户CREATE ANY TABLE在任何 Schema 中创建表ALTER SYSTEM修改系统参数SYSDBA数据库管理员权限最高权限SYSOPER数据库操作员权限SELECT ANY TABLE查询任何 Schema 的表GRANT ANY PRIVILEGE授予任何系统权限授予系统权限GRANT CREATE SESSION TO hr_user;GRANT CREATE TABLE, CREATE VIEW TO app_user;GRANT SELECT ANY TABLE TO readonly_user WITH ADMIN OPTION;撤销系统权限REVOKE CREATE TABLE FROM hr_user;REVOKE SELECT ANY TABLE FROM readonly_user;CONTAINER 子句控制权限范围GRANT CREATE SESSION TO c##admin CONTAINER ALL;GRANT CREATE SESSION TO local_user CONTAINER CURRENT;1.2、对象权限对象权限控制用户对特定数据库对象的操作能力。对象权限说明SELECT查询表/视图/物化视图INSERT插入数据UPDATE更新数据DELETE删除数据EXECUTE执行存储过程/函数/包ALTER修改对象结构REFERENCES创建外键引用READ读取目录对象12cWRITE写入目录对象12cINHERIT PRIVILEGES继承调用者权限18c授予对象权限GRANT SELECT ON hr.employees TO readonly_user;GRANT INSERT, UPDATE ON hr.employees TO hr_user;GRANT EXECUTE ON hr.raise_salary TO app_user;授予列级别权限更精细的控制GRANT SELECT (employee_id, first_name, last_name, salary) ON hr.employees TO report_user;GRANT UPDATE (salary, commission_pct) ON hr.employees TO hr_manager;撤销对象权限REVOKE SELECT ON hr.employees FROM readonly_user;REVOKE UPDATE (salary) ON hr.employees FROM hr_manager;撤销传播CASCADE CONSTRAINTSREVOKE REFERENCES ON hr.employees FROM fin_user CASCADE CONSTRAINTS;1.3、权限委托与授权链WITH GRANT OPTION允许被授权者将权限转授给他人GRANT SELECT ON hr.employees TO hr_user WITH GRANT OPTION;hr_user 可以继续授权 CONNECT AS hr_userGRANT SELECT ON hr.employees TO readonly_user;撤销时使用 CASCADE 级联撤销所有转授权限REVOKE SELECT ON hr.employees FROM hr_user CASCADE;WITH ADMIN OPTION允许管理角色GRANT app_developer TO admin_user WITH ADMIN OPTION;1.4、权限级联效应特性系统权限对象权限传递授权WITH ADMIN OPTIONWITH GRANT OPTION回收级联不级联第三方权限保留级联第三方权限也被回收授权者任意有权限的用户对象所有者或被授权者影响范围数据库级别特定对象权限依赖关系查询查看谁有GRANT OPTIONSELECT GRANTEE, PRIVILEGE, TABLE_NAME, GRANTABLE FROM DBA_TAB_PRIVS WHERE GRANTABLE YES;查看谁有ADMIN OPTIONSELECT GRANTEE, PRIVILEGE, ADMIN_OPTION FROM DBA_SYS_PRIVS WHERE ADMIN_OPTION YES;查看权限传递链以某表为例SELECT GRANTEE, PRIVILEGE, GRANTABLE FROM DBA_TAB_PRIVS WHERE OWNER HR AND TABLE_NAME EMPLOYEES ORDER BY GRANTEE;1.5、权限查询视图视图用途常用查询条件DBA_SYS_PRIVS系统权限WHERE GRANTEE :userDBA_TAB_PRIVS对象权限表级WHERE GRANTEE :userDBA_COL_PRIVS列级权限WHERE GRANTEE :userDBA_ROLE_PRIVS用户拥有的角色WHERE GRANTEE :userROLE_SYS_PRIVS角色的系统权限WHERE ROLE :roleROLE_TAB_PRIVS角色的对象权限WHERE ROLE :roleSESSION_PRIVS当前会话的有效权限直接查询SESSION_ROLES当前会话激活的角色直接查询实例权限过度——CREATE ANY TABLE 安全整改S — Situation场景安全审计发现 MES 开发账号 mes_dev 拥有 CREATE ANY TABLE可在任意 Schema 建表存在越权风险。T — Task任务回收过度权限按最小权限重新分配。A — Action行动1、查询 mes_dev 所有系统权限2、回收 CREATE ANY TABLE改为 CREATE TABLE3、需要跨 Schema 操作通过专用角色视图4、验证应用功能不受影响。R — Result结果权限回收后应用测试通过越权风险消除。CI/CD 流水线加入权限检查脚本防止再次出现。