What's a good way to manage and maintain SQL Server logins, server roles, and individual access rights across multiple databases that exist in multiple environments? What are your best practices?
Some info about my situation:
- SQL Server 2005
- We have N amount of "client" databases with identical schemas (in theory, at least)
- We have a central "admin" database that references each client database and can hold configuration values
- This "admin/client" pattern is duplicated across multiple environments (dev/qa/stage/prod)
- Some users, like testers, need different rights based on evironment
- We frequently have to pull client db backups from one environment to restore on another for development or testing purposes
- We keep our stored procedures and scripts in source control and deploy in a build cycle
Right now my organization is chaotic and we don't follow good security practices. We have no formal DBA. However, if we got any more complex it would be a constant hassle to maintain it all the time. I could see migrating to a new server or recovering from disaster being extremely time consuming if we where to attempt configuring it directly through the management studio IDE.