首页 > 解决方案 > 如果数据库中的任何用户都可以查看模式层次结构,那么 Redshift 中的 GRANT USAGE ON SCHEMA 有什么意义

问题描述

user1 对 my_schema 有 USAGE 权限

user2 在 my_schema 上没有 USAGE 权限

但是,两个用户仍然可以列出此模式下的所有表及其列,只要他们是同一数据库的用户。

那么 USAGE GRANT 的意义何在。它是否只是为了充当其他特权(例如 SELECT)的先决条件?

标签: amazon-redshift

解决方案


你是对的,你需要先授予USAGE访问表的权限

来自 AWS 文档

授予对特定架构的 USAGE 权限,这使得该架构中的对象可供用户访问。必须单独授予对这些对象的特定操作(例如,对表的 SELECT 或 UPDATE 权限)。默认情况下,所有用户都拥有 PUBLIC 模式的 CREATE 和 USAGE 权限。

https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html

如果没有授予'USAGE' SELECT | INSERT,即使语句没有失败,第一次运行的授予等也不会生效。


推荐阅读