Snowflake .NET 連接器支援以下 .NET 框架和程式庫版本:
免責聲明:雖然連接器以 netstandard2.0 為目標,並且可以使用其支援矩陣中的版本,但連接器僅支援和測試上面列出的版本
請參閱下面的「注意事項」部分,以了解有關安全使用 .NET 驅動程式的信息
如果您想為該專案做出貢獻,請了解我們希望遵循的編碼約定:編碼約定。
您可以為 Window、Macintosh 和 Linux 作業系統建立 Snowflake .NET 連接器應用程式。有關支援的作業系統版本的信息,請參閱客戶端版本和支援策略。
此專案是在 Visual Studio 2017 下開發的。
先決條件:安裝 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」來更新依賴項。
看更多: