配置第二个身份验证因素

当密码用户启用 多因素身份验证 (MFA) 时,他们在登录 Snowflake 时必须使用第二个身份验证因素。这些用户输入密码,然后使用第二个因素。

Snowflake 提供了以下可能的第二个因素:

  • 使用可通过多种方式存储和访问的密钥进行身份验证。

  • 使用您的首选身份验证器应用程序进行身份验证。

  • 使用 Duo 进行身份验证。

您的管理员控制哪些因素可供您使用。有关更多信息,请参阅 限制哪些 MFA 方法可用

开始使用

当管理员要求用户注册 MFA 时,系统会提示用户在下次登录 Snowsight 时添加第二个身份验证因素。

如果您已经登录 Snowsight 并想要设置第二个身份验证因素,请执行以下操作:

  1. 在左侧导航栏中,选择您的名字。系统会打开用户菜单。

  2. 选择 Settings

  3. 选择 Authentication

  4. Multi-factor authentication 部分中,选择 Add new authentication method

  5. 按照提示配置您的第二个身份验证因素。

使用密钥身份验证

密钥是一种基于 WebAuthn 标准 (https://www.w3.org/TR/webauthn-3/) 的身份验证形式,它使用公钥/私钥加密。当您成功将 Snowflake 配置为使用密钥进行身份验证时,私钥将安全地存储在个人位置,无论是在您的计算机上、硬件安全密钥(例如 Yubikey)还是密码管理器上。

要将密钥设置为第二个身份验证因素,请完成以下任务:

  1. 出现提示时,选择 Passkey

  2. 完成存储密钥的步骤,就像存储任何其他网站或应用程序一样。例如,您可以使用硬件安全密钥,或配置您的设备,使得认证时必须通过指纹验证才能访问通行密钥。

  3. 为身份验证方法指定名称,以便在登录 Snowflake 时可以识别该方法。

输入密码后,系统将提示您使用您配置的方法提供密码。

使用身份验证器应用程序

Snowflake 允许您使用首选的身份验证器应用程序,使用基于时间的一次性密码 (TOTP) 作为第二个身份验证因素。常见的身份验证器应用程序包括 Google Authenticator、Microsoft Authenticator 和 Authy。

要将身份验证器应用程序设置为第二个身份验证因素,请完成以下任务:

  1. 出现提示时,选择 Authenticator

  2. 使用身份验证器应用程序完成这些步骤,就像使用任何其他网站或应用程序一样。

  3. 为身份验证方法指定名称,以便在登录 Snowflake 时可以识别该方法。

输入密码后,系统将提示您从身份验证器应用程序输入 TOTP。

使用 Duo

要将 Duo 设置为第二个身份验证因素,请完成以下任务:

  1. 出现提示时,选择 DUO

  2. 使用 Duo 完成这些步骤,就像使用任何其他网站或应用程序一样完成这些步骤。

备注

管理员必须配置组织的防火墙,然后才能使用 Duo 作为第二个身份验证因素。有关更多信息,请参阅 先决条件

查看您的身份验证方法

您可以使用 Snowsight 或 SQL 查看您的第二个身份验证因素。

  1. 登录 Snowsight。

  2. 在左侧导航栏中,选择您的名字。系统会打开用户菜单。

  3. 选择 Settings

  4. 选择 Authentication

  5. 使用 Multi-factor authentication 部分查看您的 MFA 方法。

备注

如果您是想要查看其他用户的身份验证方法的管理员,请参阅 SHOW MFA METHODS

有关密钥和账户中所有用户的 TOTPs 信息,请查询 CREDENTIALS 视图。请注意,此视图不包括有关 :doc:`Duo 身份验证器 </user-guide/security-mfa-duo>`(Duo 推送和密码)的信息。

设置默认身份验证方法

如果您将多个 MFA 方法配置为第二个身份验证因素,则可以在输入密码后选择使用哪种方法进行身份验证。要设置默认的第二个身份验证因素,请执行以下操作:

  1. 在左侧导航栏中,选择您的名字。系统会打开用户菜单。

  2. 选择 Settings

  3. 选择 Authentication

  4. Multi-factor authentication 部分中,从 Default sign-in method 下拉列表中选择一种 MFA 方法。

识别使用第二个因素凭据的登录会话

要确定何时使用第二个因素凭据进行身份验证(例如,特定密钥或基于时间的一次性密码),您可以在包含该凭据的 ID 列的 ACCOUNT_USAGE 架构中加入 LOGIN_HISTORYCREDENTIALS 视图:

  • 如果 second_authentication_factor 列包含 PASSKEYTOTP,则 LOGIN_HISTORY 视图在 second_authentication_factor_id 列中包含凭据 ID。

  • CREDENTIALS 视图在 credential_id 列中包含凭据 ID。

例如:

SELECT
    login.event_timestamp,
    login.user_name,
    cred.name
  FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY login
    JOIN SNOWFLAKE.ACCOUNT_USAGE.CREDENTIALS cred
    ON login.second_authentication_factor_id = cred.credential_id
  WHERE login.second_authentication_factor IN ('PASSKEY', 'TOTP');
Copy
+-------------------------------+-----------+--------------+
| EVENT_TIMESTAMP               | USER_NAME | NAME         |
|-------------------------------+-----------+--------------|
| 2025-08-05 17:10:00.941 -0700 | USER_A    | PASSKEY_RALU |
| 2025-07-28 13:04:27.201 -0700 | USER_B    | TOTP_D406    |
| 2025-07-21 09:09:47.701 -0700 | USER_C    | PASSKEY_GN1N |
+-------------------------------+-----------+--------------+

要获取有关在此登录会话期间运行的查询的信息,您可以将 LOGIN_HISTORY 视图与 login_event_id 列中的 SESSIONS 视图一起加入以获取会话 ID,然后使用该 ID 加入 QUERY_HISTORY 视图。

语言: 中文