Prepare a database for Deep Security Manager
Applies to on-premise Deep Security software installations only
If you are installing Deep Security Manager on an AWS instance, see Prepare a database for Deep Security Manager on AWS.
Before you install Deep Security Manager, you must prepare a database and user account for Deep Security Manager to use. Refer to your database provider's documentation for instructions on database installation and deployment, but also consider the following for integration with Deep Security:
- Check the Hardware considerations.
- Choose your database type. For a list of supported databases, see Database.
- Depending on which database you choose, see Microsoft SQL Server or Oracle Database for database-specific considerations.
Microsoft SQL Server Express is supported only in certain limited deployments with Deep Security 10.0 Update 2 or later. For details, see Microsoft SQL Server Express considerations.
- For high availability, the Deep Security database is compatible with database failover protection so long as no alterations are made to the database schema. For example, some database replication technologies add columns to the database tables during replication which can result in critical failures. For this reason, database mirroring is recommended over database replication.
- The database time must be synchronized with the time on the Deep Security Manager computer. Ensure that the database and the manager use the same time zone and that they are synchronizing their time to the same time source.
- Allow communication from the Deep Security Manager computer to the database computer. See Port numbers, URLs, and IP addresses.
- During the Deep Security Manager installation, you will be asked for database connection details. Enter the database hostname under "Hostname" and the database that you created for Deep Security under "Database Name".
The installation supports both SQL and Windows Authentication. When using Windows Authentication, click the "Advanced" button to display additional options.
- Database maintenance is a crucial part of Deep Security operations.
The database should be installed on a dedicated server that is separate from the manager nodes. It is also important that the database and the Deep Security Manager be co-located on the same network with a 1 Gb LAN connection to ensure unhindered communication between the two. (WAN connections are not recommended.) The same applies to additional Deep Security Manager nodes. 2 ms latency or less is recommended for the connection from the manager to the database.
To achieve this if you install the manager and database on VMs, make sure they are always run in the same ESXi host.
- In the vCenter Web Client, go to Host and Clusters and select the cluster.
- Go to the Manage tab and click VM/Host Rules > Add.
- Type a name for the rule.
- Select Enable rule.
- From Type select Keep Virtual Machines Together.
- Click Add and select the manager and database VMs.
Many Deep Security Manager operations (such as updates and recommendation scans) require high CPU and memory resources. Trend Micro recommends that each manager node has four cores and sufficient RAM in high scale environments.
The database should be installed on hardware that is equal to or better than the specifications of the best Deep Security Manager node. For the best performance, the database should have 8-16 GB of RAM and fast access to the local or network attached storage. Whenever possible, a database administrator should be consulted on the best configuration of the database server and a maintenance plan should be put in effect.
- You must create an empty database that will be used by Deep Security.
- Enable "Remote TCP Connections"(see https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/bb909712(v=vs.90)).
- Grant db_owner rights to the Deep Security Manager's database user.
- The recommended transport protocol is TCP.
- If using Named Pipes to connect to a SQL Server, a properly authenticated Microsoft Windows communication channel must be available between Deep Security Manager host and the SQL Server host. This may already exist if:
- The SQL Server is on the same host as Deep Security Manager.
- A trust relationship exists between the two hosts.
- Both hosts are members of the same domain.
If no such communication channel is available, Deep Security Manager will not be able to communicate to the SQL Server over named pipes.
If using multi-tenancy
- Keep the main database name short. It will be easier to read your tenants' database names. (For example, if the main database is "MAINDB", the first tenant's database name will be "MAINDB_1", the second tenant's database name will be "MAINDB_2", and so on.)
- Grant dbcreator rights to Deep Security Manager's database user account. For information on multi-tenancy, see Set up a multi-tenant environment.
- Start the "Oracle Listener" service. Verify that it accepts TCP connections.
- Don't use special characters in Deep Security Manager's database user name. Although Oracle allows special characters when configuring the database user object if they are surrounded by quotes, Deep Security does not support special characters for the database user.
- Grant the CONNECT and RESOURCE roles and UNLIMITED TABLESPACE, CREATE SEQUENCE, CREATE TABLE and CREATE TRIGGER permissions to the Deep Security Manager's database user.
If using multi-tenancy, also grant CREATE USER, DROP USER, ALTER USER, GRANT ANY PRIVILEGE and GRANT ANY ROLE to the Deep Security Manager's database user.Oracle container database (CDB) configuration is not supported with Deep Security Manager multi-tenancy.
Oracle RAC (Real Application Clusters) support
Deep Security supports:
- SUSE Linux Enterprise Server 11 SP3 with Oracle RAC 12c Release 1 (v22.214.171.124.0)
- Red Hat Linux Enterprise Server 6.6 with Oracle RAC 12c Release 1 (v126.96.36.199.0)
The default Linux Server Deep Security policy is compatible with the Oracle RAC environment, with the exception of Firewall settings. You can disable Firewall or customize the Firewall settings according to the instructions in Firewall settings with Oracle RAC.
Database maintenance is necessary to ensure the health of your Deep Security deployment.
To improve Deep Security Manager performance, we recommend that you perform regular index maintenance on the Deep Security database to keep it from becoming overly fragmented. Follow your organization's best practices for reindexing databases, or refer to your database vendor's documentation for guidance:
- Microsoft SQL: Refer to documentation from Microsoft for index maintenance best practices: https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15.
- Oracle Database: Follow Oracle’s best practices on managing indexes. For example, see https://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes002.htm#ADMIN11713.
There are also open-source websites that provide scripts that can help you with this task.
It's important to have a backup strategy in place for the Deep Security database in case of failure. Consult your database vendor's documentation for instructions on how to back up your database and see Back up and recover your database for instructions on how to restore the database, if necessary.