使用SSO通过Python连接到Snowflake

2025 年 3 月 7 日 | 阅读 4 分钟

在本教程中,我们将学习如何使用 SSO 从 Python 连接到 Snowflake。那么,让我们开始吧。

简介

通过 Python 从 Snowflake 进行 SSO 连接,为用户提供了更有效的身份验证方式,从而提高了安全性和用户体验。通过使用 Okta 或 Azure Active Directory 等外部身份提供商,SSO 允许用户在不直接输入凭据的情况下进行身份验证。通过允许用户一次登录并访问所有连接的服务,这种配置简化了使用多个应用程序的公司的访问管理。

通常,您会使用 `snowflake-connector-python` 库来建立连接,因为它支持多种身份验证选择。当启用 SSO 时,连接过程包括将用户重定向到 Web 浏览器进行身份验证。用户成功登录后,可以轻松地与 Snowflake 交互并运行 SQL 查询。

设置 Python 中 Snowflake 的环境

使用 `snowflake-connector-python` 包,可以从 Python 创建到 Snowflake 的单点登录 (SSO) 连接。通过 Okta 或 Azure AD 等外部身份提供商进行连接,因为该库支持多种身份验证技术,所以安全且简单。

以下是使用 PIP 安装 `snowflake-connector-python` 的语法

语法

接下来,配置到 Snowflake 的连接。SSO 集成通常涉及使用 Okta 或 Azure AD 身份验证方法,具体取决于您的身份提供商。

代码

输出

提供的代码的输出将显示您所连接的 Snowflake 服务的当前版本。它看起来会像这样

 
('5.32.0',)   

具体的版本号可能因执行时的 Snowflake 版本而异。输出是一个包含版本字符串的元组。

Python 中 Snowflake 的实现

现在,我们将通过一个示例来演示如何在 Python 中实现 Snowflake 模块,以检索指定数据库和架构中的表列表。

示例

输出

此示例的输出将提供给定架构中的表列表,每个表表示为一个元组,其中包含表名和创建日期等信息。最终结果看起来会是这样

 
('CUSTOMERS', ...)
('ORDERS', ...)
('PRODUCTS', ...)   

说明

此代码使用 `snowflake-connector-python` 包和单点登录 (SSO) 身份验证连接到 Snowflake 数据库。首先,它使用用户凭据和帐户详细信息建立连接。`authenticator='externalbrowser'` 参数启用 SSO,提示用户通过 Web 浏览器进行身份验证。

接下来,创建一个游标来执行 SQL 命令。`SHOW TABLES IN SCHEMA DEMO_DB.PUBLIC` 查询从 `DEMO_DB` 数据库的 `PUBLIC` 架构中检索表列表。获取结果并将其作为元组打印,每个元组代表一个表名和相关元数据。

最后,关闭游标和连接以释放资源。这种方法允许轻松访问数据库对象,同时通过 SSO 维护安全身份验证。

从 Python 连接到 Snowflake 的一些优势

通过单点登录 (SSO) 连接到 Snowflake 有多种好处。其中一些优点如下。

  1. 它主要通过降低凭据疲劳和凭据被盗的风险来提高安全性,因为用户通过受信任的身份提供商进行身份验证。
  2. 通过消除频繁登录的需要,这种有效的登录流程改善了用户体验,并允许顺畅地访问多个应用程序。
  3. SSO 通过允许集中管理用户权限,并使员工的入职和离职更加容易,从而进一步简化了公司的访问控制。
  4. Python 与 Snowflake 连接的集成以及其高效访问和处理数据的能力,使得数据驱动的决策制定更加容易。
  5. 对于希望在简化数据访问的同时维持严格安全规则的公司来说,Snowflake 因其可伸缩性和性能而成为首选,而这些特性又不会损害安全性。

结论

总而言之,由单点登录 (SSO) 启用的 Snowflake 连接提供了一种安全实用的数据访问方式。使用 SSO,组织可以提高安全性、减少密码管理问题并加快用户身份验证。Python 和 Snowflake 连接可以轻松访问和处理数据,从而实现数据驱动的决策制定。由于 Snowflake 结合了功能和安全性,SSO 是使用云数据解决方案的公司的有用策略。SSO 最终是现代数据管理技术中需要考虑的关键因素,因为它提高了用户体验,同时也支持整体数据治理。