amazon-redshift - 如果数据库中的任何用户都可以查看模式层次结构,那么 Redshift 中的 GRANT USAGE ON SCHEMA 有什么意义
问题描述
user1 对 my_schema 有 USAGE 权限
user2 在 my_schema 上没有 USAGE 权限
但是,两个用户仍然可以列出此模式下的所有表及其列,只要他们是同一数据库的用户。
那么 USAGE GRANT 的意义何在。它是否只是为了充当其他特权(例如 SELECT)的先决条件?
解决方案
你是对的,你需要先授予USAGE
访问表的权限
来自 AWS 文档
授予对特定架构的 USAGE 权限,这使得该架构中的对象可供用户访问。必须单独授予对这些对象的特定操作(例如,对表的 SELECT 或 UPDATE 权限)。默认情况下,所有用户都拥有 PUBLIC 模式的 CREATE 和 USAGE 权限。
https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html
如果没有授予'USAGE' SELECT | INSERT
,即使语句没有失败,第一次运行的授予等也不会生效。
推荐阅读
- powershell - 如何使用 Windows 窗体在列表视图中显示 PowerShell 输出
- django - 如何调试和修复 Django 中的错误
- c# - 如何选择正确的 Microsoft.AspNetCore.Authentication 替代方案
- daterangepicker - 如何显示单个日期选择器和两个时间选择器以选择所选日期的小时之间的范围?
- android - 插件“kotlin”和“kotlin-android”之间的区别?
- numpy - numpy 如何将函数导出到 API?
- javascript - 如何从输入文本框中获取输入组单选值
- ios - CAGradientLayer 里面有一个透明的洞
- java - 为什么 DirectRunner 不执行管道中的步骤,而 DataflowRunner 它可以工作
- python - python - 为什么我安装后无法在python中导入pyvista包