JDBC 드라이버 연결 매개 변수 참조

이 항목에서는 JDBC 드라이버를 구성하기 위해 사용할 수 있는 연결 매개 변수에 대해 설명합니다. 이러한 매개 변수는 JDBC 연결 문자열 또는 Java Properties 오브젝트에 설정할 수 있습니다.

이 항목의 내용:

필수 매개 변수

이 섹션에서는 연결 문자열 또는 속성의 Map 에서 설정해야 하는 매개 변수에 대해 설명합니다.

참고

인증을 위한 매개 변수 도 설정해야 합니다.

user

설명:

연결을 위한 사용자의 로그인 이름을 지정합니다.

인증 매개 변수

allowUnderscoresInHost

설명:

계정 이름에 밑줄을 허용할지 여부를 지정합니다. JDBC Driver는 계정 이름을 포함하는 URL에서 밑줄을 지원하지 않으므로, JDBC Driver는 밑줄을 하이픈으로 자동으로 변환합니다. 기본값은 false 입니다.

참고

버전 3.13.25부터, Snowflake JDBC 드라이버는 allowUnderscoresInHost 매개 변수의 기본값을 false 로 변경합니다. 이 변경 사항은 계정 이름에 밑줄이 포함된 PrivateLink 고객에게 영향을 미칩니다. 이 상황에서는 allowUnderscoresInHosttrue 로 설정하여 기본값을 재정의해야 합니다.

authenticator

설명:

사용자 로그인 자격 증명을 확인하기 위해 사용할 인증자를 지정합니다. 인증자는 다음 값 중 1개로 설정할 수 있습니다.

  • 내부 Snowflake 인증자를 사용하기 위한 snowflake.

  • Okta, ADFS 또는 계정에 정의된 기타 SAML 2.0 규격 ID 공급자(IdP)를 인증하기 위해 웹 브라우저를 사용하기 위한 externalbrowser.

  • 기본 Okta (IdP가 Okta인 경우에만 지원됨)를 통해 인증하기 위한 https://<okta_계정_이름>.okta.com (즉, Okta 계정의 URL 엔드포인트).

  • OAuth를 사용하여 인증하려면 oauth. OAuth가 인증자로 지정되면 token 매개 변수도 설정하여 OAuth 토큰을 지정해야 합니다(아래 참조).

  • 키 페어 인증을 사용하여 인증하려면 snowflake_jwt. 키 페어 인증에 대한 자세한 정보는 키 페어 인증 및 키 순환 사용하기 를 참조하십시오.

  • MFA 토큰 캐싱을 사용하여 인증하려면 username_password_mfa. 자세한 내용은 다단계 인증 사용하기 섹션을 참조하십시오.

연결 문자열이 키 페어로 지정된 경우에는 authenticator 매개 변수가 설정되지 않거나 ‘Snowflake’로 설정되어 있어도 키 페어 인증이 사용됩니다.

인증에 대한 자세한 내용은 페더레이션 인증 관리하기/사용하기클라이언트, 드라이버 및 커넥터 를 참조하십시오.

기본값:

snowflake

passcode

설명:

다단계 인증에서 사용할 암호를 지정합니다.

다단계 인증에 대한 자세한 내용은 다단계 인증(MFA) 을 참조하십시오.

passcodeInPassword

설명:

다단계 인증에 사용할 암호를 비밀번호에 추가할지 여부를 지정합니다.

  • on (또는 true)은 암호를 추가하도록 지정합니다.

  • off (또는 false) 또는 기타 모든 값은 암호가 추가되지 않도록 지정합니다.

기본값:

off

password

설명:

지정된 사용자에 대한 비밀번호를 지정합니다.

비밀번호는 다음과 같은 두 가지 방법으로 지정할 수 있습니다.

  • 첫 번째 방법은 다음과 같이 사용자 ID 및 비밀번호를 getConnection 메서드에 직접 전달하는 것입니다.

    String user = "<user>";          // replace "<user>" with your user name
    String password = "<password>";  // replace "<password>" with your password
    Connection con = DriverManager.getConnection("jdbc:snowflake://<account>.snowflakecomputing.com/", user, password);
    
    Copy
  • 두 번째 방법은 다음과 같이 Properties 오브젝트를 생성하고 비밀번호를 사용하여 오브젝트를 업데이트한 후 오브젝트를 getConnection 메서드에 전달하는 것입니다.

    String user = "<user>";          // replace "<user>" with your user name
    String password = "<password>";  // replace "<password>" with your password
    Properties props = new Properties();
    props.put("user", user);
    props.put("password", password);
    Connection con = DriverManager.getConnection("jdbc:snowflake://<account>.snowflakecomputing.com/", props);
    
    Copy

주의

Snowflake는 JDBC 연결 문자열에 사용자 비밀번호를 직접 포함하지 않는 것을 적극 권장합니다. 왜냐하면 이 문자열을 사용하여 Snowflake에 연결하는 클라이언트 애플리케이션에서 실수로 비밀번호가 노출될 수 있기 때문입니다. 대신, 애플리케이션에서 제공되는 인터페이스를 사용하여 사용자 비밀번호를 지정하십시오.

