在这条路上的某个地方出了问题,我似乎找不到原因。如果这已经被问到了,我道歉。
我的数据库中有3个模式:课桌局部_IT格本
COLLDESK是我们的主模式,LOCAL_IT是我们进行本地开发的地方,GERBEN是最终用户(应该只有select选项)。
现在,我在COLLDESK模式中有一个名为GESTIONES的表。在LOCAL_IT中,我有一个名为ACTIONS的视图。它包含COLLDESK模式中的GESTIONES表的4列。到目前为止一切顺利!
现在我想在视图ACTIONS中为GERBEN模式赋予选择权限。
grant select on LOCAL_IT.ACTIONS to GERBEN
我收到错误ORA-01720:COLLDESK. GESTIONES的授权选项不存在
现在,我尝试将GERBEN选择权限授予GESTIONES,但仍然收到错误消息
任何帮助将不胜感激!
此致
格尔本
4条答案
按热度按时间gywdnpxw1#
错误消息应如下所示:
ORA-01720:COLLDESK.GESTIONES的"授权选项"不存在。
下面是它的工作原理:
您有3个架构:
您可能已经执行了以下操作:
注意,因为您要创建一个视图,所以必须直接向schema2授予select,如果select是通过角色授予的,那么您的视图将无法工作。
现在,您尝试允许第三个方案(schema3)使用视图从schema1读取数据。出于安全考虑,即使schema2可以查看数据,也决不允许它访问schema1到第三个方案的数据。否则,这将是一个巨大的安全漏洞。
因此,解决方案是明确规定,当第三方被授予视图上的select特权时,schema2将能够间接授予select特权。
溶液:
现在,schema2可以将其视图上的select授予第三方:
为您:
另外:除非绝对必要,否则避免使用公共视图和公共数据库链接。
ni65a41a2#
创建视图的公共同义词,然后使用您的赠款重试
ghhkc1vu3#
对于无法访问视图结构的最终用户
它的作品
wd2eg0qa4#
对于无法访问视图结构的最终用户
为usr_sms.V_ALERT_01创建公共同义词V_ALERT_001(本地视图);将V_ALERT_001上的选择授予USER_ALERT;