关于创建视图的问题(48天)

今天开发碰到一个问题,说创建视图的时候老是提示没有权限。

SQL> create view test_view as select *from customer;
create view test_view as select *from customer
                                     *
ERROR at line 1:
ORA-01031: insufficient privileges

第一反应是这个schema没有create view的权限。

查询发现有。

SQL> select *from session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
ALTER SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE LINK
CREATE ROLE
CREATE PROCEDURE
CREATE TRIGGER
PRIVILEGE
----------------------------------------
CREATE MATERIALIZED VIEW
CREATE ANY DIRECTORY
DROP ANY DIRECTORY
CREATE TYPE
SELECT ANY DICTIONARY
16 rows selected.

而且表的访问也是没有问题的,权限通过role来grant,而且建立了synonym。

SQL> select *from user_role_privs;
USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
TRUDB1                         TRUDBO1_ALL                    NO  YES NO
SQL> select count(*)from customer;
 COUNT(*)
----------
        0

最后发现如果创建视图,通过role来授予权限,是有这种情况的,得赋予object privilege

用table owner登录。

SQL> grant select on customer to trudb1;
Grant succeeded.

然后用目标用户登录,创建视图

SQL> create view test_view as select *from customer;
View created.
SQL> drop view test_view;
View dropped.
SQL> select count(*)from customer;
 COUNT(*)
----------
        0

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

谈谈分布式事务之三: System.Transactions事务详解[下篇]

在前面一篇给出的Transaction的定义中,信息的读者应该看到了一个叫做DepedentClone的方法。该方法对用于创建基于现有Transaction对象...

1908
来自专栏.net core新时代

数据字典生成工具之旅(8):SQL查询表的约束默认值等信息

      上一篇代码生成工具里面已经用到了读取表结构的SQL,这篇将更加详细的介绍SQL SERVER常用的几张系统表和视图! 阅读目录 系统表视图介绍 实际...

1797
来自专栏Albert陈凯

spark性能调优之重构RDD架构,RDD持久化

当第一次对RDD2执行算子,获取RDD3的时候,就会从RDD1开始计算,就是读取HDFS文件,然后对RDD1执行算子,获取到RDD2,然后再计算,得到RDD3 ...

2786
来自专栏偏前端工程师的驿站

GridView实战二:使用ObjectDataSource数据源控件(自定义缓存机制实现Sort)

因为使用ObjectDataSource自带的缓存机制无法实现排序功能,苦苦寻觅终于找到了解决方案。参考后觉得还是自己实操一下比较安心,下面是对《GridVie...

15810
来自专栏Hadoop实操

如何在Impala中实现拉链表

拉链表是针对数据仓库设计中表存储数据的方式而定义的,即是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。传统数据仓库一般采用拉链的方式保留主数据(...

6819
来自专栏杨建荣的学习笔记

关于interval partitioning(r3笔记65天)

今天一个开发的同事问我一个问题,说在系统中目前需要一个临时的解决方案,定义了一张表,目前想设定为分区表,因为会和外围系统交互产生大量的数据,所以需要按照小时来做...

2618
来自专栏Java技术栈

Redis 如何分析慢查询操作?

和mysql的慢SQL日志分析一样,redis也有类似的功能,来帮助定位一些慢查询操作。

572
来自专栏企鹅号快讯

带你认识一下mysql中数据库information

information_schema 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库。 inf...

1958
来自专栏Python

flask-session组件

简介 flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session...

3755
来自专栏白驹过隙

MySQL - MySQL++在c++11环境下接口设计

33510

扫码关注云+社区