6.6. 데이터베이스에 대한 유니코드 고려 사항


Red Hat Single Sign-On의 데이터베이스 스키마는 다음 특수 필드의 유니코드 문자열만 고려합니다.

  • realms: 표시 이름, HTML 표시 이름
  • 페더레이션 공급자: 표시 이름
  • 사용자 이름: 사용자 이름, 이름, 성, 특성 이름 및 값
  • groups: 이름, 속성 이름 및 값
  • 역할: 이름
  • 오브젝트 설명

그렇지 않으면 문자는 종종 8비트인 데이터베이스 인코딩에 포함된 문자로 제한됩니다. 그러나 일부 데이터베이스 시스템의 경우 유니코드 문자의 UTF-8 인코딩을 활성화하고 모든 텍스트 필드에서 전체 유니코드 문자를 사용할 수 있습니다. 종종 이는 8비트 인코딩의 경우보다 짧은 최대 문자열 길이만큼 균형을 이루는 경우가 많습니다.

일부 데이터베이스는 유니코드 문자를 처리할 수 있도록 데이터베이스 및/또는 JDBC 드라이버에 특수 설정이 필요합니다. 아래에서 데이터베이스에 대한 설정을 찾으십시오. 데이터베이스가 여기에 나열되어 있는 경우에도 데이터베이스 및 JDBC 드라이버 수준에서 UTF-8 인코딩을 올바르게 처리할 수 있습니다.

기술적으로 모든 필드에 대한 유니코드 지원의 핵심 기준은 데이터베이스가 VARCHAR 및 Cryostat 필드에 설정된 유니코드 문자 설정을 허용하는지 여부입니다. 예인 경우 일반적으로 유니코드가 필드 길이를 희생할 가능성이 높습니다. NVARCHARN CHAR 필드에서 유니코드만 지원하는 경우 모든 텍스트 필드에 대한 유니코드 지원은 Keycloak 스키마에서 VARCHAR 및 Cryostat 필드를 광범위하게 사용하므로 거의 지원되지 않습니다.

6.6.1. Oracle 데이터베이스

유니코드 문자는 적절하게 처리되면 데이터베이스가 VARCHAR 및 Cryostat 필드에서 유니코드 지원을 사용하여 생성되었습니다(예: AL32UTF8 문자 세트를 데이터베이스 문자 집합으로 사용). JDBC 드라이버에는 특별한 설정이 필요하지 않습니다.

데이터베이스 문자 집합이 유니코드가 아닌 경우 특수 필드에서 유니코드 문자를 사용하려면 연결 속성 oracle.jdbc.defaultNChartrue 로 설정하여 JDBC 드라이버를 구성해야 합니다. oracle.jdbc.convertNcharLiterals 연결 속성을 true 로 설정하는 것은 엄격하게 필요하지는 않지만 의미가 있을 수 있습니다. 이러한 속성은 시스템 속성 또는 연결 속성으로 설정할 수 있습니다. oracle.jdbc.defaultNChar 설정은 성능에 부정적인 영향을 미칠 수 있습니다. 자세한 내용은 Oracle JDBC 드라이버 구성 설명서를 참조하십시오.

6.6.2. Microsoft SQL Server 데이터베이스

유니코드 문자는 특수 필드에 대해서만 올바르게 처리됩니다. JDBC 드라이버 또는 데이터베이스의 특수 설정은 필요하지 않습니다.

6.6.3. MySQL 데이터베이스

유니코드 문자가 올바르게 처리되면 데이터베이스가 CREATE DATABASE 명령의 VARCHAR 및 Cryostat 필드에서 유니코드 지원을 사용하여 생성되었습니다(예: MySQL 5.5에 설정된 기본 데이터베이스 문자로 설정된 utf8 문자 집합을 사용하는 경우). utf8mb4 문자 세트는 utf8 문자 세트의 다른 스토리지 요구 사항으로 인해 작동하지 않습니다. [1]). 이 경우 바이트가 아닌 지정된 양의 문자를 수용하도록 열이 생성되므로 특수하지 않은 필드에 대한 길이 제한이 적용되지 않습니다. 데이터베이스 기본 문자 집합에서 유니코드를 저장할 수 없는 경우 특수 필드만 유니코드 값을 저장할 수 있습니다.

JDBC 드라이버 설정 측면에서 JDBC 연결 설정에 connection 속성 characterEncoding=UTF-8 을 추가해야 합니다.

6.6.4. PostgreSQL 데이터베이스

데이터베이스 문자 집합이 UTF8 인 경우 유니코드가 지원됩니다. 이 경우 유니코드 문자를 어떤 필드에서든 사용할 수 있으며, 특수하지 않은 필드에 대한 필드 길이는 감소되지 않습니다. JDBC 드라이버의 특수 설정은 필요하지 않습니다.

PostgreSQL 데이터베이스의 문자 세트는 생성 시 결정됩니다. SQL 명령을 사용하여 PostgreSQL 클러스터에 설정된 기본 문자를 확인할 수 있습니다.

show server_encoding;
Copy to Clipboard Toggle word wrap

기본 문자 세트가 UTF 8이 아닌 경우 다음과 같이 UTF8을 사용하여 데이터베이스를 생성할 수 있습니다.

create database keycloak with encoding 'UTF8';
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat