Oracle 查看时授予选择权
在路上的某个地方出了点问题,我似乎找不出原因。如果这是已经被问到道歉 我的数据库中有3个架构: 科勒德克 本地资讯科技 格本 COLLDESK是我们的主模式,LOCAL_是我们进行本地开发的地方,GERBEN是最终用户(应该只有选择选项) 现在,在我的桌面模式中有一个表叫做GESTIONES。在LOCAL_IT中,我有一个称为ACTIONS的视图。这包含COLLDESK架构中表GESTIONES中的4列。到目前为止还不错 现在我想在视图操作中给GERBEN模式选择权限。但是当我说Oracle 查看时授予选择权,oracle,select,database-schema,grant,Oracle,Select,Database Schema,Grant,在路上的某个地方出了点问题,我似乎找不出原因。如果这是已经被问到道歉 我的数据库中有3个架构: 科勒德克 本地资讯科技 格本 COLLDESK是我们的主模式,LOCAL_是我们进行本地开发的地方,GERBEN是最终用户(应该只有选择选项) 现在,在我的桌面模式中有一个表叫做GESTIONES。在LOCAL_IT中,我有一个称为ACTIONS的视图。这包含COLLDESK架构中表GESTIONES中的4列。到目前为止还不错 现在我想在视图操作中给GERBEN模式选择权限。但是当我说 grant s
grant select on LOCAL_IT.ACTIONS to GERBEN
我得到错误ORA-01720:COLLDESK.GESTIONES的grant选项不存在
现在我尝试将GERBEN select权限授予GESTIONES,但仍然收到错误消息
任何帮助都将不胜感激
问候
Gerben为视图创建一个公共同义词,然后使用您的授权重试
create public synonym ACTIONS for LOCAL_IT.ACTIONS;
grant select on ACTIONS to GERBEN;
错误消息应该这样写: ORA-01720:COLLDESK.gestions不存在“授予选项” 下面是它的工作原理: 您有3个模式:
- Schema1-名为“table1”的表的持有者
- Schema2-从schema1.table1中选择的视图“view1”的持有者
- Schema3-用户,从schema2.view1中选择-未在schema1.table1上授予选择权
grant select on schema1.table1 (COLLDESK.GESTIONES) to schema2;
请注意,由于您正在创建一个视图,因此必须将select直接授予schema2,如果select是通过角色授予的,则视图将不起作用
现在您正试图允许第三个模式(schema3)使用视图从schema1读取数据。出于安全目的,永远不允许schema2将数据从schema1访问到第三个schema,即使它可以查看数据。否则这将是一个巨大的安全漏洞
因此,解决方案是,当第三方被授予视图上的select权限时,schema2将能够间接地授予该select权限
解决方案:
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;
此外:
除非绝对必要,否则避免使用公共视图和公共数据库链接。首先耗尽所有其他选项。当我尝试运行您的第一个查询时,出现缺少关键字错误。必须更改其他一些内容。我必须运行查询grant select on gestiones to local_it with grant选项,然后才能将select授予GERBEN。谢谢你的帮助,非常感谢!