연결 URL 작성
연결 URL의 일반적인 형식은 다음과 같습니다.
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
여기서
jdbc:sqlserver://(필수)는 하위 프로토콜이라고 하며 일정한 형태를 나타냅니다.
serverName(옵션)은 연결할 서버의 주소입니다. 이 주소는 DNS나 IP 주소일 수도 있고 로컬 컴퓨터인 경우
localhost
또는127.0.0.1
일 수도 있습니다. 연결 URL에 지정하지 않은 경우 속성 컬렉션에 서버 이름을 지정해야 합니다.instanceName (선택 사항) -
serverName
에 연결할 인스턴스입니다. 지정하지 않으면 기본 인스턴스에 대한 연결이 구성됩니다.portNumber(옵션)는
serverName
에서 연결할 포트입니다. 기본값은1433
입니다. 기본 포트를 사용하는 경우 포트나 URL의:
앞부분에 있는 포트를 지정할 필요가 없습니다.참고 항목
최적의 연결 성능을 위해 명명된 인스턴스에 연결할 때
portNumber
의 설정이 이루어져야 합니다. 이렇게 하면 포트 번호를 확인하기 위해 서버로의 왕복을 방지할 수 있습니다.portNumber
및instanceName
둘 다 사용되는 경우 우선 순위가portNumber
에 적용되고instanceName
의 경우 무시됩니다.속성(옵션)은 하나 이상의 연결 속성입니다. 자세한 내용은 연결 속성 설정을 참조하세요. 목록의 모든 속성을 지정할 수 있습니다. 속성은 세미콜론(
;
)을 사용해야만 구분할 수 있으며 중복될 수 없습니다.
주의
보안을 위해 사용자 입력을 토대로 연결 URL을 작성하지 않는 것이 좋습니다. URL에서 서버 이름 및 드라이버만 지정해야 합니다. 사용자 이름 및 암호 값의 경우 연결 속성 컬렉션을 사용합니다. JDBC 애플리케이션의 보안에 대한 자세한 내용은 JDBC 드라이버 애플리케이션 보안을 참조하세요.
연결 속성
연결 문자열을 설정할 수 있는 속성의 자세한 목록은 연결 속성 설정을 참조하세요.
커넥트온 예제
사용자 이름 및 암호를 사용하여 로컬 컴퓨터의 기본 데이터베이스로 연결:
jdbc:sqlserver://localhost;encrypt=true;user=MyUserName;password=*****;
참고 항목
이전 예제에서는 연결 문자열 사용자 이름과 암호를 사용하지만 통합 보안이 더 안전하기 때문에 통합 보안을 사용해야 합니다. 자세한 내용은 이 문서의 뒷부분에 있는 통합 인증을 사용한 커넥트 섹션을 참조하세요.
다음 연결 문자열에서는 Microsoft JDBC Driver for SQL Server에서 지원되는 운영 체제에서 실행 중인 애플리케이션에서 통합 인증 및 Kerberos를 사용하는 SQL 서버버 데이터베이스에 연결하는 방법의 예를 보여 줍니다.
jdbc:sqlserver://;servername=server_name;encrypt=true;integratedSecurity=true;authenticationScheme=JavaKerberos
통합 인증을 사용하여 로컬 컴퓨터의 기본 데이터베이스에 연결하는 경우:
jdbc:sqlserver://localhost;encrypt=true;integratedSecurity=true;
원격 서버의 명명된 데이터베이스에 연결:
jdbc:sqlserver://localhost;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;
기본 포트에서 원격 서버로 연결:
jdbc:sqlserver://localhost:1433;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;
사용자 지정 애플리케이션 이름을 지정하여 연결하는 경우:
jdbc:sqlserver://localhost;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;
명명된 다중 SQL Server 인스턴스
SQL Server를 사용하면 서버당 여러 데이터베이스 인스턴스를 설치할 수 있습니다. 각 인스턴스는 특정 이름으로 식별할 수 있습니다. SQL Server의 명명된 인스턴스에 연결하려면 명명된 인스턴스의 포트 번호(기본 설정)를 지정할 수 있습니다. 인스턴스 이름을 JDBC URL 속성 또는 데이터 원본 속성으로 지정할 수도 있습니다. 인스턴스 이름 또는 포트 번호 속성을 지정하지 않으면 기본 인스턴스에 대한 연결이 생성됩니다. 다음 예제를 참조하세요.
포트 번호를 지정하려면 다음 형식을 사용하십시오.
jdbc:sqlserver://localhost:1433;encrypt=true;integratedSecurity=true;<more properties as required>;
JDBC URL 속성을 사용하려면 다음 형식을 사용합니다.
jdbc:sqlserver://localhost;encrypt=true;instanceName=instance1;integratedSecurity=true;<more properties as required>;
연결 URL의 이스케이프 값
공백, 세미콜론, 인용 부호와 같은 특수 문자가 포함되어 있으므로 연결 URL 값의 일부를 이스케이프 처리해야 하는 경우가 있을 수 있습니다. JDBC 드라이버는 이런 문자가 중괄호로 묶인 경우 이스케이프 처리를 지원합니다. 예를 들어 {;}
에서는 세미 콜론을 이스케이프합니다.
버전 8.4 이전에는 이스케이프 처리되는 값에 특수 문자(특히 =
, ;
, []
및 공백)는 포함될 수 있지만 중괄호는 포함될 수 없습니다. 이스케이프 처리해야 하는 값에 중괄호가 포함된 경우 해당 값을 속성 컬렉션에 추가해야 합니다.
버전 8.4 이상에서 이스케이프된 값은 중괄호를 비롯한 특수 문자를 포함할 수 있습니다. 그러나 닫는 중괄호는 이스케이프해야 합니다. 예를 들어 pass";{}word
의 암호가 있는 연결 문자열은 다음과 같이 암호를 이스케이프해야 합니다.
jdbc:sqlserver://localhost;encrypt=true;username=MyUsername;password={pass";{}}word};
참고 항목
중괄호 안의 공백은 리터럴이며 잘리지 않습니다.
Windows에서 통합 인증으로 연결
JDBC 드라이버는 integratedSecurity
연결 문자열 속성을 사용하여 Windows 운영 체제에서 형식 2 통합 인증을 지원합니다. 통합 인증을 사용하려면 mssql-jdbc_auth-<version>-<arch>.dll
파일을 JDBC 드라이버가 설치된 컴퓨터의 Windows 시스템 경로에 있는 디렉터리에 복사합니다.
mssql-jdbc_auth-<version>-<arch>.dll
파일은 다음 위치에 설치됩니다.
<installation directory>\sqljdbc_<version>\<language>\auth\
Microsoft JDBC Driver for SQL Server에서 지원하는 운영 체제는 Kerberos 통합 인증을 사용하여 SQL Server에 연결하는 방법을 참조하세요. Sql Server용 Microsoft JDBC Driver 4.0에 추가된 기능에 대한 설명은 애플리케이션이 Type 4 Kerberos에서 통합 인증을 사용하여 데이터베이스에 연결할 수 있도록 합니다.
참고 항목
32비트 JVM(Java Virtual Machine)을 실행할 경우 운영 체제가 x64 버전이라도 x86 폴더에 있는 mssql-jdbc_auth-<version>-<arch>.dll
파일을 사용합니다. x64 프로세서에서 64비트 JVM을 실행할 경우 x64 폴더의 mssql-jdbc_auth-<version>-<arch>.dll
파일을 사용합니다.
또는 java.library.path 시스템 속성을 설정하여 mssql-jdbc_auth-<version>-<arch>.dll
의 디렉터리를 지정할 수도 있습니다. 예를 들어 JDBC 드라이버가 기본 디렉터리에 설치된 경우 Java 애플리케이션이 시작될 때 다음과 같은 VM(가상 머신) 인수를 사용하여 DLL의 위치를 지정할 수 있습니다.
-Djava.library.path=C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_<version>\enu\auth\x86
IPv6 주소로 연결
JDBC 드라이버는 연결 속성 컬렉션 및 serverName
연결 문자열 속성에 IPv6 주소를 사용하도록 지원합니다. jdbc:sqlserver://serverName
와 같은 같은 serverName
초기값은 연결 문자열의 IPv6 주소에는 지원되지 않습니다. 연결의 모든 경우에 원시 IPv6 주소 대신 serverName
이름을 사용합니다. 다음 예시에서는 더 자세한 내용을 제공합니다.
serverName 속성을 사용하는 방법:
jdbc:sqlserver://;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1;encrypt=true;integratedSecurity=true;
속성 컬렉션을 사용하는 방법:
Properties pro = new Properties();
pro.setProperty("serverName", "serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1");
Connection con = DriverManager.getConnection("jdbc:sqlserver://;encrypt=true;integratedSecurity=true;", pro);