创建用户并授予角色

简介

本教程向您展示了如何使用 SQL 命令创建用户并向其授予角色。您将在 Snowsight 中使用模板工作表,按照相关步骤操作并完成这些任务。

备注

Snowflake 对本教程中示例数据使用的磁盘存储收取最低费用。本教程提供删除数据库并最大程度地降低存储成本的步骤。

Snowflake 需要一个 虚拟仓库 加载数据并执行查询。正在运行的虚拟仓库会使用 Snowflake Credit。在本教程中,您将使用 30 天试用账户 (https://signup.snowflake.com/),该账户提供免费 Credit,您无需支付任何费用。

您将学习的内容

在本教程中,您将学习如何:

  • 使用具有创建和使用本教程所需的 Snowflake 对象的权限的角色。

  • 创建用户。

  • 向用户授予角色并授予仓库访问权限。

  • 探索账户中的用户和角色。

  • 删除您创建的用户。

先决条件

本教程假定满足以下条件:

  • 您拥有 支持的浏览器

  • 您拥有试用账户。如果您还没有试用账户,可以注册一个 免费试用账户 (https://signup.snowflake.com/)。您可以选择任意 Snowflake 云区域

  • 您的用户是账户管理员,并被授予 ACCOUNTADMIN 系统角色。有关更多信息,请参阅 使用 ACCOUNTADMIN 角色

备注

本教程仅适用于拥有试用账户的用户。示例工作表不适用于其他类型的账户。

第 1 步:使用 Snowsight 登录

要通过公共互联网访问 Snowsight,请执行以下操作:

  1. 在支持的 Web 浏览器中,导航至 https://app.snowflake.cn

  2. 提供 账户标识符 或账户 URL。如果您之前登录过 Snowsight,可能会看到一个可以选择的账户名称。

  3. 使用 Snowflake 账户凭据登录。

第 2 步:打开 [模板] 工作表

您可以使用工作表来编写和运行数据库上的 SQL 命令。您的试用账户有权访问本教程的预加载模板工作表。工作表包含您将运行以设置角色上下文、创建用户和授予角色权限的 SQL 命令。因为它是一个模板工作表,所以系统将邀请您为特定的 SQL 参数输入自己的值。

有关工作表的更多信息,请参阅 工作表入门

要打开工作表,请执行以下操作:

  1. 选择 Projects » Worksheets 以打开工作表列表。

  2. 打开 [Template] Adding a user and granting roles

    您的浏览器显示的内容与下图类似。

SQL 用户工作表,其中包含本教程的 SQL 命令,以及描述性注释。

第 3 步:设置要使用的角色

您使用的角色决定了您拥有的权限。在本教程中,使用 USERADMIN 系统角色,以便您创建和管理账户中的用户和角色。有关更多信息,请参阅 访问控制概述

要设置要使用的角色,请执行以下操作:

  1. 在打开的工作表中,将光标置于 USE ROLE 行。

    USE ROLE USERADMIN;
    
    Copy
  2. 在工作表的右上角,选择 Run

    备注

    在本教程中,每次运行一个 SQL 语句。不要选择 Run All

第 4 步:创建用户

Snowflake 用户拥有登录凭据。当用户被授予角色时,用户可以通过授予该角色的权限执行该角色允许的所有操作。有关更多信息,请参阅 用户管理

在本教程的这一步中,您将创建具有名称、密码和一些其他属性的用户。

在打开的工作表中,将光标置于 CREATE USER 行,插入您选择的用户名和其他参数值(示例如下所示),然后选择 Run

对于 MUST_CHANGE_PASSWORD,将值设置为 true,可确保在首次登录时请求密码重置。对于 DEFAULT_WAREHOUSE,请使用 COMPUTE_WH

CREATE OR REPLACE USER snowman
PASSWORD = 'sn0wf@ll'
LOGIN_NAME = 'snowstorm'
FIRST_NAME = 'Snow'
LAST_NAME = 'Storm'
EMAIL = 'snow.storm@snowflake.com'
MUST_CHANGE_PASSWORD = true
DEFAULT_WAREHOUSE = COMPUTE_WH;
Copy

此命令返回以下输出:

User SNOWMAN successfully created.

如果您使用真实 Snowflake 账户创建真实用户,您现在将以安全的方式向需要访问此新账户的人员发送以下信息:

  • Snowflake 账户 URL:用户将登录的 Snowflake 账户链接。您可以在浏览器顶部找到此链接(例如:https://app.snowflake.cn/myorg/myaccount/,其中 myorg 是 Snowflake 组织 ID,myaccount 是账户 ID)。

  • LOGIN_NAME,如 CREATE USER 命令指定。

  • PASSWORD,如 CREATE USER 命令指定。

第 5 步:向用户授予系统角色和仓库访问权限

现在您已经创建了用户,您可以使用 SECURITYADMIN 角色向用户授予 SYSADMIN 角色,以及对 COMPUTE_WH 仓库授予 USAGE。

将一个角色授予另一个角色时,会在角色之间建立父子关系(也称为角色层次结构)。将角色授予用户后,用户即可执行该角色允许的所有操作(通过授予角色的访问权限实现)。

SYSADMIN 有权在账户中创建仓库、数据库和数据库对象,并将这些权限授予其他角色。仅将此角色授予应具有这些权限的用户。有关其他系统定义角色的信息,请参阅 访问控制概述

要授予用户对角色和仓库的访问权限,请执行以下操作:

  1. 在打开的工作表中,将光标置于 USE ROLE 行,然后选择 Run

    USE ROLE SECURITYADMIN;
    
    Copy
  2. 将光标置于 GRANT ROLE 行,输入您所创建的用户名,然后选择 Run

    GRANT ROLE SYSADMIN TO USER snowman;
    
    Copy
  3. 将光标置于 GRANT USAGE 行,然后选择 Run

    GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE SYSADMIN;
    
    Copy

第 6 步:探索账户中的用户和角色

现在,您可以使用 ACCOUNTADMIN 角色探索账户中的所有用户和角色。

要探索用户和角色,请执行以下操作:

  1. 在打开的工作表中,将光标置于 USE ROLE 行,然后选择 Run

    USE ROLE ACCOUNTADMIN;
    
    Copy
  2. 将光标置于 SHOW USERS 行,然后选择 Run

    SHOW USERS;
    
    Copy

    您的输出看起来类似于下图。

    显示账户中的所有用户。具有以下列的表输出:name、created_on、login_name、display_name、first_name。
  3. 将光标置于 SHOW ROLES 行,然后选择 Run

    SHOW ROLES;
    
    Copy

    您的输出看起来类似于下图。

    显示账户中的所有角色。具有以下列的表输出:created_on、name、is_default、is_current、is_inherited。

第 7 步:删除用户并审查要点

恭喜!您已成功完成此试用账户教程。花几分钟时间审查一下所涉及的要点。通过查看 Snowflake 文档中的其他主题了解更多信息。

删除用户。

假设不再需要所创建的用户,现在可以将其删除。

在打开的工作表中,将光标置于 DROP USER 行,输入您所创建的用户名,然后选择 Run

DROP USER snowman;
Copy

审查要点

总之,您会使用在 Snowsight 中预先加载的工作表来完成以下步骤:

  1. 设置要使用的角色。

  2. 创建新用户。

  3. 授予用户角色权限和仓库访问权限。

  4. 探索账户中的用户和角色。

  5. 删除您创建的用户。

以下是一些关于用户和角色的要点:

  • 您需要所需的权限才能在账户中创建和管理对象。在本教程中,您将 USERADMIN、SECURITYADMIN、SYSADMIN 和 ACCOUNTADMIN 系统角色用于不同的目的。

  • ACCOUNTADMIN 角色通常不用于创建对象。相反,我们建议创建与组织中的业务职能保持一致的角色层次结构。有关更多信息,请参阅 使用 ACCOUNTADMIN 角色

  • 仓库提供执行 DML 操作、加载数据和运行查询所需的计算资源。本教程使用包含在您的试用账户中的 compute_wh 仓库。

下一步是什么?

请使用以下资源继续了解 Snowflake :

  • 完成 Snowflake 提供的其他教程:

  • 熟悉 Snowflake 的关键概念和功能,以及用于创建用户和授予角色权限的 SQL 命令:

  • 尝试 Snowflake 提供的 Tasty Bytes Quickstarts:

    • Tasty Bytes Quickstarts (https://quickstarts.snowflake.com/?cat=tasty-bytes)

语言: 中文