MSDE security and authentication

Article translations Article translations
Article ID: 325022 - View products that this article applies to.
This article was previously published under Q325022
Expand all | Collapse all

On This Page

SUMMARY

System administrators and developers must consider security and authentication issues because users who are not authorized can destroy, steal, or otherwise gain access to data. This article gives you an overview of Microsoft Desktop Engine (MSDE) Security and Authentication and some helpful tips about how to make your data more secure.

MORE INFORMATION

Security

To secure your database, you must understand your users. Users can have many different purposes when they connect to your database. Users can read the data, change the data, delete the data, and insert more data. The first step to secure your database is to decide what activities each user is permitted to perform on the database.

Users, groups, and roles

SQL Server and MSDE have Users, Groups, and Roles that you can use to control the level of security on the database. If a particular group of users only have to read the data from the database, you can create a group named OnlyReaders, and then add the users to this group. The users who are members of this group can only read the data; they cannot change the data, whether intentionally or by accident.

To learn more about Users, Groups, and Roles, see the SQL Server Books Online. To add Users, Groups, and Roles on an MSDE database, use the OSQL utility.

SA account password

Another simple step to make your database more secure is to verify that the SA account has a secure password. Many developers and system administrators leave the SA account password blank, which permits anyone to gain access to the database.

To change the SA account password on your MSDE database, follow these steps:
  1. On the computer that is hosting the instance of MSDE that you are connecting to, open a command prompt window.
  2. Type the following command, and then press ENTER:

    osql -U sa

    This command connects you to the local, default instance of MSDE by using the SA account.
  3. Type the following commands on separate lines, and then press ENTER:

    sp_password null
    'mynewpassword'
    'sa'

    Note Replace 'mynewpassword' with the new password.

    Note that you receive the following message, which indicates that your password was changed successfully:
    Password changed.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
325003 How to manage the SQL Server Desktop Engine (MSDE 2000) by using the Osql utility

Security in ASP

Security in Active Server Pages is as important as security for Windows-based programs. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
176377 Accessing SQL Server with Integrated Security from ASP

Security patches

To maintain security, you not only have to manage users, groups, and roles, but you also have to verify that you have installed the latest patches on your database server. Security patches are available for download for SQL Server and MSDE. Microsoft recommends that you install these patches immediately. For more information, visit the following Microsoft Web site:
Microsoft Security Bulletin MS02-034
http://www.microsoft.com/technet/security/bulletin/MS02-034.mspx

Note We recommend that you install SQL Server 2000 Service Pack 3 (SP3) or SQL Server 2000 SP4. Service packs include more updates, and Microsoft Security Bulletin MS02-034 is included in the two service packs. For more information about how to obtain SQL Server 2000 SP3 or SQL Server 2000 SP4, click the following article number to view the article in the Microsoft Knowledge Base:
290211 How to obtain the latest SQL Server 2000 service pack


This is a cumulative patch that includes the functionality of all of the patches that have been released previously for SQL Server 2000. Also, this patch fixes the following three newly discovered vulnerabilities that affect SQL Server 2000 and SQL Server Desktop Engine (also known as MSDE 2000). (These vulnerabilities do not affect any previous versions of SQL Server or MSDE.):
  • A buffer overrun vulnerability in a procedure that is used to encrypt SQL Server credential information. A user who is not authorized can use this vulnerability to gain significant control over the database. It is possible for the user to gain control of the server itself, but this depends on the account that SQL Server uses.
  • A buffer overrun vulnerability in a procedure that relates to the bulk insert of data in SQL Server tables. A user who is not authorized can use this vulnerability to gain significant control over the database. It is possible for the user to gain control of the server itself.
  • An administrative credentials elevation vulnerability that occurs because of incorrect rights on the Registry key that stores the SQL Server service account information. A user who is not authorized can use this vulnerability to gain more rights on the system than system administrator has give to the user's account. It is possible for the user to get the same rights as the operating system. For more information, visit the following Microsoft Web site:
    Microsoft Security Bulletin MS02-035
    http://www.microsoft.com/technet/security/bulletin/MS02-035.mspx
When you install SQL Server 7.0 (including MSDE 1.0), SQL Server 2000, or a service pack for SQL Server 7.0 or SQL Server 2000, the information that you provide for the install process is collected and stored in a setup file named Setup.iss. You can use the Setup.iss file to automate the installation of additional SQL Server systems.

