You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Snowflake.Data.Client连接Snowflake遇架构权限错误求助

问题:使用Snowflake.Data.Client在.NET中连接Snowflake时出现架构权限/存在性错误

我在C# .NET中使用Snowflake.Data.Client DLL连接Snowflake数据库,编写了如下连接并执行查询的代码:

_connectionstringname = _strProcessName + "connectionString";
_swfsqlconn = GetSnowFlakeConnection(_connectionstringname);

if (_query.Contains("{FromDate}") || _query.Contains("{ToDate}"))
{
    _query = _query.Replace("{FromDate}", _strFromDate)
                   .Replace("{ToDate}", _strToDate);
}

_swfsqlcmd.CommandText = _query;
_swfsqlcmd.CommandType = CommandType.Text;

_swfsqlcmd.Connection = _swfsqlconn;

if (_swfsqlconn.State == ConnectionState.Closed)
{
    _swfsqlconn.Open();
}

SnowflakeDbDataAdapter oda = new SnowflakeDbDataAdapter(_swfsqlcmd);

oda.Fill(qrds);

尝试打开连接时出现错误:

Snowflake.Data.Client.SnowflakeDbException: 'Error: The requested schema does not exist or is not authorized. SqlState: 08006, VendorCode: 390201, QueryId: '

该账号已被授予全部权限,且我能在DBeaver UI中正常连接并执行查询,但在.NET中遇到此问题,恳请协助解决。


可能的解决方法

1. 补全连接字符串的默认上下文参数

DBeaver通常会在连接时指定默认数据库和架构,而你的.NET连接字符串可能缺少这些配置。确保连接字符串包含DB和SCHEMA参数,示例:

Server=your_account.snowflakecomputing.com;Account=your_account;User=your_user;Password=your_password;Warehouse=your_warehouse;DB=your_database;SCHEMA=your_schema;Role=your_role

若未指定这两个参数,Snowflake会使用该用户的默认数据库/架构,可能与DBeaver中的上下文不一致。

2. 在查询中显式指定数据库和架构

不要依赖默认上下文,直接在SQL语句中明确指定数据库和架构,比如:

SELECT * FROM YOUR_DATABASE.YOUR_SCHEMA.YOUR_TABLE WHERE DATE_COLUMN BETWEEN ? AND ?

这种方式可以彻底避免因默认上下文差异导致的架构找不到问题。

3. 确认连接使用的角色与DBeaver一致

检查.NET连接字符串中是否指定了正确的角色,或者在连接打开后显式切换角色:

using (var cmd = _swfsqlconn.CreateCommand())
{
    cmd.CommandText = "USE ROLE your_role;";
    cmd.ExecuteNonQuery();
}

不同角色的默认上下文或权限范围可能不同,导致看似权限不足的错误。

4. 启用客户端日志排查细节

在代码中启用Snowflake客户端日志,查看连接过程的详细上下文信息:

SnowflakeDbConnection.RegisterLogger(new ConsoleLogger());

日志会输出连接时使用的角色、数据库、架构等关键信息,帮助定位上下文不一致的问题。


内容的提问来源于stack exchange,提问作者Rajesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:26:11