阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORA-01720:grant option does not exist for ‘%s.%s’

399次阅读
没有评论

共计 2662 个字符,预计需要花费 7 分钟才能阅读完成。

这是什么问题?

[Oracle@prod ~]$ oerr ora 01720

01720, 00000, “grant option does not exist for ‘%s.%s'”

// *Cause:  A grant was being performed on a view or a view was being replaced

//          and the grant option was not present for an underlying object.

// *Action: Obtain the grant option on all underlying objects of the view or

//          revoke existing grants on the view.

 

翻译 Cause 部分 :在对视图执行授权时,视图访问的基础对象没有指定grant option,就会出现ORA-01720 错误。

 

什么时候会出问题?

查看 Oracle 11g Release2 官方文档路径:

Oracle Database Online Documentation 11g Release 2 (11.2)->Database Administration->Security->Security Guide->4 Configuring Privilege and Role Authorization->Managing Object Privileges->”Managing View Privileges”->Privileges Required to Create Views

ORA-01720:grant option does not exist for '%s.%s'

 

翻译截图最后一段:在你授予其他用户访问视图的权限之前,必须对视图的基础对象使用 GRANT OPTION 子句或合适的系统权限并使用 ADMIN OPTION 子句。如果没有这些权限,则无法授予其他用户访问视图。如果尝试授予权限,则会引发 ORA-01720: grant option does not exist for object_name 错误,而 object_name 就是 没有足够权限访问的视图底层对象。

重现问题

1)查看 OE 用户下的表,以 OE 用户下的表为基础对象

SYS@PROD>conn oe/oe

Connected.

OE@PROD>select table_name from user_tables;

 

TABLE_NAME

——————————

PRODUCT_INFORMATION

ORDERS

WAREHOUSES

PROMOTIONS

ORDER_ITEMS

SUBCATEGORY_REF_LIST_NESTEDTAB

PRODUCT_REF_LIST_NESTEDTAB

PRODUCT_DESCRIPTIONS

INVENTORIES

CUSTOMERS

 

10 rows selected.

 

2)为 hr 用户赋予访问 oe.orders 表的权限

OE@PROD>grant select on oe.orders to hr;

 

Grant succeeded.

 

3)在 hr 用户下创建一个视图 orders,用于访问oe.orders

SYS@PROD>conn hr/hr

Connected.

HR@PROD>create view orders as select * from oe.orders;

 

View created.

 

(4)这里引入第三个用户 sh,赋予sh 用户访问视图 orders 的权限

HR@PROD>grant select on orders to sh;

grant select on orders to sh

                *

ERROR at line 1:

ORA-01720: grant option does not exist for ‘OE.ORDERS’

 

至此,问题已经重现。这里引入了 3 个用户 oehrsh,以 oe.orders 表为基表,在 hr 用户下创建视图 orders,用于查询oe.orders 表。当赋予 sh 用户访问视图 hr.orders 的时候,出现了 ORA-01720 错误。

解决问题

引用官方文档的说法:

before you can grant other users access to you view, you must have object privileges to the base objects with the GRANT OPTION clause or appropriate system privileges with the ADMIN OPTION clause

 

所以,只要对视图所在的用户赋予访问基础对象权限时,加上 GRANT OPTION 或者 ADMIN OPTION 子句,就可以解决问题。这里两个子句的区别如下:

– with admin option 只能在赋予 system privilege 的时使用

– with grant option 只能在赋予 object privilege 的时使用

 

我们这里测试的是 object privilege,所以使用with grant option 子句即可。

 

这里继续上面出现 ORA-01720 错误之后的操作:

(5)切换到 oe 用户,为 hr 用户赋予访问 oe.orders 表的权限,加上 GRANT OPTION 子句

HR@PROD>conn oe/oe

Connected.

OE@PROD>grant select on oe.orders to hr with grant option;(解决问题的关键性语句

 

Grant succeeded.

(6)切换到 hr 用户,赋予 sh 用户访问视图 orders 的权限

OE@PROD>conn hr/hr

Connected.

HR@PROD>grant select on orders to sh;

 

Grant succeeded.

 

显然,赋权限操作成功执行。

(7)切换到 sh 用户,执行一次查询操作,验证权限的可用性。

HR@PROD>conn sh/sh

Connected.

SH@PROD>select count(*) from hr.orders;

 

  COUNT(*)

———-

105

所以,一般情况下,只要在创建视图之前赋权限的语句中加上 with grant option 子句,就可以避免出现 ORA-01720 错误;如果是系统权限,在创建视图之前赋权限的语句中加上 with admin option 子句,就可以避免出现 ORA-01720 错误。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147439.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2662字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7799861
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
优雅、强大、轻量开源的多服务器监控神器

优雅、强大、轻量开源的多服务器监控神器

优雅、强大、轻量开源的多服务器监控神器 在多台服务器同时运行的环境中,性能监控、状态告警、资源可视化 是运维人...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...