Kesalahan no global superior knowledgeberarti bahwa slapdtidak tahu di mana harus meletakkan entri baru Anda. Ini biasanya berarti bahwa Anda belum mendefinisikan database yang sesuai. Dengan sistem yang lebih baru (yang menggunakan cn=configbukan slapd.conf), Anda biasanya akan menambahkan database baru atau memodifikasi entri database yang ada menggunakan ldapaddatau ldapmodify. Misalnya, pada sistem Fedora 17 saya, instalasi default menyiapkan database seperti ini untuk hosting dc=my-domain,dc=com:
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
creatorsName: cn=config
olcSuffix: dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=my-domain,dc=com
Untuk meng-host organisasi Anda ( o=myorganization, c=fr), saya perlu membuat file LDIF berikut:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: o=myorganization, c=fr
-
replace: olcRootDN
olcRootDN: cn=Manager,o=myorganization,c=fr
-
replace: olcAccess
olcAccess: {0}to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
by dn.base="cn=Manager,o=myorganization,c=fr" write
by * none
Dan saya akan memuat modifikasi ini seperti ini:
ldapmodify -Y EXTERNAL -H ldapi:/// -f mychanges.ldif
Ini berfungsi karena olcAccessbaris - baris berikut sudah ada dalam konfigurasi:
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to *
by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * none
Ini memberikan root, menghubungi slapdmelalui ldapi:///soket, akses bebas kata sandi ke cn=configpohon.
Saya kemudian akan memuat entri tingkat atas saya:
dn: o=myorganization, c=fr
objectclass: organization
o: myorganization
Dengan menjalankan:
ldapadd -Y EXTERNAL -H ldapi:/// -f myobject.ldif
Ini berfungsi karena saya telah menambahkan ACL serupa ke database ini. Perhatikan bahwa saya tidak perlu memulai dengan di c=frsini, karena basis data didefinisikan untuk menampungo=myorganization,c=fr