목차

> # JDBC 인증 속성

> JDBC(Java Database Connectivity) 인증 속성은 조직 속성입니다. 서비스 구성에서 이러한 속성에 적용되는 값이 JDBC 인증 템플리트의 기본값이 됩니다. 조직의 서비스를 등록한 후 서비스 템플리트를 만들어야 합니다. 기본값은 조직의 관리자가 등록 후 변경할 수 있습니다. 조직의 항목은 조직 속성을 상속하지 않습니다. JDBC 인증 속성은 다음과 같습니다.

> - "연결 유형"
> - "연결 풀 JNDI 이름"
> - "JDBC 드라이버"
> - "JDBC URL"
> - "데이터베이스에 연결할 사용자"
> - "데이터베이스에 연결할 사용자"
> - "데이터베이스에 연결할 비밀번호"
> - "데이터베이스에 연결할 비밀번호(확인)"
> - "데이터베이스의 비밀번호 열"
> - "준비된 명령문"
> - "비밀번호 구문을 변환할 클래스"
> - "인증 수준"

> ## 연결 유형

> 이 필드는 JNDI(Java Naming and Directory Interface) 연결 풀 또는 JDBC 드라이버를 사용하여 SQL 데이터베이스에 대한 연결 유형을 지정합니다. 옵션은 다음과 같습니다.

> - JDNI를 통해 연결 풀 검색
> - 비지속성 JDBC 연결

> JNDI 연결 풀은 기본 웹 컨테이너에서 구성을 사용합니다.

> ## 연결 풀 JNDI 이름

> 연결 유형에서 JNDI를 선택하면 이 필드가 연결 풀 이름을 지정합니다. JDBC 인증에서 웹 컨테이너가 제공하는 JNDI 연결 풀을 사용하므로 JNDI 연결 풀의 설정이 다른 웹 컨테이너와 다를 수 있습니다.

> 다음은 Web Server 및 MySQL 4.0용으로 연결 풀을 설정하는 예입니다.

> 1. Web Server 콘솔에서 다음 속성을 가진 JDBC 연결 풀을 만듭니다.

> 풀 이름: samplePool

> 데이터 소스 클래스 이름: com.mysql.jdbc.jdbc2.optional.MysqlDatacSource

> 서버 이름: mySQL 서버의 서버 이름

> 포트: mySQL 서버가 실행 중인 포트 번호

> 사용자: 데이터베이스의 사용자 이름

> 비밀번호: 사용자 비밀번호

> 데이터베이스 이름: 데이터베이스 이름

> 주 | 다음 단계에서 설명하는 데이터 소스 클래스 및 JDBC 드라이버 클래스를 포함하는 jar 파일을 응용 프로그램 클래스 경로에 추가해야 합니다.

> 2. JDBC 자원을 구성합니다. Web Server 콘솔에서 다음 속성을 가진 JDBC 자원을 만듭니다.

> JNDI 이름: jdbc/samplePool

> 풀 이름: samplePool

> 데이터 자원 사용: on

> 3. 응용 프로그램의 sun-web.xml 파일에 다음 행을 추가합니다.

> <resource-ref>
> <res-ref-name>jdbc/mySQL</res-ref-name>
> <jndi-name>jdbc/samplePool</jndi-name>
> </resource-ref>

> 4. 응용 프로그램의 web.xml 파일에 다음 행을 추가합니다.

> <resource-ref>
> <description>mySQL Database</description>
> <res-ref-name>jdbc/mySQL</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>

> 설정을 완료하면 이 속성 값이 다음과 같아야 합니다.

> java:comp/env/jdbc/mySQL

> ## JDBC 드라이버

> 연결 유형에서 JDBC를 선택한 경우 이 필드에서 SQL 데이터베이스가 제공하는 JDBC를 지정합니다. 예를 들면 다음과 같습니다.

> com.mysql.jdbc.Driver

> ## JDBC URL

> 연결 유형에서 JDBC를 선택한 경우 이 필드에서 데이터베이스 URL을 지정합니다. 예를 들어, mySQL의 URL은 다음과 같습니다.

> jdbc.mysql://hostname:port/databaseName

> ## 데이터베이스에 연결할 사용자

> 이 필드에서는 JDBC에 연결하기 위해 데이터베이스에 연결할 사용자 이름을 지정합니다.

> ## 데이터베이스에 연결할 비밀번호

> 이 필드에서는 데이터베이스에 연결할 사용자에서 지정한 사용자의 비밀번호를 정의합니다.

> ## 데이터베이스에 연결할 비밀번호(확인)

> 비밀번호를 확인합니다.

> ## 데이터베이스의 비밀번호 열

> 이 필드에서는 SQL 데이터베이스의 비밀번호 열 이름을 지정합니다.

> ## 준비된 명령문

> 이 필드에서는 로그인한 사용자의 비밀번호를 검색하는 SQL 문을 지정합니다. 예를 들어, 다음과 같습니다.

> select Password from Employees where USERNAME = ?

> ## 비밀번호 구문을 변환할 클래스

> 이 속성은 비밀번호를 비교하기 위해 데이터베이스에서 검색한 비밀번호를 사용자 입력 형식으로 변환할 클래스 이름을 지정합니다. 이 클래스는 반드시 JDBCPasswordSyntaxTransform 인터페이스를 구현해야 합니다.

> ## 인증 수준

> 인증 수준은 각 인증 방법에 대해 별도로 설정됩니다. 이 값은 인증을 어느 정도 신뢰할 수 있는지 나타냅니다. 사용자가 인증되고 나면 해당 세션의 SSO 토큰에 이 값이 저장됩니다. 사용자가 액세스하려는 응용 프로그램에 이 SSO 토큰이 제공되면 응용 프로그램은 저장된 값을 사용하여 해당 수준이 사용자에게 액세스를 허가할 만큼 충분한지 여부를 확인합니다. SSO 토큰에 저장된 인증 수준이 필요한 최소값을 충족하지 않을 경우 응용 프로그램은 더 높은 인증 수준을 가진 서비스를 통해 다시 인증을 받으라는 메시지를 사용자에게 표시할 수 있습니다. 기본값은 0입니다.

목차