Security & Privacy
Built by a DBA who knows what it takes to earn trust. AutoDBA is designed with security-first principles so your diagnostic data stays safe from collection to analysis.
Open Source Script
Read every query before running. Nothing hidden.
Read-Only Access
VIEW SERVER STATE only. Cannot modify your server.
End-to-End Encrypted
RSA-2048 + AES-256 hybrid encryption
You Control Upload
No data leaves your network without explicit action
No Agent Required
Run on-demand. No persistent services on your server.
Your Data, Encrypted Before It Leaves
Our PowerShell wrapper encrypts your diagnostic snapshot before it ever leaves your network. Even if the file is intercepted in transit, only AutoDBA servers can decrypt it.
- Hybrid RSA+AES encryption
Random AES-256-CBC key per file, wrapped with RSA-2048-OAEP-SHA256
- Gzip compression first
70-90% size reduction before encryption. Faster uploads.
- Public key embedded in script
Private key exists only on AutoDBA servers. No shared secrets.
- Inspect before encrypting
Use -RawOutput to save the JSON alongside the encrypted file
How .autodba Encryption Works
Collect
T-SQL script reads system DMVs, outputs JSON
Compress
Gzip compression reduces size by 70-90%
Encrypt
AES-256-CBC encrypts the data, RSA-2048 wraps the key
Upload
Upload .autodba file — only our servers can decrypt
Binary format: [ADBA magic][version][RSA-encrypted AES key][IV][AES-CBC ciphertext]
What Data We Collect
Collected (Performance Metadata Only)
Server Configuration
MAXDOP, memory settings, cost threshold, TempDB layout, Query Store status
Performance Metrics
Wait statistics, page life expectancy, memory grants, buffer pool usage
Top Query Statistics
Query text (anonymizable), CPU time, logical reads, execution counts, plan hashes
Index Analysis
Missing index suggestions from SQL Server, unused index detection, size and usage stats
I/O & Storage
Read/write latency, file sizes, autogrowth settings, TempDB usage
NEVER Collected
Table Data or Row Contents
We never read SELECT * from your tables. The script only reads system DMVs.
Passwords & Credentials
No connection strings, linked server credentials, or Database Mail content
Personally Identifiable Information
No names, emails, SSNs, or PII. The script has no access to user tables.
SQL Agent Job Source Code
Only job names, schedules, and last run status. No step definitions or T-SQL code.
Backup Paths & Network Shares
No filesystem paths, UNC shares, or infrastructure topology
Built-In Query Anonymization
Concerned about query text? The diagnostic script includes three anonymization modes:
NONEFull query text for best analysis accuracy
LITERALSString/numeric literals replaced with @p
FULLQuery text fully hashed. Maximum privacy.
Technical Security Measures
Encryption at Source (.autodba)
When using our recommended PowerShell wrapper, your data is encrypted on your machine before upload:
- AES-256-CBC symmetric encryption for the diagnostic data
- RSA-2048 with OAEP-SHA256 padding to wrap the AES key
- Fresh random AES key and IV generated per file
- Public key embedded in the script; private key only on AutoDBA servers
- Gzip compression before encryption for efficient transfer
Encryption in Transit
All communication uses HTTPS with TLS 1.2+. Combined with .autodba encryption, your data has two layers of protection during upload.
Application Security
Our application follows security best practices:
- Input validation and parameterized queries (SQL injection prevention)
- Cross-site scripting (XSS) protection
- Session-based authentication with secure cookies
- Rate limiting on all API endpoints
- Organization-level data isolation (multi-tenant)
Database Security
Customer data is stored in PostgreSQL with:
- Organization-scoped queries — customers can only access their own data
- Hashed passwords with bcrypt (cost factor 12)
- Minimal-privilege database user for the application
- Regular automated backups
Required SQL Server Permissions
The AutoDBA diagnostic script requires only three permissions — all read-only:
-- Create a dedicated monitoring login CREATE LOGIN [AutoDBA_Monitor] WITH PASSWORD = N'YourSecurePassword'; GO -- Grant read-only permissions (that's it) GRANT VIEW SERVER STATE TO [AutoDBA_Monitor]; GRANT VIEW ANY DEFINITION TO [AutoDBA_Monitor]; GO -- Per database (for index stats collection): -- USE [YourDatabase] -- CREATE USER [AutoDBA_Monitor] FOR LOGIN [AutoDBA_Monitor]; -- GRANT VIEW DATABASE STATE TO [AutoDBA_Monitor];
What these permissions allow
- Reading wait stats, performance counters, buffer pool info
- Viewing query stats, execution plans, and cached plan info
- Reading index definitions, usage stats, and missing index DMVs
- Viewing server configuration (sys.configurations)
What these permissions do NOT allow
- Modifying any data, tables, indexes, or stored procedures
- Reading data from user tables (SELECT on any table)
- Changing server configuration or security roles
- Accessing credentials, linked servers, or Database Mail
Security Questions?
We're happy to answer any security or privacy questions. Our diagnostic script is fully open source — read every line before running it.