7.5. 수동으로 사용자 지정 스키마 파일 생성


스키마를 확장하여 사용자 지정 특성 및 개체 클래스를 Directory Server에 추가할 수 있습니다. 스키마를 확장할 수 있습니다.

7.5.1. 스키마 파일의 요구 사항

스키마 파일은 cn=schema 항목을 정의하는 LDIF 형식을 사용합니다. 각 특성 유형 및 오브젝트 클래스는 이 항목에 추가됩니다.

스키마 파일에 대한 요구 사항은 다음과 같습니다.

  • 파일은 다음 항목으로 시작해야 합니다.

    dn: cn=schema
    Copy to Clipboard Toggle word wrap
  • 스키마 파일에는 특성 유형 또는 오브젝트 클래스 또는 둘 다 포함할 수 있습니다.
  • 오브젝트 클래스 정의는 다른 스키마 파일에 정의된 특성을 사용할 수 있습니다.
  • 사용자 지정 스키마 파일을 사용해야 하는 인스턴스에 따라 다음 위치 중 하나에 저장합니다.

    • /etc/dirsrv/slapd- <instance_name> /schema/ 를 사용하여 이 특정 인스턴스에서 스키마 파일을 사용할 수 있도록 합니다.
    • /usr/share/dirsrv/schema/ 를 사용하여 이 호스트에서 실행 중인 모든 인스턴스에서 스키마 파일을 사용할 수 있도록 합니다.
  • 기본적으로 Directory Server는 99user.ldif 파일에서 사용자 지정 스키마를 예상합니다. 다른 파일 이름을 사용하는 경우:

    • 이름은 99user.ldif 보다 알파벳순이어야 합니다. 예를 들어 99aaa.ldif 는 ok이지만 99zzz.ldif 는 그렇지 않습니다.
    • 이름은 두 자리 숫자로 시작해야 하며 01 보다 커야 합니다. 사용자 정의 스키마 파일은 00 부터 98으로 시작하는 코어 스키마 파일 뒤에 로드되어야 하기 때문입니다.

      Directory Server는 스키마 파일을 알파벳순으로 읽습니다. 따라서 예를 들어 정의 99user.ldif 를 저장하는 경우 이름이 0001 로 시작하는 표준 파일의 정의를 재정의합니다.

  • /usr/share/dirsrv/data/ 디렉터리의 표준 스키마 파일을 사용하려면 파일을 / etc/dirsrv/slapd- <instance_name> /schema / 또는 /usr/share/dirsrv/schema/ 에 복사하십시오. 그러나 대상 디렉터리에서 다른 파일 이름을 사용합니다. 그렇지 않으면 Directory Server는 업그레이드 중에 파일의 이름을 바꾸고 .bak 접미사를 추가합니다.

예 7.2. 사용자 정의 스키마 파일의 예

