歡迎您光臨本站 註冊首頁

ldapsearch檢索異常:顯示"result: 0 Success」,但沒有結果顯示

各位大蝦,小弟最近練習openldap以rdbm為back db的實驗,連接是成功的,就是在檢索的時候出現了一些異常:
./ldapsearch -x -D "cn=root,dc=example,dc=com" -W -b "dc=example,dc=com" "sn=Zinberstein"
結果顯示如下:
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: sn=Zinberstein
# requesting: ALL
#

# search reference
ref: ldap://localhost:9012/dc=example,dc=com??sub

# search result
search: 2
result: 0 Success

# numResponses: 2
# numReferences: 1

/*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*/
這裡顯示了result:0 Success,但是就是沒有見到結果。
如果將ldap命令更改為:
./ldapsearch -x -D "cn=root,dc=example,dc=com" -W -b "dc=example,dc=com" "sn=*"
這裡倒是會正常的顯示結果如下:
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: sn=*
# requesting: ALL
#

# search reference
ref: ldap://localhost:9012/dc=example,dc=com??sub

# Mitya Kovalev, example.com
dn: cn=Mitya Kovalev,dc=example,dc=com
objectClass: inetOrgPerson
sn: Kovalev
seeAlso: documentTitle=book1,dc=example,dc=com
seeAlso: documentTitle=book2,dc=example,dc=com
givenName: Mitya
userPassword:: bWl0
telephoneNumber: 222-3234
telephoneNumber: 332-2334

# Torvlobnor Puzdoy, example.com
dn: cn=Torvlobnor Puzdoy,dc=example,dc=com
objectClass: inetOrgPerson
sn: Puzdoy
seeAlso: documentTitle=book1,dc=example,dc=com
givenName: Torvlobnor
telephoneNumber: 545-4563

# Akakiy Zinberstein, example.com
dn: cn=Akakiy Zinberstein,dc=example,dc=com
objectClass: inetOrgPerson
sn: Zinberstein
givenName: Akakiy

# search result
search: 2
result: 0 Success

# numResponses: 5
# numEntries: 3
# numReferences: 1


/*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*//*/*/*/*/
這2句命令的不同就在於
sn=Zinberstein和sn=*
而結果卻是大相徑庭,這是為什麼呢?
如果我們去掉檢索條件,輸入如下命令:
# ./ldapsearch -x -D "cn=root,dc=example,dc=com" -W -b "dc=example,dc=com"
結果如下:
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# book1, example.com
dn: documentTitle=book1,dc=example,dc=com
objectClass: document
description: abstract1
documentTitle: book1
documentAuthor: cn=Mitya Kovalev,dc=example,dc=com
documentAuthor: cn=Torvlobnor Puzdoy,dc=example,dc=com

# book2, example.com
dn: documentTitle=book2,dc=example,dc=com
objectClass: document
description: abstract2
documentTitle: book2
documentAuthor: cn=Mitya Kovalev,dc=example,dc=com

# search reference
ref: ldap://localhost:9012/dc=example,dc=com??sub

# example.com
dn: dc=example,dc=com
objectClass: organization
objectClass: dcObject
o: Example
dc: example

# Mitya Kovalev, example.com
dn: cn=Mitya Kovalev,dc=example,dc=com
objectClass: inetOrgPerson
sn: Kovalev
seeAlso: documentTitle=book1,dc=example,dc=com
seeAlso: documentTitle=book2,dc=example,dc=com
givenName: Mitya
userPassword:: bWl0
telephoneNumber: 222-3234
telephoneNumber: 332-2334

# Torvlobnor Puzdoy, example.com
dn: cn=Torvlobnor Puzdoy,dc=example,dc=com
objectClass: inetOrgPerson
sn: Puzdoy
seeAlso: documentTitle=book1,dc=example,dc=com
givenName: Torvlobnor
telephoneNumber: 545-4563

# Akakiy Zinberstein, example.com
dn: cn=Akakiy Zinberstein,dc=example,dc=com
objectClass: inetOrgPerson
sn: Zinberstein
givenName: Akakiy

# search result
search: 2
result: 0 Success

# numResponses: 8
# numEntries: 6
# numReferences: 1

:P 感覺不是back db的問題,我看過了這些db的內容,跟我們正常檢索的結果是一致的,而且db的設計思想跟一個國外網友寫的「ldap」LDAP andOpenLDAP(on the Linux Platform)中關於back-sql的back db的設計思想是一樣的。這些db在..../openldap-2.3.38/servers/slapd/back-sql/rdbms_depend目錄下。
直覺反映應該是我們的配置文件出錯了,我們的配置文件如下:
# $OpenLDAP: pkg/ldap/servers/slapd/back-sql/rdbms_depend/pgsql/slapd.conf,v 1.4.2.1 2005/
01/20 18:04:03 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema

# Define global ACLs to disable default read access.

access to *
        by self write
        by * read
access to * by dn="cn=root,dc=example,dc=com" write
#defaultaccess none

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /usr/local/var/slapd.pid
argsfile        /usr/local/var/slapd.args

loglevel 1

#######################################################################
# sql database definitions
#######################################################################

database        sql
#suffix         "o=sql,c=RU"
#rootdn         "cn=root,o=sql,c=RU"
suffix         "dc=example,dc=com"
rootdn         "cn=root,dc=example,dc=com"
rootpw          123456
dbname mysqlitedb
dbuser  "*"
dbpasswd  "*"
subtree_cond    "ldap_entries.dn LIKE CONCAT('%',?)"
insentry_query   "insert into ldap_entries(id,dn,oc_map_id,parent,keyval) values((select n
max(id)+1 from ldap_entries),?,?,?,
?)"
#insentry_stmt  "insert into ldap_entries (dn,oc_map_id,parent,keyval) values (?,?,?,?)"
has_ldapinfo_dn_ru      no
index cn eq
index sn eq




究竟是哪裡的錯呢?我們一直在查,但是一直沒有結果。我們從開始接觸ldap到以bdb為後台資料庫再以back-sql為後台資料庫,一共花了一個月的時間,現在出現這個情況,真的不知道是哪裡的錯誤,請各位大蝦指教。




我的配置如下:
系統配置如下:
os:netbsd 3.1
server:openldap-2.3.38
db:sqlite-3.5.1
dbdriver: sqliteodbc-0.76
odbc: unixODBC-2.2.1
《解決方案》

回復 #1 ykyxgz 的帖子

sqlite 不支持CONCAT語法,所以ldap_entries.dn查詢不到內容。

[火星人 ] ldapsearch檢索異常:顯示"result: 0 Success」,但沒有結果顯示已經有571次圍觀

http://coctec.com/docs/service/show-post-34469.html