SQL Server 2000 Desktop Engine (MSDE 2000)是建立在SQL Server的核心技术基础上的数据引擎。通过提供针对于单/双处理器桌面级计算机的支持,MSDE 2000可以为企业级应用的桌面扩展提供可靠的存储引擎和查询处理器。基于SQL Sever与MSDE 2000共同的技术基础,开发者可以将创建的数据库应用无缝地应用于自便携机至集群的各类平台。可以说 (MSDE 2000)是相对于Microsoft Jet的另一种数据存储与管理方案的选择。你可以把MSDE 2000视作一种C/S架构的数据库访问方式,它可以直接安装在WINXP中,而无须专门服务器的支持。但在WINXP+MSDE2000使用过程中会出现一些问题,本文就这些具体问题给出解决方案。
一、安装问题
有的使用者可能不需要MSDE默认安装,而需要指定程序目录、数据目录,甚至实例名称,那么就应该在安装之前,修改一下安装文件目录中的SETUP.INI文件,如:
[options]
TARGETDIR ="d:\setup\msde\binn"   //程序文件目录
DATADIR ="d:\setup\msde\data"   //数据文件目录
INSTANCENAME ="EDU"   //实例名称为EDU,安装命名实例可以避免和用户计算机上可能存在的sql server发生冲突
SECURITYMODE =sql    //验证模式为混合模式
SAPWD="123456"       //SA密码为123456,如果此句使用USEDEFAULTSAPWD,则密码为空
DISABLENETWORKPROTOCOLS=0  //是否关闭网络联结 0=否
UPGRADE=1 //是否是升級
二、密码安全问题
MSDE默认安装后其Sa的密码为空,这样对数据安全有一定影响,因为MSDE2000是简化版本,所以MSDE不提供图形化管理工具,因此如何设置MSDE2000的Sa密码,是一些管理员比较关心的问题。
修改密码前一定要切换SQL的身份验证方式,默认的SQL身份验证方式是Windows账户模式,要改为采用SQL身份验证。具体步骤如下:
1. 先停止 MSSQLSERVER 以及所有其他相关服务(如 SQLSERVERAgent)。
2. 打开注册表编辑器。
3. 找到以下两个子项之一(取决于 MSDE 是作为默认 MSDE 实例安装的还是作为命名实例安装的):
HKEY_LOCAL_MACHINE\\Software\\Microsoft\\MSSqlserver\\MSSqlServer
或者
HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Microsoft SQL Server\\<Instance Name>\\MSSQLServer\\
其中Instance Name为实例名称
4. 在右窗格中,双击 LoginMode 子项。
5. 在 DWORD 编辑器对话框中,将此子项的值设置为 2。确保选择了Hex 选项,然后单击确定。 (默认情况下,Windows LoginMode 注册表子项的值设置为 1。如果启用SQL的身份验证模式,则此值为 2。)
6. 重新启动 MSSQLSERVER 和 SQLSERVERAgent 服务以使更改生效。至此,SQL验证模式切换完毕。
启动命令提示符窗口,键入以下字符:
osql -U sa -Q  "sp_password NULL","qhdedu" , "Sa"
回车后会提示键入原密码,因为原密码为空,所以直接回车即可,系统会提示“密码已更改”。
此时如果在命令提示符下键入:
Osql –U Sa –p qhdedu   (回车)
即可登录SQL,命令提示符变为:1>
再键入EXIT,即可退出。
三、VB连接MSDE 2000的问题
在实际开发中,如何具体连接MSDE2000是程序员与管理员很关心的问题,其实MSDE的连接与SQL SERVER的连接基本相同,下面给出具体代码:
MLPA = "123456"  ‘密码
MLid = "Sa"   ‘用户名
MLIP = "127.0.0.1"   ‘服务器IP名名称
ODBC1 = "Master"   ‘数据库名称
connstr = "Provider=SQLOLEDB.1;Password=" & MLPA & ";Persist Security Info=True;User ID=" & MLid & ";Initial Catalog=" & ODBC1 & ";Data Source=" & MLIP
Set conn = CreateObject("ADODB.CONNECTION")
conn.Open connstr
Set rs = CreateObject("adodb.recordset")
SQL = "select   *   from   sysdatabases"
rs.Open SQL, conn, 3, 2
四、网络连接的问题
很多时候需要从MSDE2000非宿主机上通过网络访问宿主机的MSDE,这时可能会出现明明用户名、密码、IP地址都正确,就是无法访问,这种问题一般出在非宿主机Windows 登录帐号上,一定要保证宿主机上存在非宿主机当前登录的同名帐号且登录密码相同,这样才能正常访问,而且MSDE最多支持五个用户。

文章如转载,请注明转载自:http://www.5iadmin.com/post/569.html