配置阅读者账户

新创建的读者账户仅包含一个用户,该用户充当整个账户的管理员。

要“引导”(即配置)账户,账户管理员必须在账户中创建一组最少的附加对象,包括用户、自定义角色(如果需要)、虚拟仓库和一个或多个共享数据库(用于提供商账户共享的数据)。

本主题概述了所有这些配置任务(必需的和可选的)。

备注

任务 2 至 4 必须以账户管理员身份完成。所有剩余的任务都可以委派给其他用户。

此外,所有这些任务必须在读者账户中执行,而不是在提供商账户中执行。

本主题内容:

任务 1:以账户管理员身份登录读者账户

Log into the reader account using any of the supported interfaces (such as Snowflake CLI, SnowSQL, or the web interface).

The instructions in this topic assume you are using SQL to perform these tasks, either in Snowflake CLI, SnowSQL, or using a worksheet (in the web interface ). However, the tasks can be performed in any supported Snowflake interface.

小技巧

请记住将 ACCOUNTADMIN 设置为要使用的角色。您可以在登录期间或之后在活动会话中设置此角色。

如果您使用工作表(在 Web 界面中)执行这些任务,请在工作表的上下文中设置角色。

任务 2:创建自定义角色(可选)

角色可以对读者账户中的用户可以执行的任务进行细粒度控制。您可以使用角色执行以下操作:

  • 指定可以查询与该账户共享的数据的用户。

  • 将虚拟仓库的控制权授予选定的用户。

  • 将一些管理员任务和职责委派给选定的用户(如果需要)。

每个读者账户都带有系统定义的标准角色(SYSADMIN、SECURITYADMIN 和 PUBLIC)。如果这些角色不满足您将在账户中创建的用户的访问要求,您可以创建其他自定义角色。

有关更多详细信息,请参阅 访问控制概述

任务 3:创建用户

创建将登录读者账户并查询与该账户共享的数据以及执行您选择允许的任何其他任务的用户。

作为用户创建过程的一部分,请记住向用户授予系统定义或自定义(如果您已创建)的角色。您分配给用户的角色决定了他们可以在账户中执行哪些操作。

有关更多详细信息,请参阅 CREATE USERGRANT ROLE

小技巧

本主题中的所有剩余任务可以由账户管理员完成,也可以委派(通过权限和角色)给账户中的其他用户。

至少,我们建议:

  • 向至少一个其他用户授予 SECURITYADMIN 角色,以便他们可以帮助创建和管理账户中的其他用户和对象访问权限。

  • 向至少一个其他用户授予 SYSADMIN 角色,以便他们可以帮助创建和管理账户中的其他对象(例如虚拟仓库)。

任务 4:创建资源监视器(可选)

查询与读者账户共享的数据需要虚拟仓库。运行时,虚拟仓库会消耗 credit,这些 credit 将从您的提供商账户中扣除。

如果您希望控制读者账户中虚拟仓库每月消耗的 credit 数量,请创建一个或多个资源监视器并指定它们是否控制:

  • 账户内所有仓库。

  • 单个仓库。

有关更多详细信息,请参阅 CREATE RESOURCE MONITOR

注意

如果您选择跳过此任务,则读者账户中的仓库每月可以消耗无限数量的 credit,这些 credit 将从您的提供商账户中扣除。

任务 5:创建虚拟仓库

为了能够查询共享数据库中的对象,您必须创建至少一个虚拟仓库。您可以根据需要创建任意数量的仓库;但是,请记住,您的提供商账户负责读者账户中仓库消耗的所有 credit,并考虑以下事项:

  • 适当设置仓库大小,权衡所需的查询性能和所需的 credit 消耗。

  • 确保仓库设置为在不使用时自动暂停。

有关更多详细信息,请参阅 CREATE WAREHOUSE

任务 6:从与账户共享的每个共享创建数据库

默认情况下,读者账户不包含任何数据。要使用从您的提供商账户共享的数据,您必须使用 CREATE DATABASE 命令从与该账户共享的每个共享创建数据库。创建数据库时,您可以指定读者账户中的其他用户在查询共享数据时将引用的名称。

例如,如果您的提供商账户名为 ab12345,并且您与此读者账户共享了名为 share1share2 的两个共享:

CREATE DATABASE shared_db1 FROM SHARE ab12345.share1;

CREATE DATABASE shared_db2 FROM SHARE ab12345.share2;
Copy

任务 7:向角色授予虚拟仓库和数据库的权限

数据提供商可以选择向共享添加对象,方法 通过数据库角色向共享授予对象权限,然后向共享授予数据库角色(选项 1),或者 直接向共享授予对象权限(选项 2)。本节中的说明因数据库提供商选择的选项而异:

选项 1:

要允许查询与读者账户共享的数据,请在共享中授予与您账户中的业务职能一致的数据库角色以及您账户中的相应角色。例如,假设共享包括一个名为 shared_db1.dr1 的数据库角色,您希望与您账户中的每个用户共享该角色。在这种情况下,您可以将数据库角色授予 PUBLIC 系统角色:

GRANT DATABASE ROLE shared_db1.dr1 TO ROLE PUBLIC;
Copy
选项 2:

要允许查询与读者账户共享的数据,请向账户中的其他角色(系统定义的或自定义的[如果有])授予以下权限:

例如,以下命令将两个名为 shared_db1shared_db2 的数据库以及一个名为 testing_vw 的仓库的必要权限授予 PUBLIC 角色。由于该账户中的所有用户都自动拥有 PUBLIC 角色,因此该账户中的任何用户都可以使用仓库并查询数据库:

GRANT IMPORTED PRIVILEGES ON DATABASE shared_db1 TO ROLE PUBLIC;

GRANT IMPORTED PRIVILEGES ON DATABASE shared_db2 TO ROLE PUBLIC;
Copy

此外,授予您为执行查询而创建的虚拟仓库的 USAGE 权限:

GRANT USAGE ON WAREHOUSE testing_vw TO ROLE PUBLIC;
Copy

如果需要,您可以授予其他权限;但是,上面列出的权限是查询账户中的共享数据库所需的 最低 权限。

此外,您可以将 testing_vw 仓库的全部权限授予 SYSADMIN 角色,使拥有该角色的用户能够启动、停止和调整仓库的大小:

GRANT ALL ON WAREHOUSE testing_vs TO ROLE SYSADMIN;
Copy

有关更多详细信息,请参阅 GRANT <privileges> ... TO ROLE

任务 8:邀请用户登录并重置密码

作为最后一个配置任务,通知您创建的所有用户该账户可供使用。

最快/最简单的方法是使用 ALTER USER 命令为每个用户重置密码。这将为每个用户生成一个唯一的 URL,然后您将其发送/给予用户。用户使用 URL 更改密码并登录账户。

例如:

ALTER USER ra_user1 RESET PASSWORD;

ALTER USER ra_user2 RESET PASSWORD;
Copy

重要

每个 URL 只能使用 一次,4 小时后 过期。但是,您可以根据需要随时重置用户的密码。

有关更多详细信息,请参阅 ALTER USER

语言: 中文