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
.Net용 Snowflake Connector의 패키지 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.0).cosign 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 명령 내에서 스테이지 파일 사용: 스테이지에서/으로부터 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 구성에서 로그 수준 값을 "디버그" 또는 "모두"로 설정한 인스턴스에만 영향을 미칩니다.
정상적인 조건에서 로그 파일에 캡처된 마스터 및 세션 토큰은 각각 약 4시간과 1시간 동안 수명이 짧습니다. 명시적으로 새로 고치지 않는 한 4시간이 지나면 만료되며, 이 경우 무기한으로 새로 고칠 수 있습니다.
.NET 드라이버를 사용하는 경우 다음 조치를 취하십시오.
전역 HTTP 연결 설정 - Snowflake는 드라이버가 .NET Driver 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"을 실행하여 종속성을 업데이트해야 할 수도 있습니다.
자세히 보기: