1

我需要使用 SQLAlchemy 连接到 Snowflake,但诀窍是,我需要使用 OAuth2 进行身份验证。Snowflake 文档仅描述了使用用户名和密码进行连接,这不能用于我正在构建的解决方案中。我可以使用 Snowflake 的 python 连接器进行身份验证,但我看不到如何将它与 SQLAlchemy 粘合的简单路径。在为此编写自定义界面之前,我想知道是否有现成的解决方案。

4

1 回答 1

0

用于snowflake.connector.connect创建到数据库的 PEP-249 连接 -请参阅文档。然后使用( docscreator )的参数- 它需要一个返回 PEP-249 连接的可调用对象。如果你使用它,那么 URL 参数将被忽略。create_engine

示例代码:

def get_connection():
    return snowflake.connector.connect(
        user="<username>",
        host="<hostname>",
        account="<account_identifier>",
        authenticator="oauth",
        token="<oauth_access_token>",
        warehouse="test_warehouse",
        database="test_db",
        schema="test_schema"
    )
engine = create_engine("snowflake://not@used/db", creator=get_connection)
于 2021-12-06T09:30:54.400 回答