Snowflake .NET 连接器支持以下 .NET 框架和库版本:
免责声明:虽然连接器以 netstandard2.0 为目标,并且可以使用其支持矩阵中的版本,但连接器仅支持和测试上面列出的版本
请参阅下面的“注意事项”部分,了解有关安全使用 .NET 驱动程序的信息
如果您想为该项目做出贡献,请了解我们希望遵循的编码约定:编码约定。
您可以为 Window、Macintosh 和 Linux 操作系统构建 Snowflake .NET 连接器应用程序。有关支持的操作系统版本的信息,请参阅客户端版本和支持策略。
该项目是在 Visual Studio 2017 下开发的。不支持早期版本的 Visual Studio。
先决条件:安装 dotnet、git、nuget 和 mono(仅在 Mac 上)
git clone [email protected]:snowflakedb/snowflake-connector-net snowflake-connector-net
cd snowflake-connector-net
nuget restore
cd Snowflake.Data
dotnet build --configuration Release
Add a parameters.json file to Snowflake.Data.Tests
dotnet build
Snowflake Connector for .Net 的包 ID 是 Snowflake.Data。
可以直接从 nuget.org 下载包。
还可以使用 Visual Studio UI 下载它(工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包并搜索“Snowflake.Data”)
或者,也可以使用包管理器控制台下载包:
PM> Install-Package Snowflake.Data
从版本 v4.2.0 开始,驱动程序包使用签名进行签名,以验证其真实性和完整性。验证签名的步骤:
cosign
.nupkg
),例如:https://www.nuget.org/packages/Snowflake.Data/4.2.0cosign verify-blob snowflake.data.4.2.0.nupkg
--key snowflake-connector-net-v4.2.0.pub
--signature Snowflake.Data.4.2.0.nupkg.sig
Verified OK
运行测试
代码覆盖率
要创建连接,请熟悉:连接和身份验证方法
连接池描述:多个连接池。
v4.0.0 之前的池描述如下:单连接池 - deprecated
Snowflake 数据类型及其 .NET 类型包含在:数据类型和数据格式中
如何执行查询、使用查询绑定、同步和异步运行查询:运行查询和读取结果
使用结构化类型:结构化类型
使用向量类型:向量类型
在 PUT/GET 命令中使用舞台文件:将文件放入舞台或从舞台放出文件
日志记录描述和配置:日志记录和简易日志记录
验证 .NET 驱动程序中连接证书的方法与其他 Snowflake 驱动程序不同。请参阅证书验证文档了解更多信息。
CVE-2019-0820 - 此 CVE 已在正则表达式包 - systems.text.regularexpressions.4.3.1.nupkg 使用的 systems.text.regularexpressions.dll 中报告。仅当使用以下 .NET 运行时环境时,此漏洞才会显现出来:
* v1.0 branch: 1.0 - 1.0.16 (exclusive)
* v1.1 branch: 1.1 - 1.1.13 (exclusive)
* v2.1 branch: 2.1 - 2.1.11 (exclusive)
* v2.2 branch: 2.2 - 2.2.5 (exclusive)
In order to mitigate this vulnerability, we recommend to update to higher Runtime versions. If you're already running on a .NET Runtime version higher than the ones listed above, you're not going to be affected by this vulnerability.
日志记录 - Snowflake 于 2020 年 2 月 20 日发现了 .NET 驱动程序的日志记录代码中的一个问题,其中我们将主令牌和会话令牌以明文形式写入调试日志。调试日志在运行程序的驱动器上本地收集。此问题仅影响程序在启用调试标志的情况下运行的实例,即在 log4Net 配置中设置日志级别值=“调试”或“全部”
正常情况下,日志文件中捕获的 Master 和 Session 令牌的生命周期分别为 4 小时和 1 小时左右。除非明确刷新,否则它们将在 4 小时窗口后过期,在这种情况下它们可以无限期刷新。
如果您使用 .NET 驱动程序,请执行以下操作:
全局 HTTP 连接设置 - Snowflake 发现了一个问题,即驱动程序使用 .NET 驱动程序 v1.2.1 及更早版本全局强制执行 TLS 1.2 和证书吊销检查。从 v2.0.0 开始,驱动程序将在本地设置这些。
禁用 insecureMode 时未执行证书吊销列表 - Snowflake 发现了一个漏洞,即当 insecureMode 标志设置为 false(默认设置)时,未执行针对证书吊销列表 (CRL) 的检查。从版本 v2.1.5 开始,CRL 正在按预期恢复工作。
此驱动程序当前不支持 GCP 区域端点。请确保通过此驱动程序使用的任何工作负载不需要支持 GCP 上的区域端点。如果您对此有疑问,请联系 Snowflake 支持。
请注意,驱动程序现在面向 .NET Standard 2.0。升级时,您可能还需要运行“Update-Package -reinstall”来更新依赖项。
查看更多: