|
|
| Sun ONE Directory Server 관리 설명서 |
Sun ONE Directory Server에는 수백 개의 개체 클래스 및 속성이 포함된 표준 스키마가 미리 구성되어 있습니다. 표준 개체 클래스 및 속성만으로도 대부분의 요구 사항을 충족시킬 수 있지만, 새로운 개체 클래스 및 속성을 작성하여 스키마를 확장해야 하는 경우도 있습니다.
이 장의 다음 절에서는 스키마 확장 방법을 설명합니다.
스키마 검사
스키마 검사를 활성화하면 Directory Server는 모든 가져오기, 추가 및 수정 작업이 현재 정의된 디렉토리 스키마에 맞는지 확인합니다.
- 각 항목의 개체 클래스와 속성이 스키마에 맞는지 여부
- 정의된 모든 개체 클래스에 필요한 속성이 항목에 모두 포함되어 있는지 여부
- 개체 클래스에서 허용하는 속성만 항목에 포함되어 있는지 여부
주 항목을 수정하면 Directory Server는 수정되는 항목만이 아닌 전체 항목에 대해 스키마 검사를 수행합니다. 따라서 항목의 개체 클래스 또는 속성이 스키마에 맞지 않으면 작업이 실패할 수 있습니다.
Directory Server에서는 기본적으로 스키마 검사가 활성화되며, Directory Server를 실행할 때는 항상 스키마 검사를 사용해야 합니다. 대부분의 클라이언트 응용 프로그램은 스키마 검사를 활성화하면 모든 항목이 스키마에 맞을 것이라고 가정합니다.
하지만 스키마 검사를 활성화해도 디렉토리에 있는 기존 항목은 확인되지 않습니다. 모든 디렉토리 내용이 스키마에 맞도록 하려면 첫 항목을 추가하기 전이나 모든 항목을 다시 초기화하기 전에 스키마 검사를 활성화해야 합니다.
스키마에 맞는 LDAP 파일의 가져오기 작업 속도를 향상시키기 위해 예외적으로 스키마 검사를 비활성화할 수도 있습니다. 하지만 스키마에 맞지 않는 항목을 가져오게 될 위험이 있으며 이러한 오류를 감지할 수 없습니다.
스키마에 맞지 않는 항목은 검색할 수 없으므로 이 항목에 대한 수정 작업이 실패합니다. 스키마에 맞도록 항목을 수정하려면 다음을 수행해야 합니다.
- 생산 환경의 서버에서는 먼저 전체 서버를 읽기 전용으로 설정하여 스키마 검사를 비활성화한 동안 수정을 방지하는 것이 좋습니다. "전역 읽기 전용 모드 설정"을 참조하십시오.
- 아래에 설명된 것처럼 스키마 검사를 비활성화합니다.
- 항목을 검색한 다음 현재 정의된 스키마와 수동으로 비교하여 항목이 스키마에 맞지 않는 이유를 확인합니다. "속성 보기" 및 "개체 클래스 보기"를 참조하십시오.
- 스키마에 맞도록 항목을 수정합니다.
맞지 않는 항목이 많으며, 이러한 항목이 새로운 데이터 형식이나 패턴을 나타낼 경우 스키마를 수정할 수도 있습니다. 하지만 배포 전에 스키마를 계획하여 스키마에 대한 변경을 최소화해야 합니다. 자세한 내용은 Sun ONE Directory Server Deployment Guide의 Chapter 3, "Designing the Schema"를 참조하십시오.
- 아래에 설명된 것처럼 스키마 검사를 활성화합니다.
- 전역 읽기 전용 모드를 활성화한 경우 이를 해제합니다.
콘솔에서 스키마 검사 설정
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택합니다.
오른쪽 패널에는 스키마 정의가 포함되어 있습니다.
- 패널 맨 위의 상태 메시지에 현재 스키마 검사의 활성화 여부가 표시됩니다. 오른쪽에 있는 버튼을 누르면 스키마 검사가 비활성화 또는 활성화됩니다.
- 버튼 레이블이 "비활성화"이면 스키마 검사를 비활성화할 수 있습니다.
- 버튼 레이블이 "활성화"이면 스키마 검사를 활성화할 수 있습니다.
새 스키마 검사 정책이 즉시 적용됩니다.
명령줄에서 스키마 검사 설정
다음과 같이 cn=config 항목의 nsslapd-schemacheck 속성을 설정하여 스키마 검사를 활성화 및 비활성화할 수도 있습니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=config
changetype: modify
replace: nsslapd-schemacheck
nsslapd-schemacheck: on or off서버는 즉시 새 스키마 검사 정책을 실행합니다.
스키마 확장에 대한 개요
스키마에 새 속성을 추가하는 경우 이 속성이 포함될 새로운 개체 클래스를 작성해야 합니다. 필요한 대부분의 속성이 포함되어 있는 기존의 개체 클래스에 속성을 추가하는 것이 더 편리할 수도 있지만 LDAP 클라이언트와의 상호 운용성이 저하되는 단점이 있습니다.
Directory Server와 기존 LDAP 클라이언트와의 상호 운용성은 표준 LDAP 스키마에 기반을 두고 있으므로 표준 스키마를 변경하면 서버를 업그레이드할 때 문제가 발생합니다. 표준 스키마 요소를 삭제할 수 없는 것도 이 때문입니다.
개체 클래스, 속성 및 디렉토리 스키마에 대한 자세한 내용과 스키마 확장 지침은 Sun ONE Directory Server Deployment Guide의 Chapter 3, "Designing the Schema"를 참조하십시오. 표준 속성 및 개체 클래스에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual의 Part 4, "Directory Server Schema"를 참조하십시오.
Directory Server 스키마는 cn=schema 디렉토리 항목의 속성에 저장됩니다. 구성 항목과 마찬가지로 이 항목은 서버 시작 중에 파일에서 읽은 스키마의 LDAP 뷰입니다. 스키마 파일은 아래 위치에 있는 LDIF 파일입니다.
serverRoot/slapd-serverID/config/schema
이 디렉토리에는 Directory Server 및 Directory Server에 기반을 둔 다른 Sun ONE 서버에서 사용하는 표준 스키마 파일이 포함되어 있습니다. 이러한 파일에 대해서는 Sun ONE Directory Server Reference Manual의 Chapter 9, "Schema Supported by Directory Server 5.2"에서 설명합니다. 표준 스키마 자체에 대해서는 Sun ONE Directory Server Reference Manual의 Chapter 10, "Object Class Reference" 및 Chapter 11, "Attribute Reference"에서 설명합니다.
스키마 파일 수정
서버는 시작 시에만 한 번 스키마 파일을 읽습니다. 파일의 LDIF 내용은 cn=schema에 있는 스키마의 메모리 내장 LDAP 뷰에 추가됩니다. 스키마 정의의 순서가 중요하기 때문에 스키마 파일 이름 앞에는 번호가 붙으며 영숫자순으로 로드됩니다. 이 디렉토리에 있는 스키마 파일은 설치 중에 정의된 시스템 사용자만 쓸 수 있습니다.
파일의 스키마 정의를 수정하려면 원하는 파일을 작성 또는 수정한 다음 서버를 다시 시작해야 합니다. 스키마 파일의 정의 구문에 대해서는 RFC 2252
(http://www.ietf.org/rfc/rfc2252.txt)에서 설명합니다.LDIF 파일에 스키마를 직접 정의하는 경우 X-ORIGIN 필드에 'user defined' 값을 사용해서는 안 됩니다. 이 값은 cn=schema의 LDAP 뷰를 통해 정의되며 99user.ldif에 표시되는 스키마 요소에 예약된 값입니다.
99user.ldif 파일에는 cn=schema 항목에 대한 추가 ACI 및 명령줄이나 콘솔에서 추가된 모든 스키마 정의가 포함됩니다. 새 스키마 정의가 추가되면 99user.ldif 파일을 덮어쓰기 때문에 이 파일을 수정하려는 경우에는 즉시 서버를 다시 시작하여 변경 사항을 영구 저장해야 합니다.
다른 스키마 파일에 정의된 표준 스키마를 수정할 수는 없지만 새 파일을 추가하여 새 속성과 개체 클래스를 정의할 수 있습니다. 예를 들어, 여러 서버에 새 스키마 요소를 정의하려면 98mySchema.ldif 파일에 스키마 요소를 정의한 다음 이 파일을 모든 서버의 스키마 디렉토리에 복사할 수 있습니다. 그런 후에 모든 서버를 다시 시작하여 새 스키마 파일을 로드해야 합니다.
명령줄에서 스키마 수정
스키마는 cn=schema에 있는 LDAP 뷰에서 정의되기 때문에 ldapsearch 및 ldapmodify 유틸리티를 사용하여 온라인으로 스키마를 보고 수정할 수 있습니다. 하지만 X-ORIGIN 필드에 'user defined' 값이 있는 스키마 요소만 수정할 수 있습니다. 다른 정의에 대한 수정은 서버에서 모두 거부합니다.
attributeTypes 속성과 objectClasses 속성의 개별 값을 추가 및 삭제하려면 ldapmodify를 사용합니다. 두 속성은 여러 값을 가지므로 값 중 하나를 수정하려면
특정 값을 삭제한 다음 새 값으로 추가해야 합니다("여러 값을 갖는 속성의 값 하나만 수정" 참조). 또한 RFC 2252(http://www.ietf.org/rfc/rfc2252.txt)에 설명된 스키마 요소 정의 구문을 사용해야 합니다.사용자 정의 요소에 대한 변경 사항과 새로운 요소 정의는 모두 99user.ldif 파일에 저장됩니다.
명령줄에서 스키마 정의를 수정하는 경우 긴 값을 정확하게 입력해야 하기 때문에 오류가 발생할 가능성이 큽니다. 하지만 디렉토리 스키마를 업데이트해야 하는 스크립트에 이 기능을 사용할 수 있습니다.
콘솔에서 스키마 수정
디렉토리 스키마를 사용자 정의하려면 다음 절에 설명된 Directory Server 콘솔 인터페이스를 사용하는 것이 좋습니다. 콘솔을 사용하여 표준 스키마를 볼 수 있으며, 새 속성과 개체 클래스를 정의하고 정의한 요소를 편집할 수 있는 그래픽 인터페이스를 제공합니다.
사용자 정의 요소에 대한 변경 사항과 새로운 요소 정의는 모두 99user.ldif 파일에 저장됩니다.
디렉토리 스키마를 확장하려면 다음과 같은 순서로 진행해야 합니다.
- "속성 작성"에 설명된 것처럼 먼저 새 속성을 작성합니다.
- 그런 후에 새 속성이 포함될 개체 클래스를 작성하여 속성을 추가합니다. 자세한 내용은 "개체 클래스 작성"을 참조하십시오.
속성 정의 관리
Directory Server 콘솔은 스키마의 모든 속성을 볼 수 있으며 자신의 속성 정의를 작성, 편집 및 삭제할 수 있는 인터페이스를 제공합니다.
속성 보기
현재 디렉토리 스키마에 있는 모든 속성에 대한 정보를 보려면
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "속성" 탭을 선택합니다.
이 탭에는 스키마에 있는 모든 표준(읽기 전용) 속성 및 사용자 정의 속성 테이블이 포함되어 있습니다. 테이블에서 개별 줄 위에 마우스를 놓으면 해당 속성에 대한 설명 문자열이 표시됩니다.
아래 표에는 속성 테이블의 필드가 나와 있습니다.
표 9-1    속성 탭의 테이블 열
열 머 리 글
설 명
이름
속성 이름. 속성 유형이라고도 합니다.
OID
속성의 개체 식별자. OID는 스키마 개체를 고유하게 식별하는 문자열이며 대체로 점으로 구분된 10진수로 구성됩니다.
OID에 대한 자세한 내용을 보거나 기업용 접두어를 요청하려면 iana@iana.org로 IANA(Internet Assigned Number Authority)에 전자 우편을 보내거나 IANA 웹 사이트(http://www.iana.org/)를 방문하십시오.
구문
구문 열에서는 이 속성에 허용되는 값의 형식에 대해 설명합니다. 사용할 수 있는 구문은 표 9-2에 나와 있습니다.
여러 값
이 열의 확인란은 속성이 여러 값을 가질 수 있는지 여부를 지정합니다. 여러 값을 갖는 속성은 한 항목에서 여러 번 사용할 수 있지만 값이 하나인 속성은 두 번 이상 사용할 수 없습니다.
속성 작성
스키마에 자신의 속성 정의를 추가하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "속성" 탭을 선택합니다.
- "만들기"를 눌러 "속성 작성" 대화 상자를 표시합니다.
- 텍스트 필드에 다음과 같은 정보를 입력하여 새 속성을 정의합니다. 속성 이름과 구문만 필수입니다.
- 속성 이름 - 속성 유형이라고도 하는 속성의 고유 이름을 입력합니다. 속성 이름은 문자로 시작해야 하며 ASCII 문자, 숫자 및 하이펀만 사용할 수 있습니다.
주 속성 이름에 대문자가 포함될 수는 있지만 LDAP 클라이언트에서 대문자를 사용해서는 안 됩니다. 속성 이름은 RFC 2251 섹션 4.1.4에 따라 대소문자를 구분하지 않고 처리해야 합니다(http://www.ietf.org/rfc/rfc2251.txt).
- 속성 OID(선택 사항) - 속성의 개체 식별자를 입력합니다. OID에 대해서는 표 9-1에서 설명합니다. OID를 지정하지 않으면 Directory Server에서 자동으로 attributeName-oid를 사용합니다. LDAP v3을 엄격히 준수하려면 유효한 숫자 OID를 입력해야 합니다.
- 속성 별칭(선택 사항) - 속성의 대체 이름을 쉼표로 구분된 목록에 입력합니다.
- 속성 설명(선택 사항) - 속성의 용도를 설명하는 짧은 설명 텍스트를 입력합니다.
- 구문 - 드롭다운 메뉴에서 속성에 저장할 데이터를 설명하는 구문을 선택합니다. 사용할 수 있는 구문에 대해서는 표 9-2에서 설명합니다.
- 여러 값 - 기본적으로 속성은 여러 값을 갖습니다. 속성이 항목 당 한 개의 값만 가져야 하는 경우에는 이 확인란을 선택 취소합니다.
- "속성 작성" 대화 상자에서 "확인"을 눌러 새 속성을 정의합니다. 사용자 정의 속성 테이블에 새 속성이 표시됩니다.
디렉토리 항목에 이 속성 값을 정의하기 전에 "개체 클래스 정의 관리"에 설명된 것처럼 속성을 필요로 하거나 허용하는 개체 클래스를 작성 또는 편집해야 합니다.
속성 편집
사용자 정의 속성만 콘솔에서 편집할 수 있습니다. 속성의 이름, 구문, 여러 값 정의를 수정하기 전에 현재 이 속성을 사용하는 디렉토리 항목이 없도록 해야 합니다. 속성을 사용하는 항목이 있을 경우 클라이언트에서 액세스할 수 없게 됩니다.
속성의 스키마 정의를 수정하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "속성" 탭을 선택합니다.
- "사용자 정의 속성" 테이블에서 편집할 속성을 선택하고 "편집"을 누릅니다.
- "속성 편집" 대화 상자의 필드를 수정하여 속성을 다시 정의합니다.
OID 문자열은 속성 이름에 따라 지정되므로 이름을 변경하는 경우 OID도 변경해야 합니다. OID에 대해서는 표 9-1에서 설명합니다. 사용할 수 있는 구문에 대해서는 표 9-2에서 설명합니다.
- 속성 편집이 끝나면 "확인"을 눌러 변경 사항을 저장합니다.
속성 삭제
사용자 정의 속성만 콘솔에서 삭제할 수 있습니다. 속성 정의를 삭제하기 전에 현재 이 속성을 사용하는 디렉토리 항목이 없도록 해야 합니다. 속성을 사용하는 항목이 있을 경우 클라이언트에서 액세스할 수 없게 됩니다.
속성의 스키마 정의를 삭제하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "속성" 탭을 선택합니다.
- "사용자 정의 속성" 테이블에서 속성을 선택하고 "삭제"를 누릅니다.
- 확인 메시지가 표시되면 삭제를 확인합니다.
속성 정의는 즉시 삭제되며 실행 취소할 수 없습니다.
개체 클래스 정의 관리
Directory Server 콘솔은 스키마의 모든 개체 클래스를 볼 수 있으며 자신의 개체 클래스 정의를 작성, 편집 및 삭제할 수 있는 인터페이스도 제공합니다.
개체 클래스 보기
현재 디렉토리 스키마에 정의된 모든 개체 클래스에 대한 정보를 보려면
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "개체 클래스" 탭을 선택합니다.
이 탭에는 스키마에 있는 모든 표준(읽기 전용) 및 사용자 정의 개체 클래스 목록이 포함되어 있습니다.
- 두 목록 중 하나에서 보려는 개체 클래스를 선택합니다.
탭의 다른 필드에는 선택한 개체 클래스에 대한 다음과 같은 정보가 표시됩니다.
표 9-3    개체 클래스 탭의 필드
필 드
설 명
필수 속성
이 개체 클래스를 사용하는 항목에 반드시 필요한 속성 목록이 포함되어 있습니다. 이 목록에는 상속된 속성도 포함됩니다.
허용되는 속성
이 개체 클래스를 사용하는 항목에 허용되는 속성 목록이 포함되어 있습니다. 이 목록에는 상속된 속성도 포함됩니다.
부모
부모는 한 개체 클래스가 속성과 구조를 상속 받는 특정 개체 클래스를 식별합니다. 개체 클래스는 부모 개체 클래스의 필수 속성과 허용되는 속성을 자동으로 상속합니다.
OID
개체 클래스의 개체 식별자. OID는 스키마 개체를 고유하게 식별하는 문자열이며 대체로 점으로 구분된 10진수로 구성됩니다.
OID에 대한 자세한 내용을 보거나 기업용 접두어를 요청하려면 iana@iana.org로 IANA(Internet Assigned Number Authority)에 전자 우편을 보내거나 IANA 웹 사이트(http://www.iana.org/)를 방문하십시오.
개체 클래스 작성
다른 개체 클래스로부터 서로 상속 받는 여러 개체 클래스를 작성하는 경우 먼저 부모 개체 클래스를 작성해야 합니다. 새 개체 클래스에 사용자 정의 속성이 사용되면 이러한 속성도 먼저 정의해야 합니다.
주 콘솔에서는 구조적 개체 클래스만 작성할 수 있습니다. 이러한 개체 클래스는 부모로부터 상속 받아야 합니다. 보조 및 추상적 개체 클래스를 정의하려면 명령줄 유틸리티를 사용해야 합니다.
스키마에 자신의 개체 클래스 정의를 추가하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "개체 클래스" 탭을 선택합니다.
- "만들기"를 눌러 "개체 클래스 작성" 대화 상자를 표시합니다.
- 텍스트 필드에 다음과 같은 정보를 입력하여 새 개체 클래스를 정의합니다.
- 이름 - 개체 클래스의 고유 이름을 입력합니다.
- 부모 - 부모가 될 기존의 개체 클래스를 선택합니다. 기본적으로 top이 선택되며, 다른 개체 클래스로부터 상속 받지 않는 경우 이 개체 클래스를 사용해야 합니다. 부모로부터 상속된 필수 속성과 허용되는 속성이 해당 목록에 표시됩니다.
일반적으로 사용자 항목에 새 속성을 추가하려는 경우에는 inetOrgPerson 개체 클래스가 부모입니다. 기업 항목에 새 속성을 추가하려는 경우에는 대체로 organization 또는 organizationalUnit가 부모입니다. 그룹 항목에 새 속성을 추가하려는 경우에는 대체로 groupOfNames 또는 groupOfUniqueNames가 부모입니다.
- OID(선택 사항) - 개체 클래스의 개체 식별자를 입력합니다. OID에 대해서는 표 9-3에서 설명합니다. OID를 지정하지 않으면 Directory Server에서 자동으로 objectClassName-oid를 사용합니다. LDAP v3을 엄격히 준수하려면 유효한 숫자 OID를 입력해야 합니다.
- 새 개체 클래스를 사용하는 항목에 포함될 속성을 정의합니다.
- 필수 속성을 정의하려면 "사용 가능한 속성" 목록에서 속성을 하나 이상 선택한 다음 "필수 속성" 상자 왼쪽에 있는 "추가" 버튼을 누릅니다.
- 허용되는 속성을 정의하려면 "사용 가능한 속성" 목록에서 속성을 하나 이상 선택한 다음 "허용되는 속성" 상자 왼쪽에 있는 "추가" 버튼을 누릅니다.
- 이전에 추가한 속성을 제거하려면 두 목록 중 하나에서 제거할 속성을 선택한 다음 해당 "제거" 버튼을 누릅니다. 부모 개체 클래스로부터 상속 받은 허용되는 속성 또는 필수 속성은 제거할 수 없습니다.
- "개체 클래스 작성" 대화 상자에서 "확인"을 눌러 새 개체 클래스를 정의합니다. 사용자 정의 개체 클래스 테이블에 새 개체 클래스가 표시되며, 이 개체 클래스를 사용하여 항목을 정의할 수 있습니다.
개체 클래스 편집
사용자 정의 개체 클래스만 콘솔에서 편집할 수 있습니다. 개체 클래스 정의를 수정하기 전에 현재 이 개체 클래스를 사용하는 디렉토리 항목이 없도록 해야 합니다. 개체 클래스를 사용하는 항목이 있을 경우 클라이언트에서 액세스할 수 없게 됩니다.
개체 클래스의 스키마 정의를 수정하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "개체 클래스" 탭을 선택합니다.
- "사용자 정의 개체 클래스" 목록에서 편집할 개체 클래스를 선택하고 "편집"을 누릅니다.
- "개체 클래스 편집" 대화 상자의 필드를 수정하여 개체 클래스를 다시 정의합니다.
개체 클래스의 이름을 바꾸거나 해당 OID를 변경할 수는 없습니다. 이름과 OID를 수정하려면 기존 개체 클래스를 삭제하고 새 개체 클래스를 작성합니다.
- 부모 - 부모가 될 기존의 개체 클래스를 선택합니다. 부모로부터 상속된 필수 속성과 허용되는 속성이 해당 목록에 표시됩니다.
- 필수 속성을 정의하려면 "사용 가능한 속성" 목록에서 속성을 하나 이상 선택한 다음 "필수 속성" 상자 왼쪽에 있는 "추가" 버튼을 누릅니다.
- 허용되는 속성을 정의하려면 "사용 가능한 속성" 목록에서 속성을 하나 이상 선택한 다음 "허용되는 속성" 상자 왼쪽에 있는 "추가" 버튼을 누릅니다.
- 이전에 추가한 속성을 제거하려면 두 목록 중 하나에서 제거할 속성을 선택한 다음 해당 "제거" 버튼을 누릅니다. 부모 개체 클래스로부터 상속 받은 허용되는 속성 또는 필수 속성은 제거할 수 없습니다.
- 개체 클래스 편집이 끝나면 "확인"을 눌러 변경 사항을 저장합니다.
개체 클래스 삭제
사용자 정의 개체 클래스만 콘솔에서 삭제할 수 있습니다. 개체 클래스 정의를 삭제하기 전에 현재 이 개체 클래스를 사용하는 디렉토리 항목이 없도록 해야 합니다. 개체 클래스를 사용하는 항목이 있을 경우 클라이언트에서 액세스할 수 없게 됩니다.
개체 클래스의 스키마 정의를 삭제하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "구성" 탭에 있는 구성 트리에서 "스키마" 노드를 선택한 다음 오른쪽 패널에서 "개체 클래스" 탭을 선택합니다.
- "사용자 정의 개체 클래스" 목록에서 개체 클래스를 선택하고 "삭제"를 누릅니다.
- 확인 메시지가 표시되면 삭제를 확인합니다.
개체 클래스 정의는 즉시 삭제되며 실행 취소할 수 없습니다.
스키마 정의 복제
두 서버 간에 하나 이상의 접미사 복제를 구성하면 스키마도 자동으로 복제됩니다. 이렇게 해서 모든 복제본은 소비자로 복제될 수 있는 모든 개체 클래스 및 속성을 정의하는 동일한 스키마를 갖게 되며 마스터 서버에도 마스터 스키마가 있습니다.
모든 복제본에서 스키마를 실행하려면 모든 마스터에서 스키마 검사를 활성화해야 합니다. LDAP 작업이 수행되는 마스터에서 스키마를 검사하기 때문에 소비자를 업데이트할 때는 스키마를 검사할 필요가 없습니다. 성능을 향상시키기 위해 복제 메커니즘은 소비자 복제본에 대한 스키마 검사를 무시합니다.
주 허브 및 전용 소비자에서는 스키마 검사를 비활성화하지 마십시오. 스키마 검사는 소비자 성능에 영향을 주지 않으므로 복제본 내용이 스키마에 맞다는 것을 표시하기 위해 계속 활성화 상태로 유지해야 합니다.
마스터 서버는 콘솔이나 명령줄 도구를 통해 스키마가 수정될 때 및 소비자 초기화 중에 자동으로 스키마를 해당 소비자에 복제합니다. 기본적으로 전체 스키마가 복제되며, 소비자에 없는 추가 스키마 요소는 새로 작성되어 99user.ldif 파일에 저장됩니다.
예를 들어, 마스터 서버를 시작하면 98mySchema.ldif 파일에 스키마 정의가 저장되며 다른 서버(마스터, 허브 또는 전용 소비자)에 대한 복제 계약을 정의한다고 가정해 보십시오. 나중에 이 마스터를 사용하여 복제본을 초기화하면 복제된 스키마는 98mySchema.ldif의 정의를 포함하지만 복제본 서버의 99user.ldif에 저장됩니다.
스키마가 소비자 초기화 중에 복제된 경우 마스터의 cn=schema에 있는 스키마를 수정해도 전체 스키마가 소비자에 복제되므로 명령줄 유틸리티나 콘솔을 통한 마스터 스키마의 모든 수정 사항이 소비자에 복제됩니다. 이러한 수정 사항은 마스터의 99user.ldif에 저장되며, 위와 같은 메커니즘에 의해 소비자의 99user.ldif에도 저장됩니다.
복제된 스키마 파일 수정
스키마가 포함된 LDIF 파일에서 직접 변경한 사항은 복제 메커니즘에서 감지할 수 없으므로 "스키마 파일 수정"에 설명된 것처럼 스키마를 업데이트하는 경우 마스터를 다시 시작해도 변경 사항이 소비자에 복제되지 않습니다.
Directory Server 5.2는 스키마 파일의 변경 사항을 소비자에게 "밀어넣는" 다음과 같은 스크립트를 제공합니다.
Windows 플랫폼
cd serverRoot
bin\slapd\admin\bin\perl slapd-serverID\schema_push.pl기타 설치
# serverRoot/slapd-serverID/schema_push.pl
마스터 서버의 스키마 파일을 수정하려면 아래 절차를 사용합니다.
- 아래 명령을 실행하여 스키마 디렉토리에 새 스키마 파일을 추가하거나 기존 스키마 파일을 수정합니다.
serverRoot/slapd-serverID/config/schema
이 디렉토리에 있는 스키마 파일은 설치 중에 정의된 시스템 사용자만 쓸 수 있습니다. 자세한 내용은 "스키마 파일 수정"을 참조하십시오.
- 위에 제공된 해당 명령을 사용하여 schema_push.pl 스크립트를 실행합니다. 이 스크립트는 실제로 스키마를 복제본에 "밀어넣는" 것이 아니라 스키마 파일이 로드되면 즉시 복제되도록 특수 속성을 스키마 파일에 작성합니다.
- 서버를 다시 시작합니다. 모든 스키마 파일이 로드되며, 복제 메커니즘이 새 스키마를 해당 소비자에 복제합니다.
스키마 복제 제한
기본적으로 복제 메커니즘은 스키마를 복제할 때 항상 전체 스키마를 소비자에게 보냅니다. 하지만 다음 두 가지 경우에는 이러한 기본 설정이 바람직하지 않습니다.
- 콘솔이나 명령줄에서 cn=schema를 수정하면 사용자 정의 스키마 요소만 변경되고 표준 스키마는 변경되지 않습니다. 자주 스키마를 수정하면 변경되지 않는 스키마 요소의 대규모 집합을 매번 보내야 하기 때문에 성능이 저하됩니다. 이 경우 사용자 정의 스키마 요소만 복제하여 복제 및 서버 성능을 향상시킬 수 있습니다.
- Directory Server 5.2의 마스터를 Directory Server 5.1의 소비자에 복제하면 두 버전의 구성 속성 스키마가 다르기 때문에 충돌이 발생합니다. 이 경우 아래에 설명된 것처럼 반드시 사용자 정의 스키마 요소만 복제해야 합니다.
사용자 정의 스키마만 복제되도록 스키마 복제를 제한하려면 아래 명령을 실행합니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=config
changetype: modify
replace: nsslapd-schema-repl-useronly
nsslapd-schema-repl-useronly: on기본값 off를 설정하면 필요한 경우 전체 스키마가 복제됩니다.