ORA-01031:insufficient privileges

518 阅读6分钟

问题描述

使用 hr 用户创建物化视图时,提示 权限不足

image.png

解决方法

登录dba账号授权

GRANT CREATE MATERIALIZED VIEW  TO hr;
GRANT ON COMMIT REFRESH to hr;
GRANT GLOBAL QUERY REWRITE TO hr;

image.png

此时创建成功

image.png

权限对照表

权限所能实现的操作
分析 
ANALYZE ANY 分析数据库中的任何表、簇或索引
审计 
AUDIT ANY 审计数据库中的任何模式对象
AUDIT SYSTEM 启用与停用语句和特权的审计选项
 
CREATE CLUSTER 在自有的模式中创建一个簇
CREATE ANY CLUSTER 在任何一个模式中创建一个簇;操作类似于CREATE ANY TABLE
ALTER ANY CLUSTER 改变数据库中的任何一个簇
DROP ANY CLUSTER 删除数据库中的任何一个簇
数据库 
ALTER DATA BASE 改变数据库;不管操作系统的特权,经由Oracle把文件添加到操作系统中
数据库链接 
CREATE DATABASE LINK 在自有模式中创建专用数据库链接
索引 
CREATE ANY INDEX 在任何表的任何模式中创建一条索引
ALTER ANY INDEX 改变数据库中的任何索引
DROP ANY INDEX 删除数据库中的任何索引
 
