1.4. שינוי מסד הנתונים של תצורה לטפח
ניתן גם לבצע שאילתה ולשנות את ה-Slapd-config DIT. הנה כמה דוגמאות.
• השתמש ב-ldapmodify כדי להוסיף "אינדקס" (תכונת DbIndex) למסד הנתונים של {1}mdb,cn=config (dc=example,dc=com). צור קובץ, קרא לו uid_index.ldif, עם התכנים הבאים:
dn: olcDatabase={1}mdb,cn=config הוסף: olcDbIndex
olcDbIndex: דואר eq,sub
ואז תוציא את הפקודה:
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f uid_index.ldif
שינוי הערך "olcDatabase={1}mdb,cn=config"
אתה יכול לאשר את השינוי בדרך זו:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=config '(olcDatabase={1}mdb)' olcDbIndex
dn: olcDatabase={1}mdb,cn=config olcDbIndex: objectClass eq olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq olcDbIndex: member,memberUid eq olcDbIndex: mail eq,sub
• בואו נוסיף סכמה. תחילה יהיה צורך להמיר אותו לפורמט LDIF. אתה יכול למצוא סכימות שלא הומרו בנוסף לסכימות שהומרו ב- /etc/ldap/schema במדריך.
• זה לא טריוויאלי להסיר סכימה ממסד הנתונים slapd-config. תרגול הוספת סכמות במערכת מבחן.
• לפני הוספת סכימה כלשהי, עליך לבדוק אילו סכימות כבר מותקנות (מוצג ברירת מחדל, פלט מחוץ לקופסה):
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b \ cn=schema,cn=config dn
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
בדוגמה הבאה נוסיף את סכימת CORBA.
1. צור את קובץ תצורת ההמרה schema_convert.conf המכיל את השורות הבאות:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/ schema/duaconf.schema כולל /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/ppolicy.schema include /etc/ldap/ schema/ldapns.schema כולל /etc/ldap/schema/pmi.schema
2. צור את ספריית הפלט ldif_output.
3. קבע את האינדקס של הסכימה:
slapcat -f schema_convert.conf -F ldif_output -n 0 | grep corba,cn=schema
cn={2}corba,cn=schema,cn=config
כאשר סטפח בולעת אובייקטים עם אותו DN אב, הוא יוצר מדד עבור אותו חפץ. אינדקס כלול בתוך סוגרים: {X}.
4. השתמש ב-slappacat כדי לבצע את ההמרה:
slapcat -f schema_convert.conf -F ldif_output -n0 -H \ ldap:///cn={2}corba,cn=schema,cn=config -l cn=corba.ldif
הסכימה שהומרה נמצאת כעת cn=corba.ldif
5. ערוך cn=corba.ldif להגיע לתכונות הבאות:
dn: cn=corba,cn=schema,cn=config
...
cn: קורבה
הסר גם את השורות הבאות מלמטה:
structuralObjectClass: olcSchemaConfig entryUUID: 52109a02-66ab-1030-8be2-bbf166230478
creatorsName: cn=config createTimestamp: 20110829165435Z
entryCSN: 20110829165435.935248Z#000000#000#000000
modifiersName: cn=config modifyTimestamp: 20110829165435Z
ערכי התכונה שלך ישתנו.
6. לבסוף, השתמש ב-ldapadd כדי להוסיף את הסכימה החדשה ל-slalp-config DIT:
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\=corba.ldif
הוספת ערך חדש "cn=corba,cn=schema,cn=config"
7. אשר את הסכמות הטעונות כעת:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: cn={4}corba,cn=schema,cn=config
כדי שיישומים ולקוחות חיצוניים יבצעו אימות באמצעות LDAP, כל אחד מהם יצטרך להיות מוגדר באופן ספציפי לעשות זאת. עיין בתיעוד המתאים בצד הלקוח לפרטים.