sql - Oracle 代理访问
问题描述
我想知道我们是否可以在不授予插入、删除、更新、创建或删除表的情况下授予用户代理访问权限?我只想授予用户访问 DB Links 的权限,该权限仅适用于代理帐户,但想限制其他操作。
谢谢
解决方案
如果 DB 链接和表归 User_A 所有,那么授予 User_B 对 User_A 的代理访问权限(以访问链接)也将允许 User_B 创建/删除/更改 User_A 架构中的任何其他内容,因为 User_B 实际上变成了 User_A。你无法阻止这一点。
处理授予对私有数据库链接的访问权限的更好方法是创建一个属于 User_A 的视图,该视图指向 User_A 的数据库链接中的资源,然后将视图上的 SELECT 授权给 User_B。
例如作为 USER_A:
create database link remote_db connect to remote_user identified by password using 'connect string';
create view remote_view as select * from remote_table@remote_db;
grant select on remote_view to user_b;
然后作为 USER_B:
select * from user_a.remote_view;
简单地授予其他用户对 db 链接的不受限制的访问权限 - 无论是通过代理权限还是公共链接 - 都会公开更多通常被认为是安全或安全的远程数据库元数据。例如,像 ALL_USERS 这样的视图被公开,可以通过提供所有有效用户 ID 的列表来帮助对远程系统进行黑客攻击。始终最好将本地用户对链接的访问限制为他们需要的特定表或视图,如此处所示。
推荐阅读
- java - 尽管 -Xmx 堆选项,为什么 Cassandra 占用这么多内存?
- elixir - Elixir:我从一个简单的加法函数中得到一个错误
- html - 我是编码新手,不知道如何将 span 类转换为 css
- ruby-on-rails - 尝试选择至少一个关联对象与查询不匹配的所有对象
- python - 如何用 pandas 将浮点数列装箱
- laravel - 指向项目目录外的 Laravel 路由
- excel - 错误的 COUNTIFS() 函数 Excel
- javascript - JavaScript函数没有做应该做的事情
- html - 为什么我的 nb-search 没有出现在我的页面中?
- powerbi - 特定数据模型的同比通货膨胀计算