关于SQL EXPRESS 2005的连接问题

默认情况下,SQL Server Express 作为一个名为“SQLEXPRESS”的实例安装。通过在连接字符串中指定带有服务器名称的实例名,可以连接到已命名的实例。这就是在连接到本地 SQL Server Express 数据库时通常将“.\SQLEXPRESS”指定为服务器名的原因。点(.)意味着本地服务器,\SQLEXPRESS 指定了 SQLEXPRESS 命名实例。SQL Server 服务 (sqlservr.exe) 作为 Microsoft Windows 服务运行,并且在指定为 Windows 服务管理器中的服务帐户的用户上下文中执行。对于 SQL Server Express,该帐户默认为“NT AUTHORITY\NETWORK SERVICE”,在安装期间可以指定其他帐户。

以下是连接字符串中需要注意的一些问题。

数据源为 .\SQLEXPRESS。用户实例由 SQL Server Express 父实例创建,因此初始连接必须指定父实例。
• AttachDBFilename 用于指定要附加到用户实例的数据库。
• Integrated Security 为 True。用户实例仅与集成安全性一起使用,带有用户名和密码的 SQL Server 用户不起作用。
• 提供程序名为 System.Data.SqlClient。User Instance 选项仅在 SqlClient 连接字符串上有效。

当包含该连接字符串的连接成功打开时,用户应用程序连接到一个以打开该连接的用户身份运行的 SQL Server Express 用户实例。该用户连接到“database1.mdf”文件中的数据库。如果 Sally 打开该连接,则用户实例运行,Sally 作为服务帐户。由于 Sally 是该实例的服务账户,因此 Sally 具有该用户实例连接的所有数据库的完全管理员权限,即使她不是 Windows 管理员。这就是即使 Sally 是普通用户,AttachDBFilename 选项也能运行的原因。

网络支持

默认情况下,SQL Server Express 只能访问本地计算机上的共享内存连接类型。SQL Server Express 不支持 VIA 协议和 HTTP 协议。因为默认情况下只能使用共享内存,所以除非打开网络,否则无法从远程计算机连接到 SQL Server Express。可以通过以下方式打开网络:

使用外围应用配置器工具启用网络,并启用和启动 SQLBROWSER 服务。
使用 SQL Server 配置管理器启用相关协议,并启动 SQL Browser。图 2 介绍了如何使用此工具启用网络协议。
• 如果您预先知道需要网络支持,请在安装命令行中使用 DISABLENETWORKPROTOCOLS=0。
• 使用基于 SMO 的脚本启用协议。

SQL Server 2005 中,SQL Browser 是一项新服务,用于标识命名实例监听的端口。由于共享内存不使用该服务,因此默认情况下,该服务在 SQL Server Express 中处于关闭状态。这意味着用户必须启动该服务,网络访问才可以进行。

数据访问支持

SQL Server 2005 Express 支持的本机提供程序和托管提供程序与其他 SQL Server 2005 版本相同。这样会有巨大的好处:为 SQL Server Express 编写的应用程序可以无缝用于其他 SQL Server 版本。

SQL Server 2005 Express 支持使用 ADO.NET 进行托管访问。我们建议您使用 SqlClient 数据提供程序来开发新的应用程序,因为大多数应用程序 XCopy 功能仅能与 SqlClient 一起使用。ADO.NET 2.0 数据提供程序(Visual Studio 2005 中提供)支持 varchar(MAX) 和 XML 之类的新 SQL Server 数据类型以及用户定义类型。

SQL Server 2005 开始,服务器中的逻辑会话与物理连接分离。客户端传输层和服务器传输层都将更新为提供多路复用功能,这样只使用一个物理连接就可以建立多个逻辑会话。这使得客户端针对同一个连接可以有多个活动的结果集 (MARS)。请注意,一般而言,MARS 并不是为了避免使用多个连接。在 SQL Server 2005 中,MARS 默认情况下处于关闭状态,使用 MARS 可以交替执行 SQL 操作。例如,您可以对一个结果集进行操作,也可以在处理该结果集时对数据库执行语句,而无需打开新的连接。在许多情况下,MARS 可以有效替代服务器游标,当数据检索操作和更新操作在同一个事务中进行时,尤为有用。

SQL Server 2005 客户端也支持异步输入输出 (I/O),这样应用程序线程不会再被数据传输操作阻塞,客户端应用程序就可以尽快作出响应。在这种模式下,I/O 调用将会立即返回,完成后将异步通知应用程序。这使得应用程序可以继续其他处理过程,并在以后检查 I/O 完成事件。

SQL Server 2005 时间范围内的数据访问组件将分成两部分:MDAC 堆栈(属于操作系统)和 SQL Native Client 提供程序(向 SQL Server 提供用于本机数据访问的特定数据访问库)。SQL Native Client 针对 SQL OLEDB、SQL ODBC 和 ADO 客户,这些客户正在编写新的应用程序或增强现有应用程序以利用 SQL Server 2005 的新功能。

SQL Native Client 将 SQL Server 2005 添加项包含到 SQL OLE DB、SQL ODBC、SQL BCP 和 SQL 网络接口。只有 C 或 C++ 程序员才可以通过 SQL Native Client 使用 SQL Server 2005 功能,例如 MARS、用户定义类型、XML 数据类型等。SQL Native Client 由新的组件构成(新类 ID),这些组件独立于 MDAC 中的现有组件,并且与其不同。例如,使用的 OLE DB Progid 是 SQLNCLI;ODBC 驱动程序名称是 SQL Native Client;使用的头文件是 SQLNCLI.h。

SQL Native Client 作为单个 dll (SQLNCLI.dll) 提供,而不作为操作系统组件提供,这样可以简化服务,使重新发布和部署应用程序变得更轻松。随着新版 SQL Server 的发布,将会提供更新的 SQL Native Client 版本,应用程序可以显式更改其配置清单以使用较此提供程序的更高版本。

在 MDAC 提供程序和 SQL Native Client 提供程序之间存在一些基于交互的有趣动态。例如,MDAC 2.5、2.7 或 2.8 无法使用共享内存连接到 SQL Server 2005。这会影响使用 SQL OLE DB 或 SQL ODBC 的所有本机应用程序,不仅包括现有本机应用程序,而且还包括托管的 OLE DB 或 ODBC 应用程序,因为它们在内部都使用了 MDAC。通常,对于 SQL Server,如果共享内存连接失败,将使用网络协议(例如 TCP/IP)。但是,对于 SQL Server Express,因为网络在默认情况下是关闭的,所以这些应用程序将完全无法连接。解决办法是:将应用程序改为使用 SQL Native Client 提供程序,或者启用网络传输控制协议 (TCP) 并启动 SQL Browser。

安全性

对于 SQL Server Express,我们的一个目标是为不同组件提供安全的默认值。例如,关闭网络协议(如 TCP/IP 和 Named Pipes)。不启动 SQL Browser 服务,除非用户在安装命令行中显式请求启动。如果使用 Windows 身份验证,则默认情况下禁用 SA 帐户或系统管理员帐户。计算机上的普通用户几乎没有对 SQL Server Express 实例的权限。服务器上的本地管理员必须向普通用户显式授予相关权限,这些用户才能使用 SQL 功能。

SQL Server 中,SA 登录帐户是一个特殊的登录帐户,是系统管理员 (sysadmin) 角色的成员。主要用于使用 SQL 身份验证模式的配置中,而不用于 Windows 身份验证模式。出于安全原因,SQL 验证模式要求输入强 SA 密码,在 GUI 安装和无提示 SQL 身份验证模式安装期间,用户必须输入强 SA 密码。但是,对于无提示 Windows 身份验证安装,不需要 SA 密码。原因是使用 Windows 身份验证模式时,如果用户未指定密码,无提示 SQL Server Express 安装程序会提供一个随机的强 SA 密码。在这种情况下,安装程序也会禁用 SA 帐户,因此如果您想要使用 SA 帐户,必须稍后使用 T-SQL 显式启用该帐户。这样,在使用 Windows 身份验证时,ISV 就不必提供密码了,从而不会阻塞大规模部署情况。在将来的版本中,此功能可能还会扩展到基于 GUI Windows 的安装。

当您自己安装产品时,建议您使用 GUI 安装模式。通常,您可以从 Microsoft 站点下载 SQL Server Express,也可以从应用程序 CD 获得。

建议您在安装应用程序过程中安装 SQL Server Express 时使用无提示安装模式。在这种模式下,您可以验证计算机中是否存在名为 SQLEXPRESS 的实例,如果不存在,请进行无提示安装。有两种方法可以很容易地确定计算机上是否存在 SQL Server Express 实例:

SQL Windows Management Instrumentation (WMI) 提供程序中的 ServerInstance 包含 SQL 版本和版本信息。 
• T-SQL 命令 Select SERVERPROPERTY("ENGINEEDITION") 返回值 4,代表 SQL Server Express

您可以使用安装引导程序或 Visual Studio“单击一次”技术来包括 SQL Server Express Microsoft Windows Installer (MSI) 或 Web 下载文件 exe,这对于 ISV 特别有用。如果 SQLEXPRESS 实例已经存在,就不应该继续安装 SQL Server Express。需要注意的重要一点是:Microsoft 不支持 .msi 链接,因而不应该使用。SQL Server Express 也不支持合并模块。如果某个现有 MSDE 安装未显示在“控制面板”的“添加/删除程序”菜单中,则必须清除 SQL Server Express 的安装。

以下列出了一些常用的命令行参数。

• SAPWD 用于提供 SA 帐户的密码,主要与 SECURITYMODE=SQL 一起使用。SECURITYMODE=SQL 用于启用混合模式身份验证,对于提供强 SA 密码很重要。对于 Windows 身份验证,不需要此参数。
• ADDLOCAL=ALL 用于选择安装所有 SQL Server Express 组件。
• DISABLENETWORKPROTOCOLS 用于启用/禁用网络协议。默认情况下,值为 1,意味着默认情况下,禁用网络协议。使用 DISABLENETWORKPROTOCOLS=0 可以在实例中启用网络协议。
• /qn 用于无提示安装。
• INSTANCENAME 参数用于指定命名实例的名称。建议的默认值为 SQLEXPRESS。

转载于:https://www.cnblogs.com/snowfun516/archive/2011/08/18/2144827.html

关于SQL EXPRESS 2005的连接问题相关推荐

  1. SQL Server 2005远程连接和外围应用配置器修复

    开通SQL Server 2005远程连接 1.1         配置远程连接 默认情况下, SQLServerExpressEdition 2005 和 SQL Server 2005 开发版不允 ...

  2. 配置SQL Server 2005 远程连接(转)

    方法如下:  一.为 SQL Server 2005 启用远程连接 1. 单击"开始",依次选择"程序"."Microsoft SQL Server ...

  3. ASP.NET 2.0与SQL Express 2005在迁移到Windows 2003时发生数据库为只读的错误

    ASP.NET 2.0和SQL Server Express 2005结合进行网站开发时,在VS 2005中运行时没有任何问题.当网站发布在Win Server 2003时,就会出现数据库无法访问的错 ...

  4. SQL Server 2005 无法连接到服务器,error:26

    步骤1:在SQLServer 实例上启用远程连接1.指向"开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围 ...

  5. SQL Server 2005无法连接问题的解决办法

    今天早上准备开SQL SERVER2005搞下实验,谁知道打开后连接不上,提示: 在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许 ...

  6. 发现一个问题,可能是Sql Express 2005的Bug

    在我写的一个存储过程中,为了利用数据库中保存的表和字段的说明这个扩展属性(MS_description),使用到了fn_listextendedproperty这个系统函数(说到这个函数,先鄙视下微软 ...

  7. SQL SERVER 2005无法远程连接的问题

    SQL SERVER 2005无法远程连接的问题 2009-11-03 16:30 连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 ...

  8. 浅析SQL Server 2005中的主动式通知机制

    一.引言 在开发多人同时访问的Web应用程序(其实不只这类程序)时,开发人员往往会在缓存策略的设计上狠下功夫.这是因为,如果将这种环境下不常变更的数据临时存放在应用程序服务器或是用户机器上的话,可以避 ...

  9. 如何设置网络访问 SQL Express?

    网络访问 SQL Express 安全和连接 SQL Server 配置 Windows 防火墙配置 连接服务器 一旦在本地计算机上设置了 SQL Express,就可以允许网络成员进行远程连接.有不 ...

最新文章

  1. python中*的用法
  2. 《github一天一道算法题》:分治法求数组最大连续子序列和
  3. Javascript非构造函数的继承
  4. linux下nginx与php设置开机启动代码
  5. python中F/f表达式优于format()表达式
  6. Implementation:Bellman-ford
  7. stm32使用DAP下载程序
  8. 抖音回应“天价烤虾”事件:已经在调查违规广告主
  9. 开发技术理论学习与实践的关系
  10. 机器学习-线性回归scikit-learn
  11. 黑马程序员_Java学习日记num8
  12. Android天天数钱游戏源码
  13. 21世纪大学生之你是属于哪种看网课。
  14. 用计算机画函数图像教案,函数的图像的教案
  15. Python爬虫【urllib3模块】和【requests模块】
  16. C++ Test的使用
  17. mysql-DTL语言
  18. kindle长时间不用,屏幕显示电池感叹号,一直充电没反应,试了网上的方法都不好用,到亚马逊官网找到了解决办法
  19. 电脑win10系统如何开定位服务器,win10系统下如何打开/关闭定位?windows10打开/关闭定位图文教程...
  20. python爬带用户名密码的网页_python爬虫:使用账号、密码和验证码登录知乎网页...

热门文章

  1. 转:55个javascript处理网页技巧
  2. python面试题(5)--- 检测 字符串 是否可以转换成 数字
  3. Js中String对象
  4. 什么命令能把Linux搞死机,Linux常见死机原因
  5. 节日礼物指南:清单上适合学习者,探索者或修补匠的书籍
  6. Lovesource博士:或者我是如何学会不再担心和热爱开放的
  7. 实时录制视频,实时去除人_录制实时演示,第2部分:软件设置
  8. roi计算_计算开放式硬件项目的ROI的6个步骤
  9. JavaScript 通过字符串获取function
  10. es6 next()方法的参数