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

相关文章

来自专栏林欣哲

MySQL执行计划(explain)分析

这里的索引有auditstatus和productid,可以建立联合索引。但是哪个放左边就要计算区分度。

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

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

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

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

mysqldump简单解析

MySQL中的mysqldump,真是一个经典而有效的工具,经常用,但是不知道后台运行的过程中到底在干些什么,其实如果想得到这些基本的信息不一定要去看代码...

3537
来自专栏数据和云

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

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

2714
来自专栏乐沙弥的世界

收集统计信息导致索引被监控

      对于索引的调整,我们可以通过Oracle提供的索引监控特性来跟踪索引是否被使用。尽管该特性并未提供索引使用的频度,但仍不失为我们参考的方式之一。然而...

612
来自专栏飞扬的花生

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

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

2076
来自专栏乐沙弥的世界

函数使得索引列失效

      在索引列上使用函数使得索引失效的是常见的索引失效原因之一,因此尽可能的避免在索引列上使用函数。尽管可以使用基于函数的索引来 解决索引失效的问题,但...

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

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

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

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

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

2938
来自专栏白驹过隙

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

1035

扫码关注云+社区