Authentication BasicsAuthentication is the process of confirming a user or computer’s identity. The process normally consists of four steps:
- The user makes a claim of identity, usually by providing a username. For example, I might make this claim by telling a database that my username is “mchapple”.
- The system challenges the user to prove his or her identity. The most common challenge is a request for a password.
- The user responds to the challenge by providing the requested proof. In this example, I would provide the database with my password
- The system verifies that the user has provided acceptable proof by, for example, checking the password against a local password database or using a centralized authentication server
SQL Server Authentication ModesSQL Server 2008 offers two authentication mode options:
- Windows authentication mode requires users to provide a valid Windows username and password to access the database server. In enterprise environments, these credentials are normally Active Directory domain credentials.
- Mixed authentication mode allows the use of Windows credentials but supplements them with local SQL Server user accounts that the administrator may create and maintain within SQL Server.
Selecting an Authentication ModeMicrosoft’s best practice recommendation is that you use Windows authentication mode whenever possible. The main benefit is that the use of this mode allows you to centralize account administration for your entire enterprise in a single place: Active Directory. This dramatically reduces the chances of error or oversight.
For example, consider the scenario where a trusted database administrator leaves your organization on unfriendly terms. If you use Windows authentication mode, revoking that user’s access takes place automatically when you disable or remove the DBA’s Active Directory account. If you use mixed authentication mode, you not only need to disable the DBA’s Windows account, but you also need to comb through the local user listings on each database server to ensure that no local accounts exist where the DBA may know the password. That’s a lot of work!
In conclusion, I suggest that you heed Microsoft’s advice and implement Windows authentication mode for your SQL Server databases whenever possible.