snowflake-cloud-data-platform - 我如何回退并扣除我的试用帐户的角色等级?
问题描述
对于新问题,我深表歉意,但我无法理解为我的帐户设置的推荐角色的最佳实践。我正在审核我为反向工程创建的内容,并在新仓库中对其进行更正。
所以情况如下:
- 我将所有仓库修改和使用的所有权限授予系统管理员。
- 在并行运行工作表和 ./snowsql 时,我将 ACCOUNTADMIN 用于 snowsql 中的所有会话。
当我使用 Sysadmin 修改复制了暂存于仓库中的数据的表时,有时我有权限,有时我没有权限。
我一直在使用 ACCOUNTADMIN 角色筛选帐户历史记录,以通过以下文档中的推荐查询查看所有授权:
select *
from table(information_schema.query_history())
order by start_time;
然后我按数据库和 query_id 过滤以包含授权
select *
from table(information_schema.query_history())
where database_name = 'temp_db'
and query_id like '%grant%'
order by start_time;
我这样做是为了查看我在仓库中的数据库之间所做的授权是否有任何差异。我只设置了两个仓库,所以很容易看到。
展望未来,Accountadmin 用于创建角色、仓库和数据库。
为了避免在角色之间切换时需要进行审计,我想在 Sysadmin 上设置未来对仓库中特定数据库的授权以进行修改和使用,我该怎么做?
解决方案
对仓库、数据库和所有其他对象的权限是独立的。授予仓库权限让该角色使用或修改仓库,但这与创建、更新等其他对象(如数据库、模式、表和视图)无关。此外,只有拥有表的角色才能删除或更改表。因此,您可能想要检查 SYSADMIN 和 ACCOUNTADMIN 之间的表的所有权。作为最佳实践,ACCOUNTADMIN 不应该拥有任何东西。
要让您全面了解 Snowflake 中的 RBAC,需要更多信息。如果您对此感到困扰,您可能需要联系 Snowflake 的专业服务,让他们进来并进行概述(快速入门或安全包),让您理顺。
推荐阅读
- visual-studio-2019 - 在 Visual Studio 2019 中,WCF 服务(启用 AJAX)不在 Add --> New Item
- javascript - ES6 箭头函数和 setTimeOut
- java - 较大数组的最后一个元素索引
- android - 如何使用 tasker 的运行 shell 动作在 android 中启用自动同步?
- angular - 根据父组件的属性设置子指令的属性
- angular - 如何让 WebStorm 识别并为自定义 Angular 库中的组件名称提供自动完成功能?
- ios - React 本机 Ios 应用程序在 ios 12.1 或更低版本上崩溃
- python - 如何使用结构化流基于 pyspark 中的连续出现对数据进行计数和分组
- python - 如何拆分和删除列表中的字符串?
- java - 我们不能将 void 数组转换为 int 数组吗?