연결 속성 설정

연결 문자열 속성을 지정하는 방식에는 여러 가지가 있습니다.

  • DriverManager 클래스를 사용하여 연결할 때 연결 URL에 이름=값 속성으로 지정

  • DriverManager 클래스에 있는 Connect 메서드의 Properties 매개 변수에 이름=값 속성으로 지정

  • 드라이버 데이터 원본의 해당 setter 메서드에 값으로 지정 예를 들면 다음과 같습니다.

              datasource.setServerName(value)
    datasource.setDatabaseName(value)
    

속성 이름은 대/소문자를 구분하지 않으며 중복된 속성 이름을 다음 순서로 확인합니다.

  1. API 인수(예: 사용자 및 암호)

  2. 속성 컬렉션

  3. 연결 문자열의 마지막 인스턴스

또한 속성 이름에 알 수 없는 값이 허용될 뿐 아니라 JDBC 드라이버에서는 이 값의 대/소문자에 대한 유효성을 검사하지 않습니다.

동의어를 허용하고 중복 속성 이름처럼 순서대로 확인합니다.

다음 표에서는 JDBC 드라이버에 현재 사용할 수 있는 모든 연결 문자열 속성을 나열합니다.

속성 유형 기본값 설명

applicationName

String

[<=128자]

null

응용 프로그램 이름 또는 이름을 지정하지 않은 경우 "Microsoft SQL Server 2005 JDBC 드라이버"가 됩니다. 다양한 SQL Server 프로파일링 및 로깅 도구에서 특정 응용 프로그램을 식별하는 데 사용합니다.

databaseName, database

String

[<=128자]

null

연결할 데이터베이스 이름입니다. 지정하지 않으면 기본 데이터베이스에 연결합니다.

disableStatementPooling

boolean

["true"|"false"]

true

현재는 "true" 값만 지원하며 "false"로 설정할 경우 예외가 발생합니다.

encrypt

boolean

["true"|"false"]

false

"true"로 설정하면 SQL Server에 인증서가 설치되어 있는 경우 이 서버에서 클라이언트와 서버 간에 전송되는 모든 데이터에 대해 SSL(Secure Sockets Layer) 암호화를 사용하도록 지정됩니다. 기본값은 false입니다.

failoverPartner

String

null

데이터베이스 미러링 구성에서 사용되는 장애 조치 서버의 이름입니다. 이 속성은 주 서버에 대한 초기 연결 실패에 사용되며 초기 연결 후에는 이 속성이 무시됩니다. databaseName 속성과 함께 사용해야 합니다.

hostNameInCertificate

String

null

SQL Server SSL 인증서의 유효성을 검사할 때 사용할 호스트 이름입니다.

hostNameInCertificate 속성이 지정되지 않았거나 null로 설정된 경우 Microsoft SQL Server 2005 JDBC 드라이버에서는 연결 URL의 serverName 속성 값을 SQL Server SSL 인증서의 유효성을 검사할 호스트 이름으로 사용합니다.

참고

이 속성은 encrypt 속성 및 trustServerCertificate 속성과 함께 사용되며, encrypt 속성이 "true"로 설정되어 있고 trustServerCertificate 속성이 "false"로 설정되어 있는 경우에만 인증서 유효성 검사에 영향을 줍니다.

instanceName

String

[<=128자]

null

연결할 SQL Server 2000 또는 SQL Server 2005 인스턴스 이름입니다. 지정하지 않으면 기본 인스턴스에 연결합니다. instanceName 및 포트를 모두 지정하는 경우에 대해서는 포트 관련 설명을 참조하십시오.

integratedSecurity

boolean

["true"|"false"]

false

SQL Server에서 Windows 자격 증명을 사용하여 응용 프로그램 사용자를 인증하도록 하려면 "true"로 설정합니다. "true"로 설정하는 경우 JDBC 드라이버는 컴퓨터 또는 네트워크 로그온 시 이미 제공된 자격 증명에 대해 로컬 컴퓨터 자격 증명 캐시를 검색합니다. "false"로 설정하는 경우 사용자 이름과 암호를 입력해야 합니다.

참고

이 연결 속성은 Microsoft Windows 운영 체제에서만 지원됩니다.

lastUpdateCount

boolean

["true"|"false"]

true

"true" 값을 설정할 경우 서버에 전달된 SQL 문에서 마지막 업데이트 횟수만 반환되며, 이 값을 단일 SELECT, INSERT 또는 DELETE 문에서 사용하면 서버 트리거로 인한 추가 업데이트 횟수를 무시할 수 있습니다. 이 속성을 "false"로 설정하면 서버 트리거로 인해 반환된 업데이트 횟수를 포함하여 모든 업데이트 횟수가 반환됩니다.

참고

이 속성은 executeUpdate 메서드와 함께 사용될 경우에만 적용됩니다.

lockTimeout

int

-1

데이터베이스에서 잠금 제한 시간을 보고할 때까지의 대기 시간(밀리초)입니다. 기본 동작은 무한정 대기하는 것입니다. 이 값을 지정하면 연결의 모든 문에 대해 기본값으로 사용됩니다. Statement.setQueryTimeout() 은 특정 문에 대한 제한 시간을 설정하는 데 사용할 수 있습니다. 대기 시간이 없음을 나타내는 0을 값으로 지정할 수도 있습니다.

loginTimeout

int [0..65535]

0

드라이버가 연결 실패 제한 시간까지 대기해야 하는 시간(초)입니다. 값이 0이면 제한 시간이 없음을 나타냅니다. 0이 아닌 값은 드라이버가 연결 실패 제한 시간까지 대기해야 하는 시간(초)입니다.

packetSize

int [-1| 0 | 512..32767]

8000

SQL Server와의 통신에 사용되는 네트워크 패킷 크기로서 바이트 단위로 지정합니다. 값 -1은 서버의 기본 패킷 크기가 사용됨을 나타내고 값 0은 최대값인 32767이 사용됨을 나타냅니다. 이 속성이 허용 가능한 범위를 벗어난 값으로 설정된 경우 예외가 발생합니다.

중요

암호화가 설정된 경우(encrypt=true)에는 packetSize 속성을 사용하지 않는 것이 좋습니다. 그렇지 않으면 드라이버에서 연결 오류가 발생할 수 있습니다. 자세한 내용은 SQLServerDataSource 클래스의 setPacketSize 메서드를 참조하십시오.

password

String

[<=128자]

null

데이터베이스 암호입니다.

portNumber, port

int [0..65535]

1433

SQL Server에서 수신 중인 포트입니다. 연결 문자열에 포트 번호가 지정되어 있으면 sqlbrowser에 요청을 보내지 않습니다. 포트와 instanceName을 모두 지정한 경우 지정된 포트로 연결합니다. 하지만 instanceName의 유효성을 검사하여 포트와 일치하지 않는 경우 오류가 발생합니다.

중요

sqlbrowser를 사용하는 것보다 더 안전하므로 항상 포트 번호를 지정하는 것이 좋습니다.

responseBuffering

String

["full"|"adaptive"]

full

이 속성이 "full"로 설정되어 있으면 문이 실행될 때 전체 결과 집합을 서버에서 읽습니다. Microsoft SQL Server 2005 JDBC 드라이버 버전 1.2 의 기본 모드는 "full"이며 Microsoft SQL Server 2005 JDBC 드라이버 버전 1.0 및 1.1과의 호환성을 제공합니다. 이 속성이 "adaptive"로 설정되어 있으면 필요할 때 최소한의 데이터가 버퍼링됩니다. Microsoft SQL Server 2005 JDBC 드라이버 버전 1.2에서 선호하는 모드는 "adaptive"입니다.

selectMethod

String

["direct"|"cursor"]

direct

이 속성을 "cursor"로 설정하면 TYPE_FORWARD_ONLY 및 CONCUR_READ_ONLY 커서에 대한 연결에서 생성된 각 쿼리에 대해 데이터베이스 커서가 만들어집니다. 이 속성은 대개 응용 프로그램에서 클라이언트 메모리에 완전히 집어넣을 수 없는 매우 큰 결과 집합을 생성하는 경우에만 필요합니다. 이 속성을 "cursor"로 설정하면 클라이언트 메모리에 제한된 수의 결과 집합 행만 유지됩니다. 기본 동작은 클라이언트 메모리에 모든 결과 집합 행이 유지되는 것입니다. 이 동작은 응용 프로그램에서 모든 행을 처리하는 경우에 성능 면에서 가장 효과적입니다.

sendStringParametersAsUnicode

boolean

["true"|"false"]

true

"false"로 설정하면 문자 데이터의 준비된 매개 변수를 유니코드가 아닌 ASCII로 보내도록 지정됩니다. 이 매개 변수는 유니코드를 사용하지 않는 SQL Server 2000 또는 SQL Server 2005 테이블의 문자 데이터 인덱스 조회 성능을 개선할 수 있습니다. 예를 들어 유니코드에서의 변환에 따른 오버헤드 없이 ASCII 행 키를 바로 비교할 수 있습니다. 자세한 내용은 support.microsoft.com/kb/271566의 Microsoft 토론을 참조하십시오.

