database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
ㆍLDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
LDAP Q&A 579 게시물 읽기
No. 579
Re: ldapadd에서 에러가 나네요... [Object class violation]
작성자
김경하
작성일
2001-05-17 09:08
조회수
6,471

OpenLDAP을 아주 옛날에 써보고 거의 안써봐서 확실히는 모르겠지만,

ObjectClass는 "필수 Attribute"와 "가능 Attribute"를 정의하고 있습니다.

 

필수 Attribute란(아래 정의를 보면 MUST부분인거 같습니다)란 해당 Objectclass를 가지는 엔트리는 반드시 포함해야하는 Attribute를 말합니다.

(즉, ldapadd할때 해당 Attribute가 없으면 ObjectClass Violation에러가 납니다.)

 

가능 Attribute란 해당 ObjectClass가 가질 수 있는 Attribute를 말합니다.

(즉, ldapadd할때 지정되지 않은 Attribute를 포함시키면 ObjectClass Violation 에러가 납니다) --> 아래의 에러원인이 아닌가 합니다.

 

아래의 첫번째 [성공]을 보면 o라는 Attribute는 organization이라는 objectclass에 정의되었고, dc라는 Attribute는 dcObject라는 objectclass에서 정의되었기 때문에 해당 엔트리가 성공적으로 add될 수 있었던 겁니다.

 

아래의 3번째 [실패]를 보면 accountMiddle라는 objectclass에서 idkey라는 Attribute를 지정하지 않았기 때문에 에러가 나는것입니다.

 

해결방법은 accountMiddle Objectclass를 정의할때 idkey도 사용할 수 있도록 해주는 방법과 objectclass의 상속관계를 이용해서 idkey를 사용할 수 있는 objectclass로 부터 상속을 받는 방법이 있습니다.

 

참, 아래 예에서 idkey:a와 같이 :뒤에 공백(space)가 없으면 에러가 납니다./

 

그럼...

 

>>sshjs 님께서 쓰시길<<

 

:: ldapadd하려는데 에러가 나네요...

:: openldap 2.0.7을 사용하고 있습니다.

::

:: ldapadd -D "cn=root,dc=messenger,dc=com" -w secret << EOF

:: > dn: accountMiddle=a, accountRoot=top, dc=messenger, dc=com

:: > type: middle

:: > idkey:a

:: > objectclass: accountMiddle

:: > adding new entry accountMiddle=a, accountRoot=top, dc=messenger, dc=com

:: ldap_add: Object class violation

:: ldap_add: additional info: attribute not allowed

::

:: 위와 같이 입력을 하는 과정이 었습니다.(3번째 하위구조로 입력중 입니다.)

::

:: 첫번째.

:: ldapadd -D "cn=root,dc=messenger,dc=com" -w secret << EOF

:: >dn: dc=messenger, dc=com

:: >dc: messenger

:: >o: DigitalWave

:: >objectclass: organization

:: >objectclass: dcObject

:: [[성공]]

::

:: 두전째.

:: ldapadd -D "cn=root,dc=messenger,dc=com" -w secret << EOF

:: >dn: accountRoot=top, dc=messenger, dc=com

:: >type: top

:: >objectclass: accountRoot

:: [[성공]]

::

::

:: Root dn의 입력과 다음 단계까지의 입력은 정상적으로 되었습니다.

::

:: 그리고 제가 만든 schema파일 입니다.

:: attribute ( 1.1.2.1.1 NAME 'type'

:: EQUALITY caseIgnoreMatch

:: SUBSTR caseIgnoreSubstringsMatch

:: SYNTAX 1.3.6.1.4.1.1466.115.121.1.15

:: )

::

:: attribute ( 1.1.2.1.2 NAME 'idkey'

:: EQUALITY caseIgnoreMatch

:: SUBSTR caseIgnoreSubstringsMatch

:: SYNTAX 1.3.6.1.4.1.1466.115.121.1.15

:: )

::

:: objectClass ( 1.1.2.2.1 NAME 'accountRoot'

:: DESC 'Account Root'

:: MUST type

:: )

::

:: objectClass ( 1.1.2.2.2 NAME 'accountMiddle'

:: DESC 'Account Middle'

:: MUST type

:: )

::

:: 그럼 답변 부탁드립니다.

:: 모두 수고 하세요.

[Top]
No.
제목
작성자
작성일
조회
581SUN서버에 LDAP1.x설치 성공. ^^
송지훈
2001-05-17
5594
580자바로 만들어진 LDAP서버가 있군요.
박근오
2001-05-17
5227
578자바로 LDAP를 사용하는 예제를 자료실에 올렸습니다.
박근오
2001-05-17
5343
577ldapadd에서 에러가 나네요... [Object class violation]
sshjs
2001-05-16
5066
579┕>Re: ldapadd에서 에러가 나네요... [Object class violation]
김경하
2001-05-17 09:08:21
6471
575LDAP의 개념에 관한 질문
blue
2001-05-16
5308
576┕>Re: LDAP의 개념에 관한 질문
정재익
2001-05-16 19:21:28
6260
573LDAP도 잼있겠군요.....
허정수
2001-05-15
5037
570ldap + snmp + java
홍순화
2001-05-15
5048
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.053초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다