privatekey

설명:

지정된 사용자에 대한 개인 키를 지정합니다. 키 페어 인증 및 키 순환 사용하기 섹션을 참조하십시오.

private_key_file

설명:

지정된 사용자에 대한 개인 키 파일의 경로를 지정합니다. 키 페어 인증 및 키 순환 사용하기 섹션을 참조하십시오.

private_key_file_pwd

설명:

지정된 사용자의 개인 키 파일을 해독하기 위한 암호 구문을 지정합니다. 키 페어 인증 및 키 순환 사용하기 섹션을 참조하십시오.

token

설명:

인증에 사용할 OAuth 토큰을 지정합니다. 여기서 <문자열> 은 토큰입니다. 이 매개 변수는 아래에 언급된 경우를 제외하면 authenticator 매개 변수를 oauth 로 설정하는 경우에만 필요합니다.

참고

버전 3.13.24부터는 Snowflake JDBC 드라이버를 사용해 token 구성 매개 변수에 OAuth 토큰을 포함하는 것 외에도 연결 비밀번호에 이 토큰을 포함해 보낼 수 있습니다. token 구성 매개 변수가 지정되지 않은 경우 Driver.connect() 메서드는 토큰이 연결 비밀번호에 저장될 것으로 예상합니다.

이 기능은 주로 연결 풀에 대해 OAuth 인증을 사용하도록 지원하므로, token 구성 매개 변수에 지정된 만료된 토큰으로 제한되는 대신 필요에 따라 새로 고친 토큰을 전달할 수 있습니다.

예를 들어, token 구성 매개 변수를 설정하는 대신에 다음과 유사하게 getConnection() 메서드 속성에서 토큰을 비밀번호로 전달할 수 있습니다.

Properties props = new Properties();
props.put("user", "myusername");
props.put("authenticator", "oauth");
props.put("role", "myrole");
props.put("password", "xxxxxxxxxxxxx"); // where xxxxxxxxxxxxx is the token string
Connection myconnection = DriverManager.getConnection(url, props);
Copy
기본값:

없음

기본 데이터베이스, 역할, 스키마 및 웨어하우스에 대한 매개 변수

db

설명:

연결된 이후에 사용할 기본 데이터베이스를 지정하거나 빈 문자열을 지정합니다. 지정된 데이터베이스는 지정된 기본 역할에 권한이 있는 기존 데이터베이스여야 합니다.

연결 후 다른 데이터베이스를 사용해야 하는 경우에는 USE DATABASE 명령을 실행합니다.

role

설명:

드라이버가 시작한 Snowflake 세션에서 사용할 기본 액세스 제어 역할을 지정합니다. 지정된 역할은 드라이버에 지정된 사용자에게 이미 할당된 기존 역할이어야 합니다. 지정된 역할이 사용자에게 아직 할당되지 않은 경우에는 드라이버가 세션을 시작할 때 역할이 사용되지 않습니다.

연결 후 다른 역할을 사용해야 하는 경우에는 USE ROLE 명령을 실행합니다.

역할 및 액세스 제어에 대한 자세한 내용은 액세스 제어의 개요 를 참조하십시오.

schema

설명:

연결된 이후에 지정된 데이터베이스에서 사용할 기본 스키마를 지정하거나 빈 문자열을 지정합니다. 지정된 스키마는 지정된 기본 역할에 권한이 있는 기존 스키마여야 합니다.

연결 후 다른 스키마를 사용해야 하는 경우에는 USE SCHEMA 명령을 실행합니다.

warehouse

설명:

연결된 이후에 사용할 기본 웨어하우스를 지정하거나 빈 문자열을 지정합니다. 지정된 웨어하우스는 지정된 기본 역할에 권한이 있는 기존 웨어하우스여야 합니다.

연결된 이후에 다른 웨어하우스를 사용해야 하는 경우에는 USE WAREHOUSE 명령을 실행하여 세션에 대해 다른 웨어하우스를 설정할 수 있습니다.

프록시 매개 변수

disableSocksProxy

설명:

드라이버가 Java 시스템 옵션에 지정된 SOCKS 프록시 구성을 무시해야 하는지 여부를 지정합니다.

  • on (또는 true)으로 설정되면 프록시를 무시합니다.

  • off (또는 false) 또는 기타 모든 값으로 설정되면 프록시를 사용합니다.

참고

이 연결 매개 변수를 설정하면 동일한 JVM(Java 가상 머신)에서 모든 연결 의 동작이 변경됩니다.

기본값:

off

nonProxyHosts

설명:

드라이버가 프록시 서버를 우회하여 직접 연결해야 하는 호스트 목록을 지정합니다. 자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

proxyHost

설명:

사용할 프록시 서버의 호스트 이름을 지정합니다. 자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

proxyPassword

설명:

프록시 서버의 인증에서 사용할 비밀번호를 지정합니다. 자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

proxyPort

설명:

사용할 프록시 서버의 포트 번호를 지정합니다. 자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

proxyProtocol