CREATE LIBRARY 在自有模式中创建调出库
CREATE ANY LIBRARY 在任何模式中创建调出库
DROP LIBRARY 删除自有模式中的调出库
DROP ANY LIBRARY 删除任何模式中的调出库
特权 
GRANT ANY PRIVILEGE 授予任何系统特权(不包括对象特权)
过程 
CREATE PROCEDURE 在自有模式中创建存储的过程、函数和包
CREATE ANY PROCEDURE 在任何模式中创建存储的过程、函数和包(这要求用户还要有ALTER ANY TABLE 、BACKUP ANY TA B LE 、DROP ANY TABLE 、SELECT ANY TABLE 、INSERT ANY TABLE 、UPDATE ANY TABLE 、DELETE ANY TABLE 或GRANT ANY TABLE 特权 
ALTER ANY PROCEDURE 编译任何模式中的任何存储的过程、函数或包
DROP ANY PROCEDURE 删除任何模式中的任何存储的过程、函数或包
EXECUTE ANY PROCEDURE 执行任何过程或函数(独立的或成组的),或在任何模式中引用任何包变量
环境资源文件 
CREATE PROFILE 创建环境资源文件
ALTER PROFILE 改变数据库中的任何环境资源文件
DROP PROFILE 删除数据库中的任何环境资源文件
ALTER RESOURCE COST 设置所有的用户会话中使用的资源开销
特权所能实现的操作
公共数据库链接 
CREATE PUBLIC DATABASE LINK 创建公共数据库链接
DROP PUBLIC DATABASE LINK 删除公共数据库链接
公共同义词 
CREATE PUBLIC SYNONYM 创建公共同义词
DROP PUBLIC SYNONYM 删除公共同义词
角色 
CREATE ROLE 创建角色
ALTER ANY ROLE 改变数据库中的任何一个角色
DROP ANY ROLE 删除数据库中的任何一个角色
GRANT ANY ROLE 授权数据库中的任何一个角色
回滚段 
CREATE ROLLBACK SEGMENT 创建回滚段
ALTER ROLLBACK SEGMENT 改变回滚段
DROP ROLLBACK SEGMENT 删除回滚段
会话 
CREATE SESSION 连接到数据库
ALTER SESSION 发出A LTER SESSION 语句
RESTRICTED SESSION 当数据库利用STARTUP RESTRICT 启动时进行连接(OSOPER与 OSDBA角色包含此特权)
序列 
CREATE SEQUENCE 在自有模式中创建序列
CREATE ANY SEQUENCE 在任何模式中创建任何序列
ALTER ANY SEQUENCE 在任何模式中改变任何序列
DROP ANY SEQUENCE 在任何模式中删除任何序列
SELECT ANY SEQUENCE 在任何模式中引用任何序列
快照 
CREATE SNAPSHOT 在自有模式中创建快照(用户还必须具有C R E ATE TA B L E 特权)
CREATE  ANY SNAPSHOT 在任何模式中创建快照(用户还必须具有CREATE ANY TABLE特权)
ALTER SNAPSHOT 改变任何模式中的任何快照
DROP ANY SNAPSHOT 删除任何模式中的任何快照
同义词 
CREATE SYNONYM 在自有模式中创建同义词
CREATE ANY SYNONYM 在任何模式中创建任何同义词
DROP ANY SYNONYM 在任何模式中删除任何同义词
系统 
ALTER SYSTEM 发出ALTER SYSTEM 语句
 
CREATE TABLE 在自有模式中创建表。还使被授权者能在自有模式下的表中创建索引,包 括那些用于完整性约束的索引(被授权者必须有表空间的定额或UNLIMITED TABLESPACE 特权)
CREATE ANY TABLE 在任何模式中创建表(假如被授权者有CREATE ANY TABLE 特权并在 另一个用户模式中创建了一张表,那么拥有者必须在那个表空间上有空间定额。表的拥有者不必具有CREAT [ANY] TABLE 特权)
ALTER ANY TABLE 改变任何模式中的任何表并编译任何模式中的任何视图
BACKUP ANY TABLE 在任何模式中使用表的导出工具执行一个增量导出操作
DROP ANY TABLE 删除或截断任何模式中的任何表
LOCK ANY TABLE 锁定任何模式中的任何表或视图
特权所能实现的操作
COMMENT ANY TABLE 对任何模式中的任何表、视图或列进行注释
SELECT ANY TABLE 对任何模式中的任何表、视图或快照进行查询
INSERT ANY TABLE 把行插入到任何模式中的任何表或视图中
UPDATE ANY TABLE 修改任何模式中的任何表或视图中的行
DELETE ANY TABLE 删除任何模式中的任何表或视图中的行
表空间 
CREATE TABLESPACE 创建表空间;不管用户有何操作系统特权,经由Oracle把文件添加到操 作系统中
ALTER TABLESPACE 改变表空间;不管用户有何操作系统特权,经由Oracle把文件添加到操 作系统中
MANAGE TABLESPACE 使任何表空间脱机,使任何表空间联机,开始和结束对任何表空间的备份
DROP TABLESPACE 删除表空间
UNLIMITED TABLESPACE 使用任何没有数量限制的表空间。此特权忽略了所分配的任何具体定额。 假如被取消的话,被授权者的模式对象仍然保留,但是进一步的表空间分配被拒绝,除非这一分配是具体的表空间定额允许的。此系统特权仅可以授予用户,而不授予角色。一般而言,应分配具体的表空间定额,而不授予此系统特权
事务 
FORCE TRANSACTION 强迫提交或回滚本地数据库中悬而未决的自有的分布式事务
FORCE ANY TRANSACTION 强迫提交或回滚本地数据库中悬而未决的任何分布式事务
触发器 
CREATE TRIGGER 在自有模式中创建触发器
CREATE ANY TRIGGER 在任何模式中创建与任何模式的任何表相关的任何触发器
ALTER ANY TRIGGER 启用、停用或编译任何模式中的任何触发器
DROP ANY TRIGGER 删除任何模式中的任何触发器
用户 
CREATE ANY USER 创建用户;分配任意表空间上的定额,设置缺省和临时表空间,指定一个 环境资源文件(在CREATE USER 语句中)
BECOME ANY USER 成为另一个用户(这是任何一个执行完全数据库导入的用户所需要的)
ALTER USER 改变其他用户:修改任意用户的口令或验证方法,分配表空间定额,设置 缺省或临时表空间,在ALTER USER 语句中指定环境资源文件与缺省角色(不必改变自有口令)
DROP USER 删除另一个用户
视图 
CREATE VIEW 在自有模式中创建视图
CREATE ANY VIEW 在任意模式中创建视图。要在另一个用户模式中创建视图,你必须具有 CREATE ANY VIEW 特权,拥用者必须在该视图引用的对象上具有所需的特权