# Configuring security in a client/server environment

This procedure requires a system with multiple databases and some administrative resources.

1. Configure security features as system properties. See Scope of properties and Setting system-wide properties.
2. Provide administrative-level protection for the derby.properties file and Derby databases. For example, you can protect these files and directories with operating system permissions and firewalls.
3. Turn on user authentication for your system. All users must provide valid user IDs and passwords to access the Derby system. If you are using Derby's built-in users, configure users for the system in the derby.properties file. Provide the protection for this file.
   Important: Derby's built-in 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.
4. Configure user authorization for sensitive databases in your system. Only designated users will be able to access sensitive databases. You typically configure user authorization with database-level properties. It is also possible to configure user authorization with system-level properties. This is useful when you are developing systems or when all databases have the same level of sensitivity.
5. Check and if necessary configure your Derby network security according to your environment. See the section "Network client security" in the Java DB Server and Administration Guide.

Parent topic: Configuring security for your environment
Related concepts
Working with user authentication
User authorizations
Related tasks
Configuring security in an embedded environment