在看tom的编程艺术时其中有一个地方要建一个视图,语句如下:
create or replace view stats
as
select 'stat...' ||a.name name,b.value from v$statname a,v$mystat b where a.STATISTIC#=b.STATISTIC#
union all
select 'LSTCH.' || name,gets from v$latch
union all
select 'STAT...Elapsed Time',hsecs from v$timer;
我在执行语句的时候报ora-01031错误(我的用户拥有dba权限),现在让我们先来看一下我的用户所拥有的权限:
select * from user_sys_privs;(查看public权限)执行结果如下
select * from user_role_privs; (查看用户有哪些role)执行结果如下
select * from dba_sys_privs where grantee='TEST1';(查看某个role所包含的权限)执行结果如下
(注意此处包含了 select any dictonary权限,下文会重点用到)
按理说我建立视图所需的权限都有了啊,为什么还会报权限不足呢?我用该用户下的其他表建view都没有问题,仔细对比一下发现v$mystat 等都是同义词。这是因为用同义词建视图时,角色是不会被继承的,所以我们就报了权限不足。
那么下面我们来直接给用户或public来赋权限再来看一下结果(大家可能会问那么此时要赋什么权限呢?)
此时不论我们用到的是视图的同意此处还是表的同义词,我们都要给用户赋予select any dictionary权限才行(因为同义词其实就相当于视图)。
我们给用户赋权 grant select any dictionary to 用户名;或者grant select any dictionary to public;然后再执行create语句,发现执行成功!

转载于:https://blog.51cto.com/589985/1075245

oracle 学习之:建视图时报ora-01031相关推荐

  1. Oracle 学习之建表、索引、同义词以及SQL优化

    Oracle 学习之建表.索引.同义词以及SQL优化: 一.Oracle 建表: 1.建表语句: --创建表 create table test ( id varchar2(200) primary ...

  2. Oracle 学习笔记 11 -- 视图 (VIEW)

    本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...

  3. Oracle学习之建表

    本节整理了Oracle数据库通过执行CREATE TABLE命令,创建了一个STUDENT用户,并在该用户下创建一个STUINFO(学生信息表)来讲解CREATE TABLE命令的使用. CREATE ...

  4. Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询

    Oracle数据库:创建和删除视图view,简单和复杂视图,内建视图,topN分析,oracle分页查询 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开 ...

  5. oracle update单引号,Oracle学习笔记:update的字段中包括单引号

    平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...

  6. ORACLE建视图 授权的 例子

    ORACLE建视图 授权的 例子: A用戶 下有table   TabA A1 用戶建立view (V_TabA) , view中是引用A 用戶下的TabA . A2 用戶要 select  A1 用 ...

  7. (五)Oracle学习笔记—— 视图

    1. 视图简介 视图是虚表,没有具体物理数据,是通过实体表的一种计算映射逻辑.主要就是为了方便和数据安全. 2. 视图作用 简化数据操作:视图可以简化用户处理数据的方式. 着重于特定数据:不必要的数据 ...

  8. Oracle学习笔记(最重要的是PL/SQL编程)

    一:Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create databa ...

  9. oracle 学习

    一.数据库语言部分 1. SQL语言:关系数据库的标准语言 2. PL/SQL:过程化语言Procedural Language 3. SQL*Plus:简单的报表,操作系统接口 4. Oracle ...

最新文章

  1. [转]linux下fms2流媒体服务器搭建之五-----flv播放器制作篇
  2. 【车道线检测】一种基于神经网络+结构约束的车道线检测方法
  3. 期望文件系统格式在“1”到“4”之间;发现格式“6”
  4. Tomcat发布Web项目的两种方式
  5. 预备AI工程师升级必备:大厂常见图像分类面试题
  6. java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
  7. lambda 表达式中的 this 与普通情况下的 this 指向
  8. springmvc简单示例
  9. 一位AI研究员+区块链创业者的终极展望:AI DAO将统治世界
  10. 我设想的可扩展结构(插件) (二)
  11. Java虚拟机知识点【栈帧】
  12. 我的NVIDIA开发者之旅——Caffe教程(3)使用sklearn和caffe进行简单逻辑回归实践
  13. 迅捷图片格式转换器v1.00.1中文免费版
  14. docker---dockerfile 编写优化
  15. python按文件后缀进行分类,解放生产力
  16. Oracle:经典例题解析
  17. Nodejs 使用 Buffer 将图片转为 base64
  18. 【综合类型第 26 篇】WebStorm 2019.2.2 下载、安装教程
  19. IT零起点转FICO学习路线(转)
  20. 数据挖掘之对河南省的疫情分析

热门文章

  1. [转载]windows2003上IIS+PyISAPIe1.1..0部署成功
  2. git 拉取代码失败
  3. IDEA查看Java类的UML关系图
  4. Log4j2基本使用入门
  5. Kerberos认证过程学习理解
  6. 制作一个状态栏中跑马灯效果_图标设计指南(3)——制作一个图标集所需全部信息(中)...
  7. iframe跨域调用js_郑州Web前端基础学习之JS跨域知识梳理
  8. leetcode题解——贪心
  9. java中数组合并的方法,数组合并--Java原生方法
  10. ContextLoaderListener的作用详解