使用 Python 连接时出现雪花角色错误

Posted

技术标签:

【中文标题】使用 Python 连接时出现雪花角色错误【英文标题】:Snowflake Role error while connecting using Python 【发布时间】:2021-02-03 06:51:52 【问题描述】:

我正在尝试使用 python 连接器连接雪花,但在连接到特定角色时遇到问题。即使我可以在雪花网络应用程序中访问该角色,但我无法使用 python 连接器连接相同的角色。我只能与 PUBLIC 角色联系。

我正在使用以下脚本:

conn = snowflake.connector.connect(
                user=USER,
                password=PASSWORD,
                role=ROLE,
                account=ACCOUNT,
                warehouse=WAREHOUSE,
                database=DATABASE,
                schema=SCHEMA,
                autocommit=False
                )

我收到以下错误:

DatabaseError: 250001 (08001): 连接数据库失败: account_name.east-us-2.azure.snowflakecomputing.com:443。角色 连接字符串中指定的“ANALYST_ROLE”不存在或不存在 授权。请联系您当地的系统管理员,或尝试 以其他角色登录,例如公开。

【问题讨论】:

您确定在 Snowflake UI 中您可以使用与该角色相同的数据库和架构吗?因此,不仅要登录,还要使用脚本中的数据库和架构。 是的,我可以做到,甚至在雪花 ui 上以相同的角色、架构和数据库运行脚本 【参考方案1】:

这里有一些提示:

    在 Snowflake 中,角色名称区分大小写。也许您在原始代码中存在一些引用问题,即请检查您的 ''、""、小写或大写,或者直接使用不带引号的原始角色名称。 可能该角色没有足够的权限来操作您的数据库/模式,因此它显示“未授权”。 您可以尝试在之前手动添加角色:Account -> Roles

【讨论】:

【参考方案2】:

我发现了错误,我只是在我的角色名称中犯了一个非常轻微的错误(单个字符错误)。由于名字很大,我看不到它。我现在可以连接了。 出于安全原因,这里提到的角色名称是假的,所以不要假设。

【讨论】:

以上是关于使用 Python 连接时出现雪花角色错误的主要内容,如果未能解决你的问题,请参考以下文章

丢弃用户时出现雪花问题

在 python 中执行雪花 SQL 语句时出现雪花 python 错误

使用 SAS 令牌从 Azure 阶段读取时出现雪花错误

运行 sql 语句时出现 snwochange 错误

雪花:加载时出现错误限制时无法复制?

将 MySQL 连接器与 Python 一起使用时出现 SSL 连接错误