My co-worker showed me a SQL Server requirements document that he found online somewhere and modified at a previous company. He would give this document to vendors who said they needed a SQL Server and they would need to select the appropriate answers before he would let them install their product. I think this is a great idea and thought I’d share it.
SQL Server Host Requirements (OS, minimum RAM, Number of CPUs, VM support, etc.)
Version of SQL Server Supported
- SQL 2012 SP2
- SQL 2012 SP1
- SQL 2012 RTM
- SQL 2008 R2 SP2
- SQL 2008 R2 SP1
Edition Of SQL Server Supported
- Enterprise
- Standard
32-bit vs. 64-bit
- 32-bit
- 64-bit
Exclusivity For The Hosted Database
- Shared SQL Server Environment
- Dedicated SQL Server required
Maximum Concurrent User Count
IOPS (I/O per second) Requirement
Initial Database Size – Please provide for each database, if multiple. Specify in MB or GB.
Projected Annual Database Growth Rate. Specify in MB or GB.
Special SAN Requirements, if any.
Dedicated Test, Development, and / or Training Environment Required (Include Details)
- Auxiliary environments to be delete / removed post-go live
- Auxiliary environments to remain accessible for duration of project use
- Auxiliary environments will need to be recreated for future product upgrades / enhancements
Database Security
- Single Windows (Active Directory) network login (connection pooling)
- Active Directory gorup login
- Individual or AD Group network login for each user
- Single SQL login ID and password (Login and password must be customizable and not identical to other product installations at other clients)
- Individual SQL login and password for each user
Maximum Level Of Permissions Required for Users / Administators / Service Account (Please provide explanation for any response greater than Database role, db_owner)
- Database role, less than db_owner
- Database role, db_owner
- Aliased as dbo for database
- Some level of server-level permissions less than system administrator (sa)
- SA role membership
- Local administrator rights on SQL Server host machine
Database Connection / Session Handling
- Application maintains persisted connections / sessions to database
- Application established and releases connections / sessions as requested during normal operation
- Other
Vendor Access Required To Support Database Issues
- Vendor requires local login rights to SQL Server
- Vendor requires remote-connection via the application
- Vendor requires VPN access to our network to connect to the database via SSMS
- No remote support capabilities. Database backup will need to be sent via secure FTP to vendor for analysis
- No remote support capabilities. Secure method of transferring database backup not available.
Application and Database Support Exists for the Following High Availability Architectures
- Failover clustering
- Mirroring
- Log shipping
- Replication
How Frequently Do You Certify SQL Server Patches, Service Packs, and Release Updates?
- As released by Microsoft
- Quarterly
- Annually
- Other
How Frequently Do You Issue Database Updates?
- Quarterly
- Annually
- Other
Performance Tuning Requirements
- Index tuning changes (adding or disabling indexes, etc.) must be submitted to vendor for approval
- Index tuning changes (adding or disabling indexes, etc.) do not require vendor approval
- Index changes by customer technical staff are not permitted
Data Retention / Archiving and Growth Management Support
- Vendor does not support database archiving
- Vendor has database archiving process in place or available
- Database archiving solutions created by customer must be submitted to vendor for approval
- Database archiving solutions created by customer do not require vendor approval
- Vendor has tested and supports SQL Server data compression
Database Installation Process
- TSQL scripts or database backup file to be submitted to customer DBA for installation
- Installation accomplished via executable or other method run by vendor / customer on non-SQL Server host (e.g., application server or client workstation). Any additional permission requirements needed for installation should be noted here.
- Other
Note any Non-Standard Collation, Server-Level, or Instance-Level Settings Required
Identify Tables with Sensitive Data (Personally Identifiable Information, Financial Data, Passwords, etc.)
Identify Any Custom SQL Agent Jobs, Proprietary Backup or Maintenance Processes, or Similar Items.
Vendor Technical Contact ____________________________
Vendor Technical Contact Email _______________________
Vendor Technical Contact Phone _______________________
I would be surprised if many vendors knew the answer to all these questions right off the bat. However, this questionnaire will at least bring these issues to the forefront where they can start being addressed in a pro-active manner, before the product is installed. It will also raise any red flags. (The application needs sa access on a shared SQL Server? I don’t think so! Your maintenance plan shrinks the database weekly? I don’t think so!)