Database Connections
1. What are Database Connections?
The Database Connections feature allows you to securely store and manage the settings needed to connect our application to your various external databases. Once a connection is set up, our application can access data from your sources to provide you with valuable insights and services.
This means you can:
- Securely save credentials for different databases in one place.
- Easily manage these connections without needing technical help for every change.
- Connect to a variety of popular database types.
2. Supported Database Types
You can connect to the following types of databases:
- MySQL
- MariaDB
- PostgreSQL
- Google BigQuery
- Amazon Redshift
- Azure SQL Database
If you need to connect to a database type not listed here, please contact our support team.
3. Managing Your Connections
You can find the Database Connections management page in [mention where in the application, e.g., "your account settings under 'Integrations'"]. On this page, you'll see a list of all the database connections you've already set up.
For each connection, you'll see its Name and Type. You'll also have options to Edit or Delete it.
A. Adding a New Database Connection
To add a new database, follow these steps:
- Click the "Add Connection" button. A form will appear.
- Connection Name: Enter a descriptive name for this connection (e.g., "Sales Reporting DB" or "Marketing Analytics Warehouse"). This name is for your reference.
- Database Type: Select the type of database you want to connect to from the dropdown list (e.g., MySQL, PostgreSQL).
- Once you select a type, the form will update to show the specific settings required for that particular database.
- Configuration: Fill in the specific details for your database. Common fields include:
- Host: The address of your database server.
- Port: The port number your database server listens on.
- Username: The username for accessing the database.
- Password: The password for the specified username.
- Database Name: The name of the specific database you want to connect to on the server.
- (Note: The exact fields will vary depending on the selected Database Type. Some fields might have helpful tips or placeholder examples.)
- SSH Tunnel (Optional): For an extra layer of security, you can connect through an SSH tunnel. If your database requires this or you wish to use it:
- Check the "Enable SSH Tunneling" box.
- Additional fields will appear:
- SSH Host: The address of your SSH server.
- SSH Port: The port for the SSH connection (usually 22).
- SSH Username: The username for the SSH server.
- SSH Password: The password for the SSH user. (Leave blank if using an SSH Private Key).
- SSH Private Key: The content of your SSH private key file (e.g., id_rsa). (Leave blank if using an SSH Password). You'll need to paste the entire content of the key file here.
- You typically provide either an SSH Password or an SSH Private Key.
- SSL Encryption (Optional): To encrypt the data exchanged between our application and your database:
- Check the "Enable SSL Encryption" box.
- Additional fields will appear for you to paste the content of your SSL certificate files:
- SSL Certificate Authority (CA): Content of your CA certificate file.
- SSL Client Certificate: Content of your client certificate file.
- SSL Client Key: Content of your client key file.
- Create Connection: Once you've filled in all the necessary details, click the "Create Connection" button.
- Our system will attempt to test the connection with the details you provided.
- If the test is successful: The connection will be saved, and you'll be taken back to the list of your connections with a success message. Our system will also try to fetch some basic information about your database structure (like table and column names) to help with other features.
- If the test fails: You'll see an error message (e.g., "Connection test failed! Please check your details."). Please double-check all your settings, especially usernames, passwords, hostnames, and ports, then try saving again. The connection will not be saved if the initial test fails.
B. Editing an Existing Connection
If you need to update the settings for a database connection (for example, if a password changes):
- Find the connection in the list.
- Click the "Edit" button next to it.
- The same form you used to add the connection will appear, pre-filled with its current settings.
- Note: For security reasons, existing passwords, SSH private keys, and SSL certificate fields will appear blank. If you are not changing them, you can leave them blank. If you are changing them, enter the new values.
- Changing the "Database Type" after a connection has been created is generally not recommended. If you need to connect to a different type of database, it's usually better to add a new connection.
- Make your changes to the connection details, SSH, or SSL settings.
- Click the "Update Connection" button.
- The system will test the connection with the new settings.
- If the test is successful: The changes will be saved, and you'll see a success message. If the database type or critical connection details were changed, the system might re-fetch basic schema information.
- If the test fails: You'll see an error message. The changes you made will still be saved, but the connection might not work correctly until the issues are resolved. Double-check your updated settings.
C. Deleting a Connection
If you no longer need a database connection:
- Find the connection in the list.
- Click the "Delete" button next to it.
- A confirmation message will appear asking, "Are you sure you want to delete this connection? This cannot be undone."
- If you are sure, click "OK" (or the confirm button).
- The connection will be removed from your list, and any associated stored schema information will also be deleted.
4. Security of Your Connection Details
We take the security of your sensitive information very seriously. Our platform is built with robust security measures at every level to protect your data.
A. Encryption of Data in Transit
- From Your Browser to Our Application:: All communication between your web browser and our application is protected using SSL/TLS encryption. This is the same technology used by banks and e-commerce sites to secure online transactions. It ensures that any data you enter, including your login credentials and database connection details, is kept private.
- Between Our Application and Your Database:: For the connection between our servers and your external database, we provide optional layers of security. You can enable SSL encryption to protect the data as it travels, or use an SSH tunnel to create a secure, encrypted pathway to your database server.
B. Encryption of Data at Rest
Sensitive information is never stored in plain text. Your database credentials, including passwords, SSH private keys, and SSL certificate content, are securely encrypted before being saved in our system. This means that even in the unlikely event of a data breach, your credentials remain protected.
C. Application and Infrastructure Security
Our application built with protections against common web vulnerabilities, such as:
- SQL Injection: We use prepared statements and query binding to prevent malicious SQL commands from being executed.
- Cross-Site Scripting (XSS): All data rendered in the browser is automatically sanitized to prevent malicious scripts from running.
- Cross-Site Request Forgery (CSRF): We use tokens to ensure that all actions taken within the application are legitimate and initiated by you.
5. Troubleshooting Common Issues
- "Connection test failed!":
- Double-check the hostname or IP address of your database server.
- Verify the port number.
- Ensure the username and password are correct.
- Confirm the database name is accurate.
- If using SSH or SSL, verify all related settings, including host, port, username, password/key, and certificate contents.
- Check if your database server's firewall is allowing connections from our application's IP addresses (if applicable, our support team can provide these).
- General Slowness or Timeouts: This could be due to network issues between our application and your database server, or your database server might be under heavy load.
If you continue to experience issues, please don't hesitate to contact our support team for assistance.