serverName, server

String

null

SQL Server을(를) 실행하는 컴퓨터입니다.

userName, user

String

[<=128자]

null

데이터베이스 사용자입니다.

trustServerCertificate

boolean

["true"|"false"]

false

"true"로 설정하면 Microsoft SQL Server 2005 JDBC 드라이버에서 SQL Server SSL 인증서의 유효성을 검사하지 않습니다.

"true"일 경우 통신 계층이 SSL을 사용하여 암호화되면 SQL Server SSL 인증서가 자동으로 트러스트됩니다.

"false"일 경우 Microsoft SQL Server 2005 JDBC 드라이버에서 서버 SSL 인증서의 유효성을 검사합니다. 서버 인증서의 유효성 검사를 실패할 경우 드라이버에서 오류가 발생하고 연결이 종료됩니다. 기본값은 "false"입니다.

참고

이 속성은 encrypt 속성과 함께 사용되며 encrypt 속성이 "true"로 설정되어 있는 경우에만 서버 SSL 인증서의 유효성 검사에 영향을 줍니다.

trustStore

String

null

인증서 trustStore 파일에 대한 경로(파일 이름 포함)입니다. trustStore 파일에는 클라이언트에서 신뢰하는 인증서 목록이 포함되어 있습니다.

이 속성이 지정되지 않았거나 null로 설정된 경우 드라이버에서는 트러스트 관리자 팩토리의 조회 규칙에 따라 사용할 인증서 저장소를 결정합니다.

기본 SunX509 TrustManagerFactory는 다음 검색 순서에 따라 기본 트러스트 자료를 찾으려고 합니다.

  • "javax.net.ssl.trustStore" JVM(Java Virtual Machine) 시스템 속성에 지정된 파일

  • "<java-home>/lib/security/jssecacerts" 파일

  • "<java-home>/lib/security/cacerts" 파일

자세한 내용은 Sun Microsystems 웹 사이트에서 SUNX509 TrustManager 인터페이스 설명서를 참조하십시오.

참고

이 속성은 encrypt 속성이 "true"로 설정되어 있고 trustServerCertificate 속성이 "false"로 설정되어 있는 경우에만 인증서 trustStore 조회에 영향을 줍니다.

trustStorePassword

String

null

trustStore 데이터의 무결성을 검사하는 데 사용되는 암호입니다.

trustStore 속성은 설정되어 있지만 trustStorePassword 속성이 설정되어 있지 않는 경우 trustStore의 무결성을 검사하지 않습니다.

trustStore 속성과 trustStorePassword 속성이 모두 지정되어 있지 않는 경우 드라이버에서 JVM 시스템 속성 "javax.net.ssl.trustStore" 및 "javax.net.ssl.trustStorePassword"를 사용합니다. "javax.net.ssl.trustStorePassword" 시스템 속성이 지정되어 있지 않는 경우 trustStore의 무결성을 검사하지 않습니다.

trustStore 속성은 설정되어 있지 않지만 trustStorePassword 속성이 설정되어 있는 경우 JDBC 드라이버에서는 "javax.net.ssl.trustStore"에 지정된 파일을 트러스트 저장소로 사용하여 지정된 trustStorePassword로 트러스트 저장소의 무결성을 검사합니다. 클라이언트 응용 프로그램이 JVM 시스템 속성에 암호를 저장하지 않는 경우 이 방법이 필요할 수 있습니다.

참고

trustStorePassword 속성은 encrypt 속성이 "true"로 설정되어 있고 trustServerCertificate 속성이 "false"로 설정되어 있는 경우에만 인증서 trustStore 조회에 영향을 줍니다.

workstationID

String

[<=128자]

<빈 문자열>

워크스테이션 ID로, 다양한 SQL Server 프로파일링 및 로깅 도구에서 특정 워크스테이션을 식별하는 데 사용됩니다. 지정되지 않은 경우 <빈 문자열>이 사용됩니다.

xopenStates

boolean

["true"|"false"]

false

"true"로 설정하면 드라이버에서 예외 발생 시 XOPEN 규격 상태 코드를 반환합니다. 기본값은 SQL 99 상태 코드를 반환하는 것입니다.

참고 항목

관련 자료

JDBC 드라이버로 SQL Server에 연결