![]() |
Database »
Database »
General
Beginner
Hands on how to configure the Microsoft MSDEBy Lars-Inge TønnessenAn article on how to setup and configure the MSFT MSDE 2000. |
C++, SQLWin2K, WinXP, Win2003, Visual-Studio, SQL2000, DBA, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
This article describes how to configure the Microsoft MSDE database engine. Below you will find an overview of the topics.
MSDE is a limited version of the Microsoft SQL Server. In short, it is the Microsoft SQL Server 2000 database engine without any of the fancy UI tools, and with some limitations in the database size and the number of connections. The MSDE database is free, and can be distributed embedded in your own applications or as a small stand alone SQL server. It is ideal for small websites and small businesses with less than 25 simultaneous users. The database is limited to 2 GB of data storage space, but you can easily upgrade it to a full Microsoft SQL Server without any limitations. Among the choices are, a standard edition or an enterprise edition. An MSDE database is a good and affordable starting point for any business, organization or even home solutions. The database does not have to be installed on the hard drive on the deployment computer, but it could be running from a CD-ROM.
There are some limitations to a MSDE database. You don�t get:
This is what you get:
The MSDE can be downloaded from the Microsoft web site for free. Download the archive and uncompress it to a folder on your hard drive. There are four different ways to run the MSDE depending on how you want to access the database. They are all listed below.
You can configure the MSDE in three different ways:
The four different running modes are:
Please use Windows authentication whenever possible. SQL mode will send the login and the password information over the network in plain text. This means it can be sniffed by intruders or hackers. Windows authentication uses SSPI which you can read more about on these web pages MSDN [1], and MSDN [2]. A default installation will disable the network access and uses the Windows authentication mode.
Before you start the installation of the MSDE, disable Norton Antivirus and the Internet Security Pack. You will enable it after the installation has completed. Norton Antivirus will not let you install the MSDE successfully, when enabled.
In all of our examples, we will be using �password� for the system administrator, and �myinstance� for the database instance.
You can run configure the MSDE by giving arguments to the setup.exe file on a command prompt.
Example 1 (Win access over a network).
In this example, we will be using Win authentication, because we do not want to send the username and password in plain text over the network. Only Windows applications and .NET applications can access the database. The application uses automatically the login name and password on the client computer to login to the MSDE.
C:\...MSDE\>Setup.exe DISABLENETWORKPROTOCOLS=0
SAPWD="password "INSTANCENAME="myinstance"
Example 2 (Java and Win access over a network):
In this example, we will be using the mixed mode authentication, because we want to access the database from both Windows applications and Java applications over a network. The username and password will be sent over the network in plain text.
C:\...MSDE\>Setup.exe DISABLENETWORKPROTOCOLS=0
SAPWD="password " INSTANCENAME="myinstance" SECURITYMODE=SQL
Example 3 (Local Java and Win access only):
In this example, we will not be granting access from the network. Only local applications can access the database. We will be using mixed mode authentication for Java applications.
C:\...MSDE\>Setup.exe SAPWD="password "INSTANCENAME="myinstance" SECURITYMODE=SQL
Example 4 (Local Win access only):
In this example, we will not grant network access to the database. We will also only grant Win authentication access. This is the most secure setup, and should be used for embedded MSDE applications.
C:\...MSDE\>Setup.exe SAPWD="password " INSTANCENAME="myinstance"
You will find a file called �setup.ini� in the MSDE folder, if you want to use a pre configured setup file. Please remember that anyone with read access to this file can see the system administrator password if this is an issue. The file looks like this:
[Options]
Here you will enter the configuration arguments.
Example 1 (Java and Win access over a network):
In this example, we will be using mixed mode authentication, because we want to access the database from both Windows applications and Java applications over a network. The username and password will be sent over the network in plain text.
[Options]
DISABLENETWORKPROTOCOLS=0
SAPWD="password "
INSTANCENAME="myinstance"
SECURITYMODE=SQL
To install MSDE, run the �setup.exe� install application.
Example 2 (Win access over a network):
In this example, we will be using Win authentication, because we do not want to send the username and password in plain text over the network. Only Windows applications and .NET applications can access the database. The application uses automatically the login name and password on the client computer to login to the MSDE.
[Options]
DISABLENETWORKPROTOCOLS=0
SAPWD="password "
INSTANCENAME="myinstance"
To install MSDE, run the �setup.exe� install application.
Example 3 (Local Java and Win access only):
In this example, we will not be granting access from the network. Only local applications can access the database. We will be using mixed mode authentication for Java applications.
[Options]
SAPWD="password "
INSTANCENAME="myinstance"
SECURITYMODE=SQL
To install MSDE, run the �setup.exe� install application.
Example 4 (Local Win access only):
In this example, we will not grant network access to the database. We will also only grant Win authentication access. This is the most secure setup, and should be used for embedded MSDE applications.
[Options]
SAPWD="password "
INSTANCENAME="myinstance"
To install MSDE, run the �setup.exe� install application.
It is possible to reconfigure the authentication mode for an already installed instance of the MSDE, through the registry. Stop the database instance in the Control Panel (�Administrative Tools� and �Services�). Open the �regedt32.exe�, and locate the �HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\myinstance\MSSQLServer� and the key �LoginMode�. For Windows authentication, set this key to �1�; for SQL authentication, set this key to �0� (or �2�?). Restart the database instance in the Control Panel (�Administrative Tools� and �Services�).
Login to the MSDE using the osql tool:
Using Win authentication:
C:\> osql �E �S localhost\myinstance
1> use master
2> go
1> exec sp_password @old = null, @new = �newpassword�, @loginame = 'sa'
2> go
Password changed.
1>quit
Using SQL authentication:
C:\> osql �U sa �P password �S localhost\myinstance
1> use master
2> go
1> exec sp_password @old = null, @new = �newpassword�, @loginame = 'sa'
2> go
Password changed.
1>quit
Run the SQL Server network utility. Open a command prompt and type:
C:\> svrnetcn.exe
Enable the �Named Pipes� protocol and the �TCP/IP� protocol. Click on �Properties� on the �TCP/IP� protocol. Here, you will configure the default port MSDE will be listening on if you want network access. Default is 1433.
Run the SQL Server client network utility. Open a command prompt and type:
C:\> cliconfg.exe
Enable the �Named Pipes� and the �TCP/IP� protocols. Click on �Properties� on the �TCP/IP� protocol. Here you configure the port number you found with the �svrnetcn.exe� utility. Default is 1433.
Add an alias for the �Named Pipes� and the �TCP/IP� under the �Alias� box. You will use an alias if you do not want to configure all applications to a specific configuration. The client just accesses the alias, and the client utility will map the request to the right configuration.
Let�s start the MSDE. Open the Control Panel, the Administrative Tools and the �Services� utility. Find the instance �MSSQL$MYINSTANCE� in the list. Right click it, and choose �Start�. Startup type should be �Automatic�.
OK, the MSDE should now be up and running. Let�s test it. Run the osql tool.
C:\> osql �E �S localhost\myinstance
1: select @@VERSION
2: go
3: quit
8.00.194 - MSDE 2000
8.00.384 - MSDE 2000 SP1
8.00.534 - MSDE 2000 SP2
8.00.760 - MSDE 2000 SP3
By default, the MSDE has four databases installed. These databases are:
You should not use any of these databases for any application purposes. They are holy land as far as the applications know it. They are out of reach, simple as that. Create a new database to store your application data.
Let us create a database with the name �Books�. First of all, you must login as a system administrator (sa) or as a user with dbcreator privileges. Open the osql administration utility and login as system administrator.
C:\> osql �U sa �P password �S localhost\myinstance
Or
C:\> osql �E �S localhost\myinstance
1> use master
2:> go
1> CREATE DATABASE Books
2> go
The CREATE DATABASE process is allocating 0.63 MB on disk 'Books'.
The CREATE DATABASE process is allocating 0.49 MB on disk 'Books_log'.
1> use master
2:> go
1> DROP DATABASE Books
2> go
Deleting database file 'C:\Program Files\Microsoft SQL
Server\MSSQL$MYINSTANCE\Data\Books_log.LDF'.
Deleting database file 'C:\Program Files\Microsoft SQL
Server\MSSQL$MYINSTANCE\Data\Books.mdf'.
1> use master
2> go
1> CREATE DATABASE Books
2> ON
3> ( NAME = books_dat,
4> FILENAME = 'D:\Database\books.mdf' )
5> go
The CREATE DATABASE process is allocating 0.63 MB on disk 'books_dat'.
The CREATE DATABASE process is allocating 0.49 MB on disk 'Books_log'.
1> use master
2> go
1> CREATE DATABASE Books
2> ON
3> ( NAME = books_dat,
4> FILENAME = 'D:\Database\books.mdf',
5> SIZE = 10,
6> MAXSIZE = 100,
7> FILEGROWTH = 5 )
8> go
The CREATE DATABASE process is allocating 10.00 MB on disk 'books_dat'.
The CREATE DATABASE process is allocating 2.50 MB on disk 'Books_log'.
1> use master
2> go
1> CREATE DATABASE Books
2> ON
3> ( NAME = Books_dat,
4> FILENAME = 'D:\Database\books.mdf',
5> SIZE = 10,
6> MAXSIZE = 100,
7> FILEGROWTH = 5 )
8> LOG ON
9> ( NAME = 'Books_log',
10> FILENAME = 'D:\Database\bookslog.ldf',
11> SIZE = 5,
12> MAXSIZE = 50,
13> FILEGROWTH = 2 )
14> go
The CREATE DATABASE process is allocating 10.00 MB on disk 'Books_dat'.
The CREATE DATABASE process is allocating 5.00 MB on disk 'Books_log'.
If you want to list all the databases in the instance, please open the osql utility and do the following query:
C:\ >osql -E -S localhost\myinstance
1> use master
2> go
1> select name from sysdatabases
2> go
name
------------------------------------
master
tempdb
model
msdb
test
Products
(6 rows affected)
In this example, I have created two databases: test and Products.
To detach a database called larsinge from the system, please do the following:
1> exec sp_detach_db 'larsinge'
2> go
In this example, we detached a database called �larsinge�. The database can now be moved, backed-up, or you can do whatever you want to do with the files.
Simply do this to connect a database called larsinge:
1> exec sp_attach_db @dbname = 'larsinge',
2> @filename1 =
'C:\Program Files\Microsoft SQL Server\MSSQL$LITBASE\Data\larsinge.mdf',
3> @filename2 =
'C:\Program Files\Microsoft SQL Server\MSSQL$LITBASE\Data\larsinge_log.LDF'
4> go
If you want to list all tables in an instance, please open the osql utility and do the following query:
C:\ >osql -E -S localhost\myinstance
1> use Products
2> go
1> select name from sysobjects where type = 'U'
In this example, we list all tables in the Products database in the myinstance. Type �U� means �User Table�. Please try to change type to �S� if you want to list out all System tables.
C:\ >osql -E -S localhost\myinstance
1> use Products
2> go
1> select name from sysobjects where type = 'S'
Add and grant user access to the database.
This will add a new SQL login user �lars� with the password �pass45� and set the default database to �larsinge�. After creating the user, remember to grant access to the database and the tables for the user.
1> use master
2> go
1> EXEC sp_addlogin 'lars', 'pass45', 'larsinge'
2> go
New login created.
Grant access to the database:
1> use larsinge
2> go
1> EXEC sp_grantdbaccess 'lars'
2> go
Granted database access to 'lars'.
1> grant all on table_name to lars
2> go
Database name is �larsinge�, the Win auth user is �TARGUS\testuser�:
1> use larsinge
2> go
1> exec sp_grantdbaccess 'TARGUS\testuser'
2> go
Granted database access to 'TARGUS\testuser'.
Please open the osql utility, and do the following query to list all users in the Products database:
1> use Products
2> go
1> select name from sysusers
2> go
This is how you revoke a user �lars� access to the database �larsinge�.
1> use larsinge
2> go
1> exec sp_revokedbaccess 'lars'
2> go
1> quit
General
News
Question
Answer
Joke
Rant
Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads.
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 14 Nov 2004 Editor: Smitha Vijayan |
Copyright 2004 by Lars-Inge Tønnessen Everything else Copyright © CodeProject, 1999-2010 Web17 | Advertise on the Code Project |