# derby.user.UserName

#### Function

Has two uses:

- Creates users and passwords when derby.authentication.provider is set to BUILTIN.
- Caches user DNs locally when derby.authentication.provider is set to LDAP and derby.authentication.ldap.searchFilter is set to derby.user.

Important: Derby's BUILTIN authentication mechanism is suitable only for development and testing purposes. It is strongly recommended that production systems rely on LDAP or a user-defined class for authentication. It is also strongly recommended that production systems protect network connections with SSL/TLS.

#### Users and Passwords

This property creates valid clear-text users and passwords within Derby when the derby.authentication.provider property is set to BUILTIN. For information about users, see "Working with user authentication" in the Java DB Developer's Guide.

- Database-Level Properties

  When you create users with database-level properties, those users are available to the specified database only.

  You set the property once for each user. To delete a user, set that user's password to null.

- System-Level Properties

  When you create users with system-level properties, those users are available to all databases in the system.

  You set the value of this system-wide property once for each user, so you can set it several times. To delete a user, remove that user from the file.

  You can define this property in the usual ways -- typically in the derby.properties file.

When a user name and its corresponding password are provided in the DriverManager.getConnection call, Derby validates them against the properties defined for the current system.

User names are SQL92Identifiers and can be delimited.

#### Syntax

    derby.user.{UserName=Password} | UserName=userDN }

    -- database-level property
    CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(
        'derby.user.UserName',
        'Password | userDN')

#### Default

None.

#### Example

    -- system-level property
    derby.user.guest=java5w

    derby.user.sa=Derby3x9

    derby.user."!Amber"=java5w
    -- database-level property
    CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(
        'derby.user.sa',
        'Derby3x9')
    -- cache a userDN locally, database-level property
    CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(
        'derby.user.richard',
        'uid=richard, ou=People, o=ExampleSite.com')

#### Dynamic or static

Dynamic; the change takes effect immediately. For information about dynamic changes to properties, see Dynamic and static properties.

- Caching user DNs

Parent topic: Derby properties
Related reference
derby.authentication.builtin.algorithm
derby.authentication.ldap.searchAuthDN
derby.authentication.ldap.searchAuthPW
derby.authentication.ldap.searchBase
derby.authentication.ldap.searchFilter
derby.authentication.provider
derby.authentication.server
derby.connection.requireAuthentication
derby.database.defaultConnectionMode
derby.database.forceDatabaseLock
derby.database.fullAccessUsers
derby.database.noAutoBoot
derby.database.propertiesOnly
derby.database.readOnlyAccessUsers
derby.database.sqlAuthorization
derby.infolog.append
derby.jdbc.xaTransactionTimeout
derby.language.logQueryPlan
derby.language.logStatementText
derby.locks.deadlockTimeout
derby.locks.deadlockTrace
derby.locks.escalationThreshold
derby.locks.monitor
derby.locks.waitTimeout
derby.replication.logBufferSize
derby.replication.maxLogShippingInterval
derby.replication.minLogShippingInterval
derby.replication.verbose
derby.storage.initialPages
derby.storage.minimumRecordSize
derby.storage.pageCacheSize
derby.storage.pageReservedSpace
derby.storage.pageSize
derby.storage.rowLocking
derby.storage.tempDirectory
derby.stream.error.field
derby.stream.error.file
derby.stream.error.method
derby.stream.error.logSeverityLevel
derby.system.bootAll
derby.system.durability
derby.system.home