关于创建视图的问题(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 条评论
登录 后参与评论

相关文章

来自专栏飞扬的花生

SqlServer批量刷数据执行事务回滚语句备份

      企业进行对数据库执行刷数据工作,一段很长的语句希望同时成功或者失败时用到。 1.建立测试环境 /**************************...

2326
来自专栏白驹过隙

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

34810
来自专栏白驹过隙

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

1125
来自专栏跟着阿笨一起玩NET

Sql Server 存储过程使用技巧

Copy下面的代码,然后新建查询,就可以写sql语句,执行完后,一个你自己的存储过程就建立好了!

671
来自专栏用户2442861的专栏

基于Spring + Spring MVC + Mybatis 高性能web构建

http://blog.csdn.net/zoutongyuan/article/details/41379851#comments

1701
来自专栏数据和云

循序渐进:Oracle 12.2的Sharding基础概念解读

张大朋(Lunar)Oracle 工程师 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职于 O...

2844
来自专栏Jerry的SAP技术分享

使用ABAP代码返回S/4HANA Material上维护的Attachment明细

1593
来自专栏Aloys的开发之路

oracle表空间表分区详解及oracle表分区查询使用方法(转+整理)

此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5...

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

虚拟专用数据库VPD应用 (48天)

系统中有个需求,需要把一个表里的信用卡号字段进行权限管理,大家讨论再三,说TDE不太好,因为需求希望能够让有些用户可以访问这个表,但是卡号字段读不到东西。有些用...

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

关于reset sequence(r3笔记第85天)

sequence在工作中使用比较频繁,对于Insert中插入的值,如果只需要它能够自动递增,这个时候sequence就派上用场了。 但是既然sequence的值...

3028

扫码关注云+社区