설명:

프록시 서버 연결에 사용하는 프로토콜을 지정합니다. 자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

기본값:

http

proxyUser

설명:

프록시 서버의 인증에서 사용할 사용자 이름을 지정합니다. 자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

useProxy

설명:

드라이버에서 프록시를 사용해야 하는지 여부를 지정합니다.

  • on (또는 true) 은 드라이버가 프록시를 사용하도록 지정합니다.

  • off (또는 false) 또는 기타 모든 값은 드라이버가 프록시를 사용하지 않도록 지정합니다.

자세한 내용은 JDBC 연결 문자열에 프록시 서버 지정 섹션을 참조하십시오.

기본값:

off

시간 제한 매개 변수

loginTimeout

설명:

Snowflake 서비스에 연결할 때 로그인 실패 오류를 반환하기 전에 응답을 대기하는 시간(초)을 지정합니다.

기본값:

60

networkTimeout

설명:

Snowflake 서비스와 상호 작용할 때 오류를 반환하기 전에 응답을 대기하는 시간(밀리초)을 지정합니다. 0 (0)은 네트워크 시간 제한이 설정되지 않았음을 지정합니다.

기본값:

0

net.snowflake.jdbc.http_client_connection_timeout_in_ms

설명:

원격 호스트와의 새 연결(TLS 협상 포함)을 완전히 설정할 때까지 기다리는 최대 시간(밀리초)을 지정합니다.

기본값:

60000 (1분)

net.snowflake.jdbc.http_client_socket_timeout_in_ms

설명:

연결이 성공적으로 설정된 후 데이터를 기다리는 최대 시간(두 데이터 패킷 사이의 비활성 시간, 밀리초)을 지정합니다.

기본값:

300000 (5분)

queryTimeout

설명:

오류를 반환하기 전에 쿼리가 완료될 때까지 대기하는 시간(초)을 지정합니다. 0 (0)은 드라이버가 무기한으로 대기하도록 지정합니다.

기본값:

0

기타 매개 변수

application

설명:

Snowflake 파트너 전용: JDBC를 통해 연결할 파트너 애플리케이션의 이름을 지정합니다.

client_config_file

설명:

로그 파일을 저장하기 위한 로깅 수준 및 디렉터리를 정의하는 데 사용할 수 있는 로깅 구성 파일 의 경로를 지정합니다.

enablePatternSearch

설명:

해당 매개 변수를 패턴으로 사용해서는 안 되는 getCrossReference, getExportedKeys, getImportedKeysgetPrimaryKeys 메타데이터 작업에 대한 패턴 검색을 활성화하거나 비활성화합니다.

기본값:

true

enablePutGet

설명:

PUT 및 GET 명령이 로컬 파일 시스템에 액세스하도록 허용할지 여부를 지정합니다. 이 값을 false 로 설정하면 PUT 및 GET 명령 실행이 비활성화됩니다.

기본값:

true

maxHttpRetries

설명:

오류를 반환하기 전에 실패한 HTTP 요청을 재시도할 최대 횟수를 지정합니다.

기본값:

7

net.snowflake.jdbc.max_connections

설명:

연결 풀에서 사용할 수 있는 총 최대 연결 수를 지정합니다.

기본값:

300

net.snowflake.jdbc.max_connections_per_route

설명:

단일 포트 또는 URL에 허용되는 최대 연결 수를 지정합니다. 이 값은 net.snowflake.jdbc.max_connections 값을 초과할 수 없습니다.

기본값:

300

ocspFailOpen

설명:

인증서를 확인하기 위해 OCSP 서버에 연결할 수 없는 경우 드라이버가 “페일 오픈” 상태가 되도록 지정합니다. OCSP 섹션을 참조하십시오.

putGetMaxRetries

설명:

저장소 클라이언트에 대해 PUT/GET 예외를 재시도하는 최대 횟수를 지정합니다.

기본값:

25

stringsQuotedForColumnDef

설명:

이 매개 변수가 true 로 설정된 경우, DatabaseMetaData.getColumns()DatabaseMetaData.getProcedureColumns() 은 COLUMN_DEF 열의 String 값 타입을 반환하며, 이 값은 작은따옴표로 묶여 있습니다. (값의 데이터 타입이 String 이 아닌 경우 이 매개 변수의 설정과 관계없이 값을 따옴표로 묶지 않습니다.)

  • true 는 문자열 값을 작은따옴표(따옴표는 구분 기호가 아니라 문자열의 일부임)로 묶어야 함을 지정합니다. 이는 JDBC 표준을 따르는 것입니다.

  • false 는 문자열 값이 작은따옴표로 묶이지 않음을 지정합니다.

기본값:

false

tracing

설명:

드라이버의 로그 수준을 지정합니다. 드라이버는 표준 Java 로그 유틸리티를 사용합니다. 이 매개 변수는 다음 로그 수준 중 하나로 설정할 수 있습니다.

  • OFF

  • SEVERE

  • WARNING

  • INFO

  • CONFIG

  • FINE

  • FINER

  • FINEST

  • ALL

기본값:

INFO