使用 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 连接时出现雪花角色错误的主要内容,如果未能解决你的问题,请参考以下文章