oracle - Oracle 存储过程访问其他模式
问题描述
感谢您阅读这个问题。
我正在使用 Oracle 11g。使用我的用户,我可以运行此查询并可以访问所有带有视图的模式:
SELECT DISTINCT OWNER
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'VIEW'
但是,当我在架构中与我的用户创建存储过程并将此查询放入其中时,我无法访问其他用户的架构。我想存储过程需要以某种方式被授予对其他模式的访问权限。
任何帮助表示赞赏。
亲切的问候,
彼得纳克
解决方案
存储过程和其他 PL/SQL 构造不能使用通过角色授予的权限。对象权限——如对表的“选择”或另一个模式中的视图——必须直接授予用户。这几乎肯定是您可以直接运行查询(使用用户基于角色的权限)而不是作为 PL/SQL 过程的一部分的原因。
如果您确实需要将此查询包含在存储过程中,那么您必须与您的 DBA 一起确定需要将哪些对象权限直接授予您的用户帐户。
推荐阅读
- dart - Dart 不必要的包导入是否有任何性能缺陷?
- sql - 基于 iOS 版本的 SQL Select 语句
- javascript - VueJS - 使用带有计算属性的 v-model?
- python-3.x - python3.8 brotli brotli.error: BrotliDecompress failed?
- activerecord - Citus "create_distributed_table" 给出 "PG::UndefinedColumn"
- api - Azure Graph - 通过 ImmutableId 检索用户 - 筛选问题
- google-tag-manager - 谷歌标签管理器在页面加载时重置事件列表
- javascript - Vuejs 表格显示 axios 过滤响应
- r - 使用 count() 和 factor() 函数时,如何在 R ggplot 中使用动态声明的变量?
- python - 如何从 python 调用带有 Char** 参数和 int* 参数的 C 方法?