如何授予非管理员用户在 Snowflake 中查看完整的登录历史记录

Posted

技术标签:

【中文标题】如何授予非管理员用户在 Snowflake 中查看完整的登录历史记录【英文标题】:How to grant non-admin users to see full login history in Snowflake 【发布时间】:2020-11-13 21:26:59 【问题描述】:

我是雪花的新手,作为一名 DBA,我获得了 ACCOUNTADMIN 访问权限。我已通过角色向我们的安全应用程序用户授予对 information_schema.login_history 和 information_schema.query_history 的读取权限。

用户可以登录和查询以上视图。但是,当查询以上视图时,该帐户无法查看所有行。只返回该用户的登录历史,该用户的查询历史。我从我的最后测试了它,将角色从 ACCOUNTADMIN 切换到我创建的读取角色,我看到了同样的事情。

谁能告诉我我需要授予该角色哪些权限,以便使用该角色的任何人都可以看到所有登录历史记录?

【问题讨论】:

欢迎来到雪花!下面回答 【参考方案1】:

您可以在两个地方查看登录历史记录——在“帐户使用情况”视图中或使用“信息架构”表函数。文档here 解释了这些差异。

查看差异后,许多客户会选择授予非管理员访问 Account_Usage 视图的权限以进行审核。文档here 中提到了为此所需的拨款。

但是,如果您希望授予非管理员角色访问 Information_Schema login_history 表函数的权限,您可能需要根据文章 here 为每个所需用户授予此角色的 MONITOR 权限。

【讨论】:

【参考方案2】:

您需要向所述角色授予监控权限:

grant monitor usage on account to role custom;

此信息只能由帐户管理员访问/查看。为了使不是帐户管理员的用户能够访问/查看此信息,Snowflake 提供了全局 MONITOR USAGE 权限。将 MONITOR USAGE 权限授予角色允许所有被授予该角色的用户访问此历史/使用信息。

此外,使用此权限,SHOW DATABASES 和 SHOW WAREHOUSES 命令分别返回帐户中所有数据库和仓库的列表,而不考虑其他权限授予。

参考:https://docs.snowflake.com/en/user-guide/security-access-control-configure.html#enabling-non-account-administrators-to-monitor-usage-and-billing-history

【讨论】:

以上是关于如何授予非管理员用户在 Snowflake 中查看完整的登录历史记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Keycloak 中授予部分用户部分用户管理权限?

授予远程用户(非管理员)使用 WMI 和 C# 在命名空间 cimv2 中枚举 Win32_Service 服务的能力

如何在 NiFi 中向管理员用户授予所有权限

如何在 Oracle SQL 开发人员中查看/执行授予的存储过程

Oracle - 授予非 dba 用户权限以在另一个用户对象上创建授权

如何使用NSIS授予安装目录的权限?