# slapschema

## NAME



           slapschema - SLAPD in-database schema checking utility
    


## SYNOPSIS



           **SBINDIR/slapschema**[**-a** _filter_] [**-b** _suffix_] [**-c**] [**-d** _debug-level_]
           [**-f** _slapd.conf_] [**-F** _confdir_] [**-g**] [**-H** _URI_] [**-l** _error-file_] [**-n** _dbnum_]
           [**-o** _option_[**=**_value_]] [**-s** _subtree-dn_] [**-v**]
    


## DESCRIPTION



           **Slapschema** is used to check schema compliance of the contents of a
           slapd(8) database.  It opens the given database determined by the
           database number or suffix and checks the compliance of its
           contents with the corresponding schema. Errors are written to
           standard output or the specified file.  Databases configured as
           **subordinate** of this one are also output, unless **-g** is specified.
    
           Administrators may need to modify existing schema items, including
           adding new required attributes to objectClasses, removing existing
           required or allowed attributes from objectClasses, entirely
           removing objectClasses, or any other change that may result in
           making perfectly valid entries no longer compliant with the
           modified schema.  The execution of the **slapschema** tool after
           modifying the schema can point out inconsistencies that would
           otherwise surface only when inconsistent entries need to be
           modified.
    
           The entry records are checked in database order, not superior
           first order.  The entry records will be checked considering all
           (user and operational) attributes stored in the database.
           Dynamically generated attributes (such as subschemaSubentry) will
           not be considered.
    


## OPTIONS



           **-a** _filter_
                  Only check entries matching the asserted filter.  For
                  example
    
                  slapschema -a \
                      "(!(entryDN:dnSubtreeMatch:=ou=People,dc=example,dc=com))"
    
                  will check all but the "ou=People,dc=example,dc=com"
                  subtree of the "dc=example,dc=com" database.  Deprecated;
                  use **-H** _ldap:///???(filter)_ instead.
    
           **-b** _suffix_
                  Use the specified _suffix_ to determine which database to
                  check. By default, the first database that supports the
                  requested operation is used. The **-b** cannot be used in
                  conjunction with the **-n** option.
    
           **-c** Enable continue (ignore errors) mode.
    
           **-d** _debug-level_
                  Enable debugging messages as defined by the specified
                  _debug-level_ ; see slapd(8) for details.
    
           **-f** _slapd.conf_
                  Specify an alternative slapd.conf(5) file.
    
           **-F** _confdir_
                  specify a config directory.  If both **-f** and **-F** are
                  specified, the config file will be read and converted to
                  config directory format and written to the specified
                  directory.  If neither option is specified, an attempt to
                  read the default config directory will be made before
                  trying to use the default config file. If a valid config
                  directory exists then the default config file is ignored.
    
           **-g** disable subordinate gluing.  Only the specified database
                  will be processed, and not its glued subordinates (if any).
    
           **-H  URI**
                  use dn, scope and filter from URI to only handle matching
                  entries.
    
           **-l** _error-file_
                  Write errors to specified file instead of standard output.
    
           **-n** _dbnum_
                  Check the _dbnum_ -th database listed in the configuration
                  file. The config database slapd-config(5), is always the
                  first database, so use **-n 0**
    
                  The **-n** cannot be used in conjunction with the **-b** option.
    
           **-o** _option_[**=**_value_]
                  Specify an _option_ with a(n optional) _value_.  Possible
                  generic options/values are:
    
                         syslog=<subsystems>  (see `-s' in slapd(8))
                         syslog-level=<level> (see `-S' in slapd(8))
                         syslog-user=<user>   (see `-l' in slapd(8))
    
           **-s** _subtree-dn_
                  Only check entries in the subtree specified by this DN.
                  Implies **-b** _subtree-dn_ if no **-b** nor **-n** option is given.
                  Deprecated; use **-H** _ldap:///subtree-dn_ instead.
    
           **-v** Enable verbose mode.
    


## LIMITATIONS



           For some backend types, your slapd(8) should not be running (at
           least, not in read-write mode) when you do this to ensure
           consistency of the database. It is always safe to run **slapschema**
           with the slapd-mdb(5), and slapd-null(5) backends.
    


## EXAMPLES



           To check the schema compliance of your SLAPD database after
           modifications to the schema, and put any error in a file called
           **errors.ldif** , give the command:
    
                SBINDIR/slapschema -l errors.ldif
    


## ACKNOWLEDGEMENTS



           **OpenLDAP Software** is developed and maintained by The OpenLDAP
           Project <http://www.openldap.org/>.  **OpenLDAP Software** is derived
           from the University of Michigan LDAP 3.3 Release.
    


* * *