管理阅读者账户¶
阅读者账户(以前称为“只读账户”)使提供商能够与还不是 Snowflake 客户的使用者共享数据,而无需使用者成为 Snowflake 客户。
备注
本主题中介绍的所有任务都必须使用 ACCOUNTADMIN 角色或被授予 CREATE ACCOUNT 全局权限的角色来执行。
本主题内容:
概述¶
阅读者账户使数据使用者能够访问和查询账户提供商共享的数据,使用者无需进行设置或支付使用成本,也无需与 Snowflake 签署许可协议。
阅读者账户由提供商账户创建、拥有和管理,提供商账户承担阅读者账户中的用户产生的所有 credit 费用。与标准使用者账户类似,提供商账户使用 共享 与阅读者账户共享数据库;但阅读者账户只能使用创建它的提供商账户中的数据。
备注
阅读者账户中的仓库每月可以使用无限数量的 credit,这些 credit 将从您的提供商账户中扣除。要限制使用,请设置 仓库资源监视器。
阅读者账户中限制/允许哪些内容?¶
阅读者账户主要用于查询账户提供商共享的数据。例如,您可以通过创建物化视图来处理数据。
您无法在阅读者账户中执行以下任务:
对阅读者账户中的对象设置 数据度量函数。
上传新数据。
修改现有数据。
使用存储集成卸载数据。但是,您可以使用 COPY INTO <location> 命令与您的连接凭据,将数据卸载到云存储位置。
此外,您无法在阅读者账户中执行以下命令:
允许执行所有其他操作。
谁为阅读者账户提供支持?¶
由于阅读者账户与 Snowflake 没有许可协议,因此该账户中的普通用户无法获得支持服务。而作为账户的提供商,您可以处理该账户中用户的问题和请求,并做出适当的回应。
如果您无法直接回答他们的疑问或解决他们的请求/问题,则可以通过正常渠道(如支持协议中所述)提交 Snowflake 支持工单。Snowflake 支持部门提供响应后,您可以将信息传达给阅读者账户中的相应用户。
使用 Web 界面管理和创建阅读者账户¶
如果您具有 ACCOUNTADMIN 角色(或具有已被授予 CREATE ACCOUNT 权限的角色),则可以使用 Snowsight 或者 Classic Console 执行与创建和管理阅读者账户相关的大多数任务。
使用 Snowsight¶
要在 Snowsight 中创建或管理阅读者账户,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Data Products » Private Sharing。
选择 Reader accounts 选项卡。
在此页面上,可以执行以下操作:
通过选择 + New 创建阅读者账户。
查看现有的阅读者账户。
通过选择 ... » Drop 删除阅读者账户。
备注
默认情况下,提供商可以创建的阅读者账户总数为 20 个。如果您达到该限额但需要创建更多账户,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
如果您为了创建新账户而删除了阅读者账户,但没有超过此限制,则在 7 天之内不能创建新阅读者账户,这是已删除阅读者账户的保留期。
使用 Classic Console¶
要在 Classic Console 中创建或管理阅读者账户,请使用 Account 页面。
在此页面上,您可以执行以下任务:
创建阅读者账户。
删除阅读者账户。
针对阅读者账户的 DDL¶
为了能够创建和管理阅读者账户,Snowflake 提供了一类对象 MANAGED ACCOUNT,可支持以下 DDL 命令:
允许其他角色创建和管理阅读者账户¶
默认情况下,只有具有 ACCOUNTADMIN 角色的用户才能创建阅读者账户,并作为账户所有者管理该账户。为了支持将这些任务委托给其他用户,可以将 CREATE ACCOUNT 全局权限授予其他角色(系统定义或自定义)。然后,具有该角色的用户便可以创建阅读者账户,并执行所有与管理通过该角色创建的账户相关的任务。
例如,向 SYSADMIN 角色授予权限:
USE ROLE ACCOUNTADMIN; GRANT CREATE ACCOUNT ON ACCOUNT TO ROLE SYSADMIN;
使用 SQL 创建和管理阅读者账户¶
除了 使用 Web 界面 管理和创建阅读者账户,您还可以使用 SQL。
创建阅读者账户¶
要创建阅读者账户,请使用 ACCOUNTADMIN 角色(或被授予 CREATE ACCOUNT 全局权限的角色)和 CREATE MANAGED ACCOUNT 命令。
在该命令中,请指定账户的标识符以及充当该账户管理员的用户。例如,可以使用以下语法:
USE ROLE ACCOUNTADMIN;
CREATE MANAGED ACCOUNT <account_name>
ADMIN_NAME = <username> , ADMIN_PASSWORD = '<password>' ,
TYPE = READER;
运行命令后,您会看到账户名和账户的登录 URL:
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| status |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| {"accountName":"READER_ACCT1","accountLocator":"IIB88126","url":"https://myorg-reader_acct1.snowflakecomputing.cn","accountLocatorUrl":"https://iib88126.snowflakecomputing.cn"}|
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
注意:
默认情况下,提供商可以创建的阅读者账户总数为 20 个。如果您达到该限额但需要创建更多账户,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
如果您为了创建新账户而删除了阅读者账户,但没有超过此限制,则在 7 天之内不能创建新阅读者账户,这是已删除阅读者账户的保留期。
url
是新阅读者账户的首选 账户 URL。账户定位器是账户的旧标识符。阅读者账户与提供商账户使用的 Snowflake 版本 相同,创建的 区域 也相同。
重要
创建阅读者账户后,请等待最多五分钟,确保账户已完全配置。然后,您 必须 再执行以下任务,账户才可供使用:
将账户添加到一个或多个共享中,以便共享中的 Snowflake 对象可以与该账户共享。
配置账户。
删除阅读者账户¶
要删除阅读者账户,请使用 DROP MANAGED ACCOUNT 命令。例如:
USE ROLE ACCOUNTADMIN; DROP MANAGED ACCOUNT reader_acct1;
注意
删除阅读者账户会删除该账户中创建的所有对象,并立即限制对该账户的所有访问。它还会将该账户从您的阅读者账户总数中移除。
该操作 无法 撤销。删除阅读者账户之前,请考虑到这一点。
查看阅读者账户¶
要查看已为您的账户创建的所有阅读者账户,请使用 SHOW MANAGED ACCOUNTS 命令。例如:
USE ROLE ACCOUNTADMIN; SHOW MANAGED ACCOUNTS;
该命令可用于监控您账户中的阅读者账户总数。如果总数达到限额(20 个),您可能需要删除一些账户,或联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge) 请求增加限额。
此外,您还可以使用 READER_ACCOUNT_USAGE 架构(在 SNOWFLAKE 共享数据库中)中的视图来查询为您的账户创建的阅读者账户的有关信息。有关更多详细信息,请参阅 Account Usage。
故障转移情况下重定向客户端连接¶
在区域中断时,您可以使用 Client Redirect 向使用阅读者账户的数据使用者提供持续访问。在不同区域创建两个阅读者账户,并指定一个作为主要连接。如果某个区域中断,您可以将客户端连接重定向到另一个区域的阅读者账户。有关更多信息,请参阅 配置 Client Redirect 和阅读者账户。