sql - 预言机赠款如何运作?
问题描述
正如我在 Oracle 中所理解的那样,一个模式仅适用于一个用户,如果您(授予者)授予另一个用户(被授予者)访问该模式的权限,该模式将被复制到被授予者的模式中,而 MySQL 仅提供访问数据库的权限,而无需复制。
例如,如果 user1 是 schema1,并且您授予 user2 访问 schema1 的权限。将 schema1 中的那些表复制到 user2 的 schema(可能是 schema2)。这在幕后是如何运作的?
和,
如果我只授予 user2 访问 user1.table1 的选择权限,table1 会被复制到 user2 的架构中吗?还是 user2 只能访问 table1 而 table1 仍然在 schema1 中?
GRANT SELECT ON user1.table1 TO user2;
请帮助我了解 oracle 授予权限的工作原理。谢谢你。
解决方案
该架构被复制到受让人的架构
这是完全错误的。
被授权者仅获得访问其他模式中的表的权限。要访问表,被授权者需要在表引用前加上授权者的模式:
例如user2
需要运行:
select *
from user1.table1;
没有复制任何内容,查询直接访问其他模式中的表。
推荐阅读
- amazon-web-services - 从 API Gateway 实施速率限制标头?
- android - 如何在 Android 中使用“OAuth 2.0”实现“使用 LinkedIn 登录”
- php - 如何从时间 yyyy-mm-dd hh:mm:ss 时间戳中减去 hh:mm 时间戳
- docker - 为什么我在 Windows 子系统 for Linux 中从 Windows 上的 Docker 获得“绑定源路径不存在”?
- java - 以较小的内存占用执行数百万个 Runnable
- vue.js - 如何在 Vue.js 中渲染 Symfony 表单?
- python-3.x - 如何在python中将多个列表传递给多处理
- c# - WPF,xaml,列表->浮动->段落排列-边距底部问题
- java - Exoplayer v2.9 TransferListener 不带参数
- python - 如何在 django 中打印 MultipleObjectsReturned