oracle – 在视图上授予选择权

oracle – 在视图上授予选择权,第1张

概述在某个地方出现问题,我似乎无法找出原因.如果这已经被要求道歉. 我的数据库中有3个模式: COLLDESK LOCAL_IT 戈 COLLDESK是我们的主要模式,LOCAL_IT是我们进行本地开发的地方,而GERBEN是最终用户(应该只有选择选项). 现在我的COLLDESK模式中有一个名为GESTIONES的表.在LOCAL_IT中,我有一个名为ACTIONS的视图.这将保留COLLDESK模 在某个地方出现问题,我似乎无法找出原因.如果这已经被要求道歉.

我的数据库中有3个模式:
ColLDESK
LOCAL_IT

ColLDESK是我们的主要模式,LOCAL_IT是我们进行本地开发的地方,而GERBEN是最终用户(应该只有选择选项).

现在我的ColLDESK模式中有一个名为GESTIOnes的表.在LOCAL_IT中,我有一个名为ACTIONS的视图.这将保留ColLDESK模式中GESTIOnes表中的4列.到现在为止还挺好!

现在我想在视图ACTIONS中给出GERBEN模式选择权限.但是,当我说

grant select on LOCAL_IT.ACTIONS to GERBEN

我收到错误ORA-01720:ColLDESK.GESTIOnes不存在授予选项

现在我尝试向GESTIOnes提供GERBEN select权限,但我仍然收到错误消息

任何帮助将不胜感激!

亲切的问候

解决方法 错误消息应该写成这样:

ORA-01720:ColLDESK.GESTIOnes不存在“授予选项”.

以下是它的工作原理:

你有3个架构:

> Schema1 – 名为“table1”的表的持有者
> Schema2 – 从schema1.table1中选择视图“vIEw1”的持有者
> Schema3 – 用户,从schema2.vIEw1中选择 – 没有在schema1.table1上授予选择权.

您可能已完成以下 *** 作:

grant select on schema1.table1 (ColLDESK.GESTIOnes) to schema2;

请注意,由于您正在创建视图,因此必须直接向schema2授予select,如果通过角色授予select,则视图将不起作用.

现在,您尝试允许第3个架构(schema3)使用schema1中的视图读取数据.出于安全考虑,即使可以查看数据,也绝不允许schema2访问schema1中的数据到第3个模式.否则这将是一个巨大的安全漏洞.

因此,解决方案是明确表示,当第三方被授予视图的选择权限时,schema2将能够间接地授予该选择权限.

解:

grant select on schema1.table1 to schema2 with grant option;

现在,schema2可以将其视图上的select授予第三方:

grant select on schema2.vIEw1 to schema3;

为了你:

grant select on ColLDESK.GESTIONED to LOCAL_IT with grant option;grant select on LOCAL_IT.ACTIONS to GERBEN;

也:除非绝对必要,否则避免使用公共视图和公共数据库链首先消耗其他所有选项.

总结

以上是内存溢出为你收集整理的oracle – 在视图上授予选择权全部内容,希望文章能够帮你解决oracle – 在视图上授予选择权所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1164583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存