SQL Server 2000 also includes the ability to record an unattended install to the Setup.iss file without your having to actually perform an installation. The administrator who sets up the computer running SQL Server can give a password to the installation routine under the following circumstances:
  • If you set up SQL Server to have Mixed Mode Authentication, you must give a password for the SQL Server administrator account (the SA account).
  • Whether you run SQL Server in Mixed Mode or in Windows Authentication Mode, you can require a User ID and a password to start up a SQL Server service account.
In either case, the password is stored in the Setup.iss file. Before the release of SQL Server 7.0 Service Pack 4, the passwords were stored in plain text. For SQL Server 7.0 Service Pack 4 and SQL Server 2000 Service Packs 1 and 2, the passwords are encrypted and then stored. Additionally, during the installation process, a log file is created that shows the results of the installation. The log file includes any passwords that were stored in the Setup.iss file.

Authentication

Authentication is a way for SQL Server and MSDE to check logins to verify that the user is permitted to connect to the server. There are two security modes that SQL Server and MSDE use: Windows Authentication and Mixed Mode.

Windows Authentication

Windows Authentication uses NTLM to connect to MSDE. If you log on as an Administrator to you computer, MSDE tries to authenticate you as an Administrator.

Mixed Mode Authentication

Mixed Mode Authentication permits you to log on to MSDE by using Windows Authentication or SQL Server authentication. SQL Server authentication permits you to create users in MSDE. When you develop programs, you include your user ID and your password in the connection string when you connect to MSDE. For more information about Authentication Modes, visit the following Microsoft Web site:
Authentication Modes
http://msdn2.microsoft.com/en-us/library/aa905171(SQL.80).aspx

Turn on Mixed Mode Authentication during installation

During installation, you can change the authentication mode that MSDE uses by running the installation with the following command parameter:
SECURITYMODE=SQL
This command parameter causes MSDE to install with Mixed Mode authentication. With this authentication mode, you can connect to MSDE by using Windows Authentication or SQL Server Authentication.

Note By default, for Windows NT and later, MSDE installs by using Windows Authentication. On computers running Windows 98, MSDE uses SQL authentication.

Turn on Mixed Mode Authentication after you install MSDE

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows


By default, the value of the LoginMode Windows registry subkey is set to 1 for Windows Authentication. To turn on Mixed Mode authentication after you install MSDE, you must change this value to 2. The location of the LoginMode subkey depends on whether you installed MSDE as the default MSDE instance or as a named instance.
  • If you installed MSDE as the default instance, the LoginMode subkey is located in the following registry subkey:
    HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode
  • If you installed MSDE as a named instance, the LoginMode subkey is located in the following registry subkey:
    HKLM\Software\Microsoft\Microsoft SQL Server\Instance Name \MSSQLServer\LoginMode
To change the value of LoginMode to 2, follow these steps:
  1. In Control Panel, open the Services tool, and then stop MSSQLSERVER and all other related services (such as SQLSERVERAgent).
  2. On the Start menu, click Run, type regedt32, and then click OK to start Registry Editor.
  3. Locate either of the following subkeys (depending on whether you installed MSDE as the default MSDE instance or as a named instance):
    • HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer\

      -or-
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Name\MSSQLServer\
  4. In the right pane, double-click the LoginMode subkey.
  5. In the DWORD Editor dialog box, set the value of this subkey to 2, verify that the Hex option is selected, and then click OK.
  6. Restart the MSSQLSERVER service and the SQLSERVERAgent service for this change to take effect.

REFERENCES

For more information, visit the following Microsoft Web sites:
Security & Privacy
http://www.microsoft.com/security
Managing Microsoft SQL Server Security with Microsoft Access
http://msdn2.microsoft.com/en-us/library/aa140013(office.10).aspx
SQL Server 2000 Security White Paper
http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sp3sec00.mspx
For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
259710 PRB: SQL Server Agent Fails to start on Windows 9x when you change the SA password
319930 How to connect to Microsoft Desktop Engine
313418 PRB: Unsecured SQL Server with blank (NULL) SA password leaves vulnerability to a worm
285097 How to change the default login authentication mode to SQL while installing SQL Server 2000 Desktop Engine by using Windows Installer
248683 Microsoft Data Engine Security recommendations for ISVs
321698 Cannot connect to MSDE 2000 by using ADO.NET with SQL Authentication

Properties

Article ID: 325022 - Last Review: March 22, 2007 - Revision: 5.3
APPLIES TO
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 7.0 Desktop Edition
Keywords: 
kbinfo kbsecurity KB325022
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com