配置客户端、驱动程序、库或第三方应用程序以连接到 Snowflake

要配置客户端、驱动程序、库或第三方应用程序以连接到 Snowflake,您必须指定 Snowflake 账户标识符。此外,您可能还需要指定应使用的仓库、数据库、架构和角色。

您可以在 Snowsight 或执行 SQL 命令来查找这些信息:

使用 Snowsight 获取连接设置

要获取可用于配置客户端、驱动程序、库或第三方应用程序的设置,请执行以下操作:

  1. 登录 Snowsight。

  2. 选择用户名,打开用户菜单。

    账户菜单
  3. 在用户菜单中,选择 Connect a tool to Snowflake,以显示 Account Details 对话框。

    小技巧

    您还可以通过 账户选择器 显示账户详细信息。

  4. 选择以下选项卡之一:

    • 如果您的客户端、驱动程序、库或第三方应用程序支持使用 TOML 配置文件(例如,Snowflake CLISnowflake Python APIsSnowflake Connector for Python

      1. 选择 Config file 选项卡。

      2. 要在配置文件中指定仓库,请从 Warehouse 菜单中选择仓库。

      3. 要在配置文件中指定数据库和架构,请使用 Database 菜单选择数据库和架构。

      4. Connection Method 菜单中,选择计划用于身份验证的方法:

        备注

        客户端、驱动程序、库和第三方应用程序支持菜单中未列出的其他身份验证方法。有关信息,请参阅 保护 Snowflake

      5. 选择复制图标 (对于辅助技术,“copy”按钮。) 复制配置文件的内容。

      备注

      对于 Snowflake Python APIs,在 account 设置中不支持下划线。如果账户标识符包含下划线,请用破折号代替。

    • 如果您的客户端、驱动程序、库或第三方应用程序支持指定连接字符串(例如,ODBC 驱动程序JDBC 驱动程序、Go Snowflake 驱动程序 (https://pkg.go.dev/github.com/snowflakedb/gosnowflake#hdr-Connection_String) 或 .NET驱动程序 (https://github.com/snowflakedb/snowflake-connector-net/blob/master/doc/Connecting.md)):

      1. 选择 Connectors/Drivers 选项卡。

      2. Select Connector or Driver 菜单中,选择要使用的驱动程序。

      3. 要在连接字符串中指定仓库,请从 Warehouse 菜单中选择仓库。(请注意,ODBC 和 .NET. 中没有此菜单)

      4. 要在连接字符串中指定数据库和架构,请使用 Database 菜单选择数据库和架构。

      5. Connection Method 菜单中,选择计划用于身份验证的方法:

        备注

        客户端、驱动程序、库和第三方应用程序支持菜单中未列出的其他身份验证方法。有关信息,请参阅 保护 Snowflake

      6. 选择复制图标 (对于辅助技术,“copy”按钮。),复制生成的连接字符串。

    • 执行 SQL 命令,获取配置信息:

      1. 选择 SQL Commands 选项卡。

      2. 选择提供所需信息的命令旁边的复制图标 (对于辅助技术,“copy”按钮。),将命令粘贴到工作表中,然后执行命令。

使用 SQL 命令,获取连接设置

您可以执行 SQL 命令,获取配置客户端、驱动程序、库或应用程序所需的以下信息:

设置

SQL 命令

当前账户的账户标识符

  • 要获取账户标识符的 organization_name-account_name 形式:

    SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
    
    Copy
  • 要获取账户标识符的 账户定位器 形式:

    SELECT CURRENT_ACCOUNT();
    
    Copy

当前用户名

SELECT CURRENT_USER();
Copy

当前角色

SELECT CURRENT_ROLE();
Copy

当前区域

SELECT CURRENT_REGION();
Copy

当前仓库

SELECT CURRENT_WAREHOUSE();
Copy

当前数据库

SELECT CURRENT_DATABASE();
Copy

当前架构

SELECT CURRENT_SCHEMA();
Copy

客户端和驱动程序使用的账户格式

对于不同的客户端和驱动程序,可以使用不同的语法来指定账户。

一般来说,应该使用包含组织名称 (orgname) 和账户名称 (account_name) 的变体。

使用 Client Redirect 功能时是此规则的例外。如果使用此功能,请将账户名称 (account_name) 替换为连接名称 (connection_name)。有关此语法的示例,请参阅 使用连接 URL

要配置与 Snowflake 服务的专用连接,请在账户名称或账户定位器语法中添加 .privatelink。要确定在使用专用连接时,应使用哪个值连接到 Snowflake,请调用 Snowflake 账户中的 SYSTEM$GET_PRIVATELINK_CONFIG 功能。

如果您需要使用账户定位器,您可能还需要指定云区域 ID、云和政府合规级别,作为账户定位器之后的额外分段。有关要使用的格式,请参阅 格式 2:区域中的账户定位器。在下面的示例中,account_locator_with_additional_segments 表示账户位置,其中包含所需的任何额外分段。

Snowflake CLI:
  • Account name: snow sql --account orgname-account_name

  • Account locator: snow sql --account account_locator_with_additional_segments

You can also specify this information in the account parameter for the connection in the Snowflake CLI config.toml configuration file.

For additional information, see 配置 Snowflake CLI 和连接到 Snowflake.

SnowSQL:
  • 账户名称:snowsql -a orgname-account_name

  • 账户定位器:snowsql -a account_locator_with_additional_segments

有关更多信息,请参阅 连接语法

JDBC:
  • 账户名称:jdbc:snowflake://orgname>-<account_name.snowflakecomputing.cn/?connection_paramsr

  • 账户定位器:jdbc:snowflake://account_locator_with_additional_segments.snowflakecomputing.cn/?connection_params

有关更多信息,请参阅 JDBC 驱动程序连接字符串

ODBC:
  • 账户名称:

    • 服务器:orgname-account_name.snowflakecomputing.cn

  • 账户定位器:

    • 服务器:account_locator_with_additional_segments.snowflakecomputing.cn}

有关更多信息,请参阅 ODBC 配置和连接参数

Python:
  • 账户名称:

    • ACCOUNT 参数值设置为 orgname-account_name

  • 账户定位器:

    • ACCOUNT 参数值设置为 account_locator_with_additional_segments

有关更多信息,请参阅 使用 Python Connector 连接到 Snowflake

.Net:
  • 账户名称:

    • ACCOUNT 参数值设置为 orgname-account_name

    • HOST 参数值设置为默认值 (.snowflakecomputing.cn)。

  • 账户定位器:

    • ACCOUNT 参数值设置为 account_locator_with_additional_segments

    • HOST 参数值设置为默认值 .snowflakecomputing.cn。指定 Snowflake 账户是否不在 us-west 区域。

有关更多信息,请参阅 连接 (https://github.com/snowflakedb/snowflake-connector-net/blob/master/doc/Connecting.md)。

Golang:
  • 账户名称:db, err := sql.Open("snowflake", "jsmith:mypassword@orgname-account_name/mydb/testschema?warehouse=mywh")

  • 账户定位器:sql.Open("snowflake", "jsmith:mypassword@account_locator_with_additional_segments/mydb/testschema?warehouse=mywh")

有关更多信息,请参阅 连接字符串 (https://pkg.go.dev/github.com/snowflakedb/gosnowflake#hdr-Connection_String)。

node.js:
  • 账户名称:将 ACCOUNT 参数值设置为 orgname-account_name

  • 账户定位器:将 ACCOUNT 参数值设置为 account_locator_with_additional_segments

有关更多信息,请参阅 管理连接

Spark(连接器):
  • 账户名称:与 JDBC 相同

  • 账户定位器:与 JDBC 相同

有关更多信息,请参阅 为连接器设置配置选项

Spark(数据块):
  • 账户名称:Account URL for Snowflake account

  • 账户定位器:Account Locator URL for Snowflake account

有关更多信息,请参阅 在 Databricks 中为 Spark 配置 Snowflake

Spark (Qubole):
  • 账户名称:将 Host Address 字段值设置为 orgname-account_name.snowflakecomputing.cn

  • 账户定位器:将 Host Address 字段值设置为 account_locator_with_additional_segments.snowflakecomputing.cn

有关更多信息,请参阅 在 Qubole 中配置 Snowflake for Spark

PHP:
  • 账户名称:

    • ACCOUNT 参数值设置为 orgname-account_name

    • 将所有区域的 REGION 参数值留空。

  • 账户定位器:

    • ACCOUNT 参数值设置为 account_locator

    • 如果 Snowflake 账户 us-west 区域,请设置 REGION 参数值。

有关更多信息,请参阅 连接到 Snowflake 数据库 (https://github.com/snowflakedb/pdo_snowflake/blob/master/README.rst#connecting-to-the-snowflake-database)。

SQLAlchemy:
  • 账户名称:snowflake://user_login_name:password@orgname-account_name

  • 账户定位器:snowflake://user_login_name:password@account_locator_with_additional_segments

有关更多信息,请参阅 将 Snowflake SQLAlchemy 工具包与 Python Connector 结合使用

其他配置步骤

以下主题涵盖关于配置连接的特定领域:

语言: 中文