Password Security¶
DaRT Reader handles database passwords securely. This guide explains how passwords are managed and best practices.
How DaRT Reader Handles Passwords¶
No Storage¶
DaRT Reader never saves passwords to disk. Passwords are:
- Kept in memory only during the session
- Never written to configuration files
- Never written to log files (explicit protection in place)
- Cleared from memory when the connection closes
CLI Password Entry¶
When using the CLI with the -p flag, passwords are entered securely:
You'll be prompted:
- The password is not echoed to the terminal
- The password is immediately used and not persisted
GUI Password Entry¶
When exporting to a database via the GUI:
- Enter your password in the password field (characters are masked)
- Click Start to begin the export
- The password is used only for that connection
- It's not saved when you close the window
Security Measures¶
Configuration File Security¶
Never put passwords in config files.
❌ Bad (DON'T DO THIS):
✅ Good (DO THIS):
Then provide the password interactively:
You can save the password in an environment variable and reference it in the config file.
Database security¶
Database security is your responsibility. DaRT Reader securely handles password transmission, but securing the database itself is outside the application's scope. You must ensure proper security measures for your database infrastructure, including:
- Access controls: Configure user permissions, roles, and privileges according to the principle of least privilege
- Encryption in transit: Use TLS/SSL connections (e.g., PostgreSQL with SSL mode, MySQL with encrypted connections) to protect data transmitted between DaRT Reader and the database
- Encryption at rest: Enable database encryption features to protect stored data on disk
- Network security: Use firewalls, VPNs, or private networks to restrict database access to authorized systems only
- Authentication: Implement strong authentication mechanisms and credential rotation policies
- Auditing and monitoring: Enable database audit logs to track access and identify suspicious activity
Consult your database vendor's security documentation for specific configuration guidance.
Best Practices¶
- Use Interactive Password Entry
- Always use the
-pflag (CLI) or password field (GUI) -
Never put passwords in config files or scripts
-
Use Database Authentication
- Prefer connection pooling with limited credentials
- Use database roles with minimal required permissions
-
Consider using certificate-based auth where supported
-
Protect Log Files
- Log files are in
$APPDIR/../logging/ - Ensure this directory has appropriate file permissions
-
Review logs before sharing them for support
-
Environment Variables
- Store credentials in environment variables
- Reference them in scripts without hardcoding