类别:

系统函数 (系统信息)

SYSTEM$ALLOWLIST

返回要添加到防火墙允许名单的主机名和端口号,以便您可以从防火墙后面访问 Snowflake。该函数的输出结果可以传入 SnowCD

通常,Snowflake 客户使用防火墙来阻止未经授权的访问。默认情况下,防火墙可能会阻止对 Snowflake 进行访问。要更新防火墙的允许列表,您需要知道 URL 的主机名和端口号,用于您的 Snowflake 账户、暂存区以及 Snowflake 使用的其他主机。

有关您使用的 Snowflake 客户端允许列表的详细信息,请参阅 允许主机名

语法

SYSTEM$ALLOWLIST()
Copy

实参

无。

返回

返回值的数据类型是 VARIANT。该值是一个 JSON 结构的数组。每个 JSON 结构包含三个键/值对:

type

Snowflake 支持以下类型:

SNOWFLAKE_DEPLOYMENT

Snowflake 账户的主机名和端口号信息。

SNOWFLAKE_DEPLOYMENT_REGIONLESS

组织 的主机名和端口号信息。

有关更多信息,请参阅 账户标识符

STAGE

Snowflake 客户端可以读取或写入的文件存储位置(即 Amazon S3、Google Cloud Storage 或 Microsoft Azure)。

SNOWSQL_REPO

SnowSQL 为执行自动下载/升级而访问的端点。

OUT_OF_BAND_TELEMETRY

接收驱动程序报告的指标和带外事件(例如 OCSP 问题)的主机。

CLIENT_FAILOVER

用于 Client Redirect 的连接 URL 主机名和端口。请注意,查询输出中指定该值的每一行均表示主要连接或次要连接,具体取决于连接 URLs 的配置方式。

OCSP_CACHE

Snowflake 为防无法联系到主要 OCSP 响应器而提供的 OCSP 证书信息替代来源。大多数最新版本的 Snowflake 客户端都访问 OCSP 缓存而不是直接连接到 OCSP 响应器。

OCSP_CACHE_REGIONLESS

Snowflake 为 组织 提供的 OCSP 证书信息替代来源。大多数最新版本的 Snowflake 客户端都访问 OCSP 缓存而不是直接连接到 OCSP 响应器。

OCSP_CLIENT_FAILOVER

Snowflake 为 Client Redirect 提供的 OCSP 证书信息替代来源。

DUO_SECURITY

在向 Snowflake 进行身份验证时,与 MFA(多重身份验证) 一起使用的 Duo Security 服务的主机名。

OCSP_RESPONDER

要在验证 OCSP TLS 证书未被吊销时联系的主机名。

请注意,配置与 Snowflake 服务的专用连接时,不需要此值;请按照相应主题中的说明选择要添加到允许名单的 OCSP 值。

SNOWSIGHT_DEPLOYMENT_REGIONLESS

组织 用来访问 Snowsight 的主机名和端口号。

有关更多信息,请参阅 账户标识符Snowsight:Snowflake Web 界面

SNOWSIGHT_DEPLOYMENT

Snowflake 账户用于访问 Snowsight 的主机名和端口。

host

type 指定完整的主机名(例如 "xy12345.east-us-2.azure.snowflakecomputing.cn""ocsp.snowflakecomputing.cn")。

port

type 指定端口号(例如 44380)。

使用说明

  • 输出可能包括某些类型的多个条目(如 STAGEOCSP_RESPONDER)。

  • Snowflake 偶尔无法解析来自调用该函数的客户端的套接字连接,调用该函数的语句失败,并且显示以下错误消息之一:

    SYSTEM$ALLOWLIST: Fail to get SSL context
    SYSTEM$ALLOWLIST: SSLContext init failed
    SYSTEM$ALLOWLIST: Could not find host in OCSP dumping
    SYSTEM$ALLOWLIST: Peer unverified
    SYSTEM$ALLOWLIST: Connection failure
    

    此外,Snowflake 会返回函数输出中 OCSP 字段的空列表。要排查错误,可以等待几分钟,如果网络连接是瞬态的,则重新运行该语句。如果问题仍然存在,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。

示例

要调用此函数,请使用以下语句:

SELECT SYSTEM$ALLOWLIST();
Copy

示例输出:

[
  {"type":"SNOWFLAKE_DEPLOYMENT", "host":"xy12345.snowflakecomputing.cn",                 "port":443},
  {"type":"STAGE",                "host":"sfc-customer-stage.s3.us-west-2.amazonaws.com",  "port":443},
  ...
  {"type":"SNOWSQL_REPO",         "host":"sfc-repo.snowflakecomputing.cn",                "port":443},
  ...
  {"type":"OCSP_CACHE",           "host":"ocsp.snowflakecomputing.cn",                    "port":80}
  {"type":"OCSP_RESPONDER",       "host":"o.ss2.us",                                       "port":80},
  ...
]
Copy

在此示例输出中,请注意以下内容:

  • 为了便于阅读,添加了空格和换行符。此外,还省略了一些条目。

  • 一些主机名中的区域 ID (us-west-2) 指示账户位于 US 西部地区;但 SNOWFLAKE_DEPLOYMENT 的主机名中没有使用区域 ID。

要将信息提取到表格输出而不是 JSON 中,请结合使用 FLATTEN 函数与 PARSE_JSON 函数:

SELECT t.VALUE:type::VARCHAR as type,
       t.VALUE:host::VARCHAR as host,
       t.VALUE:port as port
FROM TABLE(FLATTEN(input => PARSE_JSON(SYSTEM$ALLOWLIST()))) AS t;
Copy

示例输出:

+-----------------------+---------------------------------------------------+------+
| TYPE                  | HOST                                              | PORT |
|-----------------------+---------------------------------------------------+------|
| SNOWFLAKE_DEPLOYMENT  | xy12345.snowflakecomputing.cn                    | 443  |
| STAGE                 | sfc-customer-stage.s3.us-west-2.amazonaws.com     | 443  |
  ...
| SNOWSQL_REPO          | sfc-repo.snowflakecomputing.cn                   | 443  |
  ...
| OCSP_CACHE            | ocsp.snowflakecomputing.cn                       | 80   |
| OCSP_RESPONDER        | ocsp.sca1b.amazontrust.com                        | 80   |
  ...
+-----------------------+---------------------------------------------------+------+
Copy
语言: 中文