Oracle中如何设置视图权限使其可在SqlDeveloper视图树中显示
根因说明
你已经拥有MyView的SELECT权限,所以查询语句可以正常执行。无法在视图树中找到的核心原因是:SQL Developer默认仅展示当前登录用户(a)自己名下schema的视图,其他用户所有的、你仅拥有访问权限的视图,默认不会展示在a的视图列表中。
解决方案
方案1:无需调整权限,仅修改本地配置/创建私有同义词(推荐)
不需要联系视图所有者或DBA,你自己用a用户操作即可完成:
- 直接查找:展开当前连接下的「其他用户」节点,找到
MyView的所有者用户名,展开该用户的「视图」目录即可找到目标视图 - 固定展示在自己的视图列表:执行以下SQL创建私有同义词,创建完成后刷新视图列表即可直接看到
CREATE SYNONYM MyView FOR [视图所有者用户名].MyView;
注意把[视图所有者用户名]替换为实际的视图所属用户的名称
方案2:调整全局配置,让所有有权限的用户都能直接看到(需要视图所有者/DBA操作)
如果需要所有拥有该视图查询权限的用户都能直接在自己的视图列表中找到,不需要单独创建同义词,可以由视图所有者或拥有对应权限的管理员执行以下操作:
- 创建公共同义词
CREATE PUBLIC SYNONYM MyView FOR [视图所有者用户名].MyView;
- 确认已经给a用户授权查询权限,如果未授权执行以下命令:
GRANT SELECT ON [视图所有者用户名].MyView TO a;
内容的提问来源于stack exchange,提问作者PassionateDeveloper
相关产品推荐
相关产品推荐

