需要授予哪些权限才能访问 sys.dba_systems

2024-02-15

我正在开发适用于 Oracle 的应用程序。对于某种逻辑,我需要从给定的数据库用户获取具有指定模式的表列表。就我而言,我有一个已授予给定模式访问权限的用户。因此,当我的代码使用给定的凭据创建连接并尝试从以下查询中获取表时,它返回表列表。

SELECT * FROM dba_objects where owner ='schema' and object_type = 'TABLE'

上述查询适用于具有授予所有权限但是当我尝试使用有限的权限时,它会抛出错误消息。

ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"

对于我们的代码从中创建连接的辅助用户,已通过以下查询授予权限

create user johnsmith identified by Passw0rd;;
grant connect to johnsmith ;
grant select any table to johnsmith ;
grant UPDATE any table to johnsmith ;
grant DELETE any table to johnsmith ;
grant INSERT any table to johnsmith ;

我应该向用户授予哪些权限才能访问以下系统表...?

  • dba_对象
  • 用户约束
  • 用户消费列
  • 用户表
  • 所有选项卡列 并且还允许访问 dbms_metadata.get_dependent_ddl() 方法

With the O7_DICTIONARY_ACCESSIBILITY初始化参数设置为 false https://docs.oracle.com/database/121/DBSEG/authorization.htm#GUID-5E99543D-BEB5-45C7-B3F1-5C7795AE2622,这是默认值,那么:

提供对其他模式中的对象的访问的系统权限并不授予其他用户访问该模式中的对象的权限。SYS架构。例如,SELECT ANY TABLE 权限允许用户访问其他架构中的视图和表,但不允许他们选择字典对象(动态性能视图、常规视图、包和同义词的基表)。但是,您可以授予这些用户显式对象权限以访问SYS schema.

因此,您可以授予您所需的特定视图的选择权限:

grant select on sys.dba_objects to johnsmith;

其他视图也是如此;或者如果你需要他们对 SYS 模式对象的更广泛访问 https://docs.oracle.com/database/121/DBSEG/authorization.htm#GUID-F4BE7D94-B60E-42CE-9AFA-2D0C0443C31F你可以给他们一个角色:

grant select_catalog_role to johnsmith;

虽然最小特权原则 https://en.wikipedia.org/wiki/Principle_of_least_privilege应始终适用,因此这可能有点过分,并且可能会暴露您不希望用户看到的内容。

您无需授予用户任何权限即可查询user_*意见。如果您指的是 DBA 等价物 - 例如dba_tables- 然后授予他们dba_objects多于;或者他们会被包含在select_catalog_role。但同样,只提供实际需要的东西。

无论哪种方式,为了dbms_metadata您也可以只授予该包的权限(您不能授予包中单个过程的权限):

grant execute on dbms_metadata to johnsmith;

或者 - 可能比实际需要的要多得多,并且可能比选择角色更危险:

