Answers:
客户端应用程序连接到Microsoft SQL Server 2005实例以使用SQL Server数据库。每个SQL Server实例由一组具有独特设置的独特服务组成。目录结构,注册表结构和服务名称都反映了您在安装过程中标识的特定实例名称。
实例可以是默认的未命名实例,也可以是命名实例。在默认实例中安装SQL Server 2005时,不需要客户端指定实例名称即可建立连接。客户端只需知道服务器名称。
命名实例由计算机的网络名称加上您在安装过程中指定的实例名称来标识。客户端在连接时必须同时指定服务器名称和实例名称。
默认情况下,除非您指定实例名称,否则SQL Server将安装在默认实例中。但是,除非在安装过程中强制执行默认安装,否则SQL Server Express始终会安装在命名实例中。
另外,您只能安装一个默认实例(未命名实例),但可以安装许多命名实例。
许多第三方软件通常会使用默认的命名实例,尽管他们可能没有提及。从上面的答案中可以清楚地看到原因,标准版本默认情况下安装未命名实例,而Express版本默认情况下安装命名实例。
从这个角度了解差异是很重要的,因为如果您正在运行2或3个DB Server,则可能永远无法连接到正确的版本。因为第三方软件在您认为默认实例是它尝试连接的SQLEXPRESS实例时正在寻找它。如果您不知道如何连接到命名实例与未命名实例,则可以大大增加故障排除时间。
因此,如果要连接到命名或未命名版本,请遵循以下准则。
MY-MACHINE-NAME\SQLEXPRESS /* named version - correct */
MY-MACHINE-NAME /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */
请注意,即使默认实例具有名称,也不能通过其名称引用它!
最好的原因之一是数据库分离。如果您正在开发自己的应用程序并使用它包装SQL Express,则将其安装到自己的实例中是很有意义的。此外,如果用户愿意,还可以选择指定现有的SQL安装。
如果您有一个非常重要的数据库,希望确保没有其他人可以访问,则可以使用非常有限的安全授权将其放入自己的实例中。假设这是您的产品数据库,然后将其复制到同一服务器上**的报告数据库**,该服务器仅对人员开放。尽管将用户(管理员)错误限制为只有少数几个人,但用户意外地可以访问生产数据库的可能性很小,但该人实际上只能将能够更新生产实例上的安全组的人员限制为只有少数人。
**优良作法是将报告服务器设置为单独的计算机,但我仅以此为例。