]> git.sur5r.net Git - openldap/blob - doc/man/man5/slapo-unique.5
ITS#4397 delete misleading "subsequent database" config note.
[openldap] / doc / man / man5 / slapo-unique.5
1 .TH SLAPO-UNIQUE 5 "RELEASEDATE" "OpenLDAP LDVERSION"
2 .\" Copyright 2004-2006 The OpenLDAP Foundation All Rights Reserved.
3 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
4 .\" $OpenLDAP$
5 .SH NAME
6 slapo-unique \- Attribute Uniqueness overlay
7 .SH SYNOPSIS
8 ETCDIR/slapd.conf
9 .SH DESCRIPTION
10 The Attribute Uniqueness overlay can be used with a backend database such as
11 .BR slapd-bdb (5)
12 to enforce the uniqueness of some or all attributes within a subtree. This
13 subtree defaults to the base DN of the database for which the Uniqueness
14 overlay is configured.
15 .LP
16 Uniqueness is enforced by searching the subtree to ensure that the values of
17 all attributes presented with an
18 .BR add ,
19 .B modify
20 or
21 .B modrdn
22 operation are unique within the subtree.
23 For example, if uniqueness were enforced for the
24 .B uid
25 attribute, the subtree would be searched for any other records which also
26 have a
27 .B uid
28 attribute containing the same value. If any are found, the request is
29 rejected.
30 .SH CONFIGURATION
31 These
32 .B slapd.conf
33 options apply to the Attribute Uniqueness overlay.
34 They should appear after the
35 .B overlay
36 directive.
37 .TP
38 .B unique_base <basedn>
39 Configure the subtree against which uniqueness searches will be invoked.
40 The
41 .B basedn
42 defaults to the base DN of the database for which uniqueness is configured.
43 .TP
44 .B unique_ignore <attribute...>
45 Configure one or more attributes for which uniqueness will not be enforced.
46 If not configured, all non-operational (eg, system) attributes must be
47 unique. Note that the
48 .B unique_ignore
49 list should generally contain the
50 .BR objectClass ,
51 .BR dc ,
52 .B ou
53 and
54 .B o
55 attributes, as these will generally not be unique, nor are they operational
56 attributes.
57 .TP
58 .B unique_attributes <attribute...>
59 Specify one or more attributes for which uniqueness will be enforced.
60 If not specified, all attributes which are not operational (eg, system
61 attributes such as
62 .B entryUUID )
63 or specified via the
64 .B unique_ignore
65 directive above must be unique within the subtree.
66 .TP
67 .B unique_strict
68 By default, uniqueness is not enforced for null values. Enabling
69 .B unique_strict
70 mode extends the concept of uniqueness to include null values, such that
71 only one attribute within a subtree will be allowed to have a null value.
72 .SH CAVEATS
73 .LP
74 The search key is generated with attributes that are non-operational, not
75 on the
76 .B unique_ignore
77 list, and included in the
78 .B unique_attributes
79 list, in that order. This makes it possible to create interesting and
80 unusable configurations. Usually only one of
81 .B unique_ignore
82 or
83 .B unique_attributes
84 should be configured; use
85 .B unique_ignore
86 if the majority of attributes should be unique, and use
87 .B unique_attributes
88 if only a small set of attributes should be unique.
89 .LP
90 Typical attributes for the
91 .B unique_ignore
92 directive are intentionally not hardcoded into the overlay to allow for
93 maximum flexibility in meeting site-specific requirements.
94 .SH FILES
95 .TP
96 ETCDIR/slapd.conf
97 default slapd configuration file
98 .SH SEE ALSO
99 .BR slapd.conf (5).