如果数据库中的任何用户都可以查看架构层次结构,那么 Redshift 中的 GRANT USAGE ON SCHEMA 有何意义

mow*_*nay 3 amazon-redshift

user1 对 my_schema 有 USAGE 权限

user2 对 my_schema 没有 USAGE 权限

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

那么 USAGE GRANT 有什么意义呢?它只是作为其他权限(例如 SELECT)的先决条件吗?

dem*_*glu 8

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

来自AWS文档

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

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

如果不先授予USAGESELECT | INSERT即使语句没有失败,运行 grant 等也不会有效。