dn: cn=schema
objectClasses: ( 2.16.840.1.1133730.2.1.123 NAME 'exampleperson' DESC 'An example
  person object class' SUP top STRUCTURAL MUST dateOfBirth X-ORIGIN 'user defined' )
attributeTypes: ( 2.16.840.1.1133730.2.1.99 NAME 'dateOfBirth' DESC 'For employee
  birthday' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
Copy to Clipboard Toggle word wrap

7.5.2. 사용자 지정 스키마 파일의 속성 정의

스키마 파일에서 속성을 attributeTypes 속성 값으로 정의합니다.

예 7.3. 속성 정의

attributeTypes: ( 2.16.840.1.1133730.2.1.123 NAME 'dateOfBirth' DESC 'For employee birthday' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
Copy to Clipboard Toggle word wrap

속성 정의에는 다음 구성 요소가 포함됩니다.

  • 점으로 구분된 숫자로 지정된 고유 OID(오브젝트 식별자)입니다.
  • NAME attribute_name형식의 고유 이름입니다.
  • DESC 설명 형식의 설명
  • SYNTAX OID 형식의 속성 값의 구문에 대한 OID입니다. LDAP 특성 구문에 대한 자세한 내용은 RFC 4517 을 참조하십시오.
  • 선택 사항: 속성이 정의된 소스입니다.

7.5.3. 사용자 지정 스키마 파일의 오브젝트 클래스 정의

스키마 파일에서 오브젝트 클래스를 objectClasses 속성의 값으로 정의합니다.

예 7.4. 오브젝트 클래스 정의

objectClasses: ( 2.16.840.1.1133730.2.1.99 NAME 'exampleperson' DESC 'An example person object class' SUP top STRUCTURAL MUST dateOfBirth X-ORIGIN 'user defined' )
Copy to Clipboard Toggle word wrap

오브젝트 클래스 정의에는 다음 구성 요소가 포함됩니다.

  • 점으로 구분된 숫자로 지정된 고유 OID(오브젝트 식별자)입니다.
  • NAME attribute_name형식의 고유 이름입니다.
  • DESC 설명 형식의 설명
  • SUP object_class형식의 이 오브젝트 클래스에 대한 우수성(parent) 오브젝트 클래스입니다. 관련 부모가 없는 경우 SUP top 을 사용합니다.
  • STRUCTURAL 이라는 단어는 오브젝트 클래스가 적용되는 항목 유형을 정의합니다. 모든 항목은 하나 이상의 STRUCTURAL 개체 클래스에 속해야 합니다. A CryostatILIARY 는 모든 입력에 적용할 수 있음을 의미합니다.
  • essential 키워드 앞에 있는 필수 속성 목록입니다. 여러 속성을 포함하려면 그룹을 괄호로 묶고 '$ ' (dollar 기호 및 공백)으로 특성을 구분합니다.
  • MAY 키워드 앞에 있는 선택적 속성 목록입니다. 여러 속성을 포함하려면 그룹을 괄호로 묶고 '$ ' (dollar 기호 및 공백)으로 특성을 구분합니다.

이름 및 OID만 필요하며 기타 설정은 오브젝트 클래스의 요구에 따라 다릅니다.

사용자 지정 스키마를 수동으로 만들려면 /etc/dirsrv/slapd- <instance_name> /schema/99user.ldif 파일에 저장합니다. 다른 파일 이름을 사용할 수 있지만 다른 파일에 저장된 스키마 정의와 같은 단점이 복제되지만 복제본의 /etc/dirsrv/slapd- <instance_name> /schema/99user.ldif 에 저장됩니다. Directory Server가 복제 환경에서 스키마 업데이트를 관리하는 방법을 참조하십시오.

이 절차에서는 다음을 추가합니다.

  • OID 2.16.840.1.1133730.2.1.123 및 구문 디렉터리 문자열 (OID 1.3.6.1.4.1.1466.115.121.1.15)을 사용하는 dateOfBirth 라는 단일 값 속성
  • dateOfBirth 특성을 포함해야 하는 상위 오브젝트 클래스(SUP top)가 없는 example person 이라는 오브젝트 클래스입니다.

프로세스

  1. /etc/dirsrv/slapd-<instance_name>/schema/99user.ldif 파일의 dn: cn=schema 항목 아래에 다음 내용을 추가합니다.

    attributeTypes: ( 2.16.840.1.1133730.2.1.123 NAME 'dateOfBirth' DESC 'For employee
      birthday' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
    objectClasses: ( 2.16.840.1.1133730.2.1.99 NAME 'exampleperson' DESC 'An example
      person object class' SUP top STRUCTURAL MUST dateOfBirth X-ORIGIN 'user defined' )
    Copy to Clipboard Toggle word wrap
  2. 스키마 다시 로드 작업을 실행합니다.

    # dsconf <instance_name> schema reload
    Copy to Clipboard Toggle word wrap

검증 단계:

  • /var/log/dirsrv/slapd- <instance_name> /errors 파일을 모니터링합니다.

    • 빌드에 성공하면 Directory Server 로그:

      [23/Sep/2021:13:47:33.334241406 +0200] - INFO - schemareload - schemareload_thread - Schema reload task starts (schema dir: default) ...
      [23/Sep/2021:13:47:33.415692558 +0200] - INFO - schemareload - schemareload_thread - Schema validation passed.
      [23/Sep/2021:13:47:33.454768148 +0200] - INFO - schemareload - schemareload_thread - Schema reload task finished.
      Copy to Clipboard Toggle word wrap
    • 빌드에 실패하면 Directory Server에서 어떤 단계가 실패했는지와 이유를 기록합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat