연결 URL 작성

JDBC 드라이버 다운로드

연결 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의 설정이 이루어져야 합니다. 이렇게 하면 포트 번호를 확인하기 위해 서버로의 왕복을 방지할 수 있습니다. portNumberinstanceName 둘 다 사용되는 경우 우선 순위가 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);

참고 항목