You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c跨dblink访问视图所需权限及授权方式咨询

答案

问题1:需要为test用户授予的必要权限

仅需要在db_B数据库侧完成以下授权即可:

  • 由schema_A_proxy用户(或拥有GRANT ANY OBJECT PRIVILEGE权限的管理员用户)执行授权语句,给test用户授予视图的查询权限:
GRANT SELECT ON schema_A_proxy.myView TO test;

无需额外给test用户授予dblink、远程表的相关权限:因为Oracle默认创建的视图为定义者权限对象,运行时会使用视图所有者schema_A_proxy的权限访问底层dblink和db_A侧的表,而你已经确认schema_A_proxy本身可以正常访问该视图,相关权限已经配置完成。

问题2:授权是否可通过角色完成

给test用户的视图查询权限可以通过角色完成,操作步骤参考:

  1. 管理员或schema_A_proxy用户创建自定义角色
CREATE ROLE view_access_role;
  1. 给角色授予视图的查询权限
GRANT SELECT ON schema_A_proxy.myView TO view_access_role;
  1. 将角色授予给test用户
GRANT view_access_role TO test;

注意:该方案生效的前提是,当前schema_A_proxy访问db_A侧表的权限为显式直接授权,而非通过角色获取。这一点你已经满足——因为如果schema_A_proxy的权限来自角色,他自己也无法正常访问该定义者权限视图,和你给出的环境说明冲突。


内容的提问来源于stack exchange,提问作者user13708337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 16:09:03