我在SQL Server上相对缺乏经验,但我正在尝试解决其他人写的使用它的Delphi应用程序中的一些(非SQL Server相关的)逻辑和UI问题。目前正试图让开发环境正常运作。
这是环境:
开发机器:运行Windows XP的虚拟机(VMWare),使用桥接网络。可以连接到服务器机器上的文件夹/文件。我在这台机器上安装了旧版本的SQL Server 2005 Express。我可以使用SQL Server Management Studio Express从同一台机器连接到它,也可以通过我的Delphi组件(ADO,可以将表数据读/写到网格等)连接到它。
“服务器”(又称S1):实际上只是一个Windows XP工作站。我把一个骨头库存SQL Server 2008安装在它上面。自安装以来我已经为SQLEXPRESS启用了协议 - >使用Configuration Manager命名管道和TCP / IP,然后重新启动SQL Server服务。 SQL Server设置为使用Windows NT授权。这是我需要从Dev机器连接的机器和SQL Server实例。
我可以使用Management Studio从同一台机器连接到S1 SQL Server实例,但我无法从开发框连接到它,使用2005 Management Studio(我甚至不确定应该是可能给出不同的版本)或Delphi组件字符串构建器(使用OLDEDB Provider for SQL Server的TADOConnection)。当我尝试后者时,S1 SQL Server实例不会显示在下拉列表中,如果我手动键入S1 \ SQLEXPRESS,使用Windows NT集成安全性或指定的用户名和密码,我会收到以下错误:
---------------------------
Microsoft Data Link Error
---------------------------
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
---------------------------
OK
---------------------------
这是一个点对点网络;没有域控制器等。两台机器上的用户名和密码完全相同。
如何解决此问题?
=============================================== =
使用Andomar的指针和我在下面评论的链接(解释了Surface Server配置工具在SQL Server 2008中消失了),我在S1机器的SQL Server Management Studio设置中得到了这个,并将其设置如下,但仍然没有非本地连接能力。我错过了什么?
SAC settings http://img192.imageshack.us/img192/8784/sacsettings.jpg
SAC Settings close up http://img38.imageshack.us/img38/457/sacsettings2.jpg
答案 0 :(得分:2)
您需要确保服务器本身正在侦听远程连接。这可以使用SQL Server Surface Configuration Area工具完成。我只安装了2005,但是从您发布的屏幕截图中,您正在错误的区域工作。您需要为数据库引擎启用远程连接。您发布的属性与该设置无关。您将获得仅为TCP / IP或TCP / IP和命名管道添加它的选项。
此外,您需要确保SQL Browser service正在运行且必要的端口已打开。默认情况下,SQL Server将出现在随机端口上。 SQL Server Browser服务在固定端口(1434)上启动,并向客户端提供有关您正在查找的服务器正在运行的端口的信息。
这是必要的,因为您可以在一台计算机上运行多个SQL Server实例。
您可以设置SQL服务器以侦听特定端口,然后在绕过SQL Server浏览器的连接字符串中包含端口号,但这需要更多工作。
答案 1 :(得分:1)
默认情况下,SQL Server Express仅侦听本地主机。
您可以使用SQL Server Surface Configuration Area工具更改此设置。从启动屏幕,选择“Surface Area Configuration ...”在SQLEXPRESS实例下,打开“远程连接”。确保选中“本地和远程连接”。