amazon-redshift - 从架构中删除能力视图/列出所有表
问题描述
使用 Amazon Redshift 数据库。我有一个名为“Public”的模式和另一个名为“SchemaX”的模式。我创建了一个名为“User1”的用户;并让他访问“SchemaX”。我想阻止“User1”查看或列出我的“公共”模式中的可用表。如何做到这一点?
解决方案
要禁止用户在数据库的 PUBLIC 模式中创建对象,请使用REVOKE命令删除该权限。
REVOKE [ GRANT OPTION FOR ]
{ { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] }
FROM { username | GROUP group_name | PUBLIC } [, ...]
[ CASCADE | RESTRICT ]
SELECT撤销使用SELECT语句 从表或视图中选择数据的权限。
INSERT撤销使用INSERT语句或 COPY 语句 将数据加载到表中的特权。
UPDATE撤销使用UPDATE语句 更新表列的权限。
DELETE撤销从表中删除数据行 的权限。
REFERENCES 撤销创建外键约束的权限。您应该撤销对被引用表和被引用表的此特权。
ALL [ PRIVILEGES ] 立即撤销指定用户或组的所有可用权限。PRIVILEGES关键字是可选的。
ON [ TABLE ] table_name 撤销对表或视图的指定权限。TABLE关键字是可选的。
ON ALL TABLES IN SCHEMA schema_name 撤销对引用模式中所有表的指定权限。
GROUP group_name 撤销指定用户组的权限。
PUBLIC 撤销所有用户的指定权限。PUBLIC表示始终包含所有用户的组。单个用户的权限包括授予PUBLIC的权限、授予用户所属的任何组的权限以及授予用户单独的任何权限的总和。
CASCADE 如果用户拥有具有授予选项的权限并且已将该权限授予其他用户,则其他用户所拥有的权限是依赖权限。如果第一个用户持有的特权或授权选项正在被撤销并且存在依赖特权,则如果指定了CASCADE,则这些依赖特权也会被撤销;否则,撤销操作失败。
例如,如果用户 A 已向用户 B 授予了带有授予选项的权限,并且用户 B 已将权限授予用户 C,则用户 A 可以撤销用户 B 的授予选项并使用 CASCADE 选项依次撤销用户 B 的权限用户 C。
RESTRICT 仅撤销用户直接授予的那些权限。此行为是默认行为。
推荐阅读
- ruby-on-rails - ActiveModel::Serializer 将动态接受任何属性的子类?
- go - 如何解决 Go 项目中嵌套应用程序二进制文件中的依赖关系?
- java - 如何在java中只获取父类的一些*属性/参数*
- python - 根据列值从 pandas 数据框创建字典
- javascript - 使用 javascript 在新选项卡中打开 - 异常情况,无法访问代码
- sql - hive sql:无效的列引用'2'
- python - 使用分配运算符时的 Python 错误 TOS = 优先级 [数据 >> 5] + 选项卡 + 延迟 [D] + 选项卡 + 吞吐量 [T] + 选项卡 + 可靠性 [R] + 选项卡 = 成本 [M]
- r - 分组依据和日期之间的筛选
- sql - SQL数比较和聚合
- python-3.x - 没有得到想要的结果