grant execute_catalog_role to johnsmith
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要授予哪些权限才能访问 sys.dba_systems 的相关文章

  • 在android中创建SQLite数据库

    我想在我的应用程序中创建一个 SQLite 数据库 其中包含三个表 我将向表中添加数据并稍后使用它们 但我喜欢保留数据库 就好像第一次安装应用程序时它会检查数据库是否存在 如果存在则更新它 否则如果不存在则创建一个新数据库 此外 我正在制作
  • Oracle 中的 Json_object 返回 ORA-00907: 缺少右括号

    我正在尝试将 Oracle 表数据转换为 JSON 文件 我有三个数据库 下面的代码在一个数据库中以 JSON 文件形式提供输出 但其他两个数据库抛出ORA 00907 missing right parenthesis error 从语法
  • 将数据库与 Clojure 结合使用

    有哪些使用 Clojure 数据库的方法 我从 Clojure 知道你可以用 Java 做任何事情 但这意味着我最终可能会使用一些过于复杂的东西 比如 Hibernate 这与 Clojure 的简单性相冲突 有什么建议或意见吗 Cloju
  • php oracle客户端oci8安装出现什么问题

    我尝试了安装 PHP Oracle 客户端的所有过程 1 我安装了客户端版本8和32位 2 我在php ini中取消了oci的注释 3 重新启动Wamp 4 不确定是否真的安装 但我在 php ini 中得到了引用 5 但仍然无法连接 泰汉
  • 如何迁移我的 Heroku 数据库?

    我试过了 heroku rake db migrate and heroku pg push 第一个给我一个 PGerror rake 中止错误 有没有办法用heroku完全重建 重置我的数据库 我似乎在他们的文档中找不到它 编辑 在此之前
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • SKIP加锁和nowait的区别

    pl sql 中 SKIP 锁定游标和 nowait 游标之间的区别 我认为我找到的这张图片是描述差异的最佳例子 详细说明 http viralpatel net blogs oracle skip locked
  • 如何在oracle中将日期转换为时间戳(DD-MON-YYYY HH24:MI:SS.FF格式)?

    我尝试了下面的查询 但它不起作用 select TO TIMESTAMP ColumnName Data type Date DD MON YYYYHH24 MI SS FF from TableName where Changedate
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • CONTAINS 不适用于 Oracle Text

    我在执行此查询时遇到问题 SELECT FROM gob attachment WHERE CONTAINS gob a document java gt 0 它给了我 ORA 29902 error in executing ODCIIn
  • Android中BaseColumns有什么用

    实现一个类有什么用BaseColumns在安卓中 The BaseColumns http developer android com reference android provider BaseColumns html接口提供了非常常见
  • 就SQL注入而言,哪种sql查询更安全

    我有两个 SQL 查询正在尝试更新sup and opp每次调用查询时 值分别为 1 和 1 第一个查询 query update disc set sup sup opp opp where did did int sup getnoof
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3
  • 如何在 Oracle 中按组填充缺失日期并更改计数值

    这是对我之前发布的问题的轻微修改 如何在 Oracle 中按组填写缺失的日期 https stackoverflow com questions 63002363 how do i fill in missing dates by grou
  • 如何为“%abc%”搜索创建文本索引?

    我想对查询进行索引x like abc 如果我有一个如下表 create table t data varchar 100 我想创建一个索引以便能够有效地执行以下操作 select from t where contains abc 和这个
  • using 块会关闭数据库连接吗?

    using DbConnection conn new DbConnection do stuff with database 会不会using块调用conn Close 是的 它会 实施DbConnection Dispose calls
  • C# 中的 Oracle 连接 - 连接字符串

    我目前正在尝试用 C 构建一个应用程序并将其连接到在 Oracle 11g 中运行的实时数据库 我有以下连接详细信息 Host IP 10 204 1 3 Port 1521 DB Name PROD 我的源代码 string connSt
  • PL/SQL 过程:如何返回 select 语句?

    我想创建一个存储过程 on ORACLE数据库服务器我的问题是 我不知道如何返回 select 语句 这是程序中应包含的逻辑 输入参数 过滤器1 int 过滤器2 字符串 with cte as select val1 val2 stdde

随机推荐

  • StringLengthAttribute 如何工作?

    使用 Entity Framework 和 ASP NET MVC3 验证模型时 我在使用 StringLengthAttribute 时遇到问题 我的模型基于实体框架实体 该实体具有一个分部类 该分部类使用 MetadataType 属性
  • 用于 REST 轮询的 Akka

    我正在尝试将大型 Scala Akka PlayMini 应用程序与外部 REST API 连接起来 这个想法是定期轮询 基本上每 1 到 10 分钟 根 URL 然后爬取子级 URL 以提取数据 然后将其发送到消息队列 我想出了两种方法来
  • 如何访问具有隔离范围的指令属性?

    我需要访问指令创建的模型 同时我需要在指令中获取属性 JS module directive createControl function compile timeout return scope name Name Dynamically
  • Opencart最低下单价

    我正在尝试在 Catalogue view theme default template checkout confirm tpl 中实现以下代码 div div div class warning Minimum 10 Euro to c
  • 使用 PHP 为移动设备进行令牌身份验证

    我正在编写一个 iPhone 应用程序作为我网站的移动版本 我打算公开一些 REST API 以便应用程序可以更新用户的数据 我不希望用户每次都登录 但我想保存他的令牌 cookie 并在以后的所有请求中重用它 我可以设置一个随机令牌并将其
  • 适用于 8 位 MCU 的更快 16 位乘法算法

    我正在寻找一种比下面的算法更好的算法来将两个整数相乘 你对此有什么好主意吗 MCU AT Tiny 84 85 或类似的 运行此代码的地方没有 mul div 运算符 uint16 t umul16 uint16 t a uint16 t
  • 如何在 Flask 中将 login_required 与类一起使用?

    from flask login import login required from flask restful import Resource login required class MyClass Resource 在主文件中 我调
  • 如何在继承的TextBox中保留Font?

    我使用以下代码来获取未绘制边框的 TextBox public partial class CustomTextBox TextBox public CustomTextBox InitializeComponent SetStyle Co
  • BroadcastReceiver 的生命周期相对于 Android O 发生了变化

    如果我声明一个BroadcastReceiver通过系统广播的清单文件 例如ACTION POWER DISCONNECTED 系统将在每次发送特定广播时调用它 因此 BroadcastReceiver 的生命周期不受限制 但也有一些广播无
  • JavaScript 全局变量和自调用匿名函数

    所以我一直在读Javascript 好的部分 https rads stackoverflow com amzn click com 0596517742Crockford 指出的一件事是 Javascript 中全局变量的使用弱点 如果你
  • CSS:当我附加新的 div 元素时,z-index 无法正常工作

    我想实现一个关于绘制由 div 元素配置的一些矩形和贴纸的网站 要添加贴纸或矩形 用户单击按钮 我想按以下顺序排列 div 元素 上 贴纸 gt 架子 gt 矩形 gt 画布 下 所以我在样式表中使用了 z index canvas pos
  • 我怎样才能制作一个无限循环并暂停 5 秒

    string connectionstring server SQLVS2 SQLVS2 database DDM Persist Security Info True uid ddmuser password User02 Ddm Sql
  • JasperReports 可以在报告中包含 pdf 吗?

    是否可以在 JasperReport 中包含现有的 pdf 文件 我们确实希望将新数据附加到现有报告中 而不重新生成现有报告 我们将导出回 pdf 我正在考虑使用 iText 的 PdfCopy 来合并两个 pdf 但希望 JasperRe
  • 通过联合访问 __m128 变量的字节是否合法?

    考虑这个变量声明 union struct float x y z padding components m128 sse data 我的想法是通过分配值x y z字段 执行 SSE2 计算并通过读取结果x y z 不过 我对这是否合法有些
  • 检索 Windows Vista 及更高版本上 BootMgr 的分区号

    我需要将启动管理器映射到分区号 Manufacturer Recovery partition Partition 0 Boot manager Partition 1 C Partition 2 D Partition 3 对于已安装的分
  • 在 R 中转换 3D 数组中的表格

    我有一个矩阵 R gt pippo m 1 2 3 4 1 1 2 3 4 2 5 6 7 8 3 9 10 11 12 4 13 14 15 16 5 17 18 19 20 6 21 22 23 24 我想用 dim 2 4 3 将该矩
  • 如何调试 UWP UpdateTask?

    在我的 UWP 应用中 如何通过 UpdateTask 中的代码进行调试 VS 2017 中的 生命周期事件 下拉菜单似乎没有提供触发此类后台任务的选择 有办法做到这一点吗 首先介绍一下 UWP 的 UpdateTask 这是一个后台任务
  • facebook-ios-sdk requestWithGraphPath:@"我/朋友"

    我找不到关于这个 sdk 的任何基本文档 我只是愚蠢还是找错地方了 我不知道这个方法是什么 void request FBRequest request didLoad id result 实际上在这样的请求的情况下返回 requestWi
  • Bootstrap tabbable 和 popover 之间的冲突

    我正在尝试在同一页面中使用 Twitter Bootstrap tabbable 和 Bootstrap popovers 我在解决弹出窗口无法出现在选项卡限制之外的问题时遇到困难 问题是当弹出窗口出现在边框旁边时 它是半隐藏的 我不是 J
  • 需要授予哪些权限才能访问 sys.dba_systems

    我正在开发适用于 Oracle 的应用程序 对于某种逻辑 我需要从给定的数据库用户获取具有指定模式的表列表 就我而言 我有一个已授予给定模式访问权限的用户 因此 当我的代码使用给定的凭据创建连接并尝试从以下查询中获取表时 它返回表列表 SE