SQLEXPRESS的连接字符串
搞了一晚上的SQLEXPRESS 连接字符串....就因为一个User Instance=True 没加...
样例
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KWJLDatabase.mdf;Integrated Security=True;User Instance=True;
下面是来自网上的文章.
<add name="applicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFileName=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
Integrated Security默认值是False,此时需要提供Uid和Pwd,即将以Sql Server 用户身份登陆数据库;如果设置为True,Yes 或 SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库。强烈推荐用后一种形式,安全性更高。
User Instance
A value that indicates whether to redirect the connection from the default SQL Server Express instance to a runtime-initiated instance running under the account of the caller.
曾经,要运行 SQL Server 数据库,就必须在实例下创建数据库,不管是直接创建、还是附加、还是还原,总之都得在实例下创建,但这造成一个问题,我们的权限不够高,无法将数据库附加或还原到 SQL Server,我们只是有 .mdf、.ldf 文件。
从 SQL Server 2005 开始,有了新选择
在连接字符串中使用 AttachDbFilename,可直接连接到一个数据库文件。比如是这样的:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Data.mdf;Integrated Security=True;User Instance=True
这里 User Instance 就是用户实例,为 True,表示使用用户实例。
那什么是用户实例呢?
先看看实例
再看用户实例
用户实例是对实例的扩展。用户实例与普通实例类似,但它是在需要的时候创建,而普通实例是在安装期间创建的。
- 用户实例必须由父实例创建,所以使用用户实例时,我们也不能省略 Data Source。
- 谁打开了数据库连接,谁就是这个用户实例的运行帐户,比如 IUSR_Cftea 运行着网站,它打开了带用户实例的数据库连接,那么这个用户实例就是以 IUSR_Cftea 运行的。
用户实例限制
- 仅允许本地连接。
- 不能复制用户实例。
- 分布式查询对远程数据库不起作用。
- 用户实例仅在 SQL Server 的 Express Edition 内运行。
更详细
以下来自 MSDN:
当打开一个 User Instance 选项为 True 的连接时会发生什么?下列步骤描述用户第一次打开一个用户实例连接时发生的情况。
- SQLClient 逻辑打开一个到 SQL Server Express 父实例(默认情况下是 .\SQLEXPRESS)的连接。
- SQL Server Express 检测到已经设置了 User Instance 选项且该用户没有用户实例。
- 将 master 和 msdb 系统数据库文件复制到用户的目录下。在 Sally 的示例中,该目录为: C:\Documents and Settings\Sally\Local Settings\Application
Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS
这些文件是从一个在安装父实例时创建的模板目录复制的。用户实例启动后,tempdb、日志和跟踪文件被写入这个相同的用户目录。 - 父实例模拟正在打开该连接的 Windows 用户,并且启动一个以该用户身份运行的 sqlservr.exe 副本。系统数据库的位置作为参数传递。生成实例的名称。例如: 69651E0A-5550-46。
- 为新实例创建一个命名管道数据库连接。该名称基于实例名。例如:
- \\.\pipe\69651E0A-5550-46\tsql\query.
将 AttachDBFilename 参数中指定的数据库文件附加到新实例,并用该文件的完整路径命名该文件: - [C:\MYDBPROJECTS\TESTVB1\TESTVB1\DATABASE1.MDF]
命名管道的名称传回到正在打开连接的 SqlClient。 - SqlClient 接收到该连接的名称后,关闭到父实例的连接。它使用返回的命名管道名打开一个到该用户实例的新连接。
一旦为特定用户创建了用户实例,就会保留系统数据库和命名管道。因此,在第一次连接后,后续连接就只需执行后两步操作了。
关闭到该实例的最后一个连接后,启动的 sqlservr.exe 进程还会继续运行一段时间。因此,如果打开其他连接,则不需要重新启动该进程。继续运行的时间长度是由 sp_configure 选项“用户实例超时”设置的。默认情况下,时间长度设为 60 分钟,但是您可以用 sp_configure 命令更改它。
此版本的 SQL Server 不支持用户实例登录标志
运行时可能会遇到错误“此版本的 SQL Server 不支持用户实例登录标志”,前面说了用户实例仅在 SQL Server 的 Express Edition 内运行,如果不是 Express 版本,就不能将 User Instance 设置为 True,或将其去掉。
SQLEXPRESS的连接字符串相关推荐
- ADO.NET入门教程(三) 连接字符串,你小觑了吗?
出处:http://www.cnblogs.com/liuhaorain/archive/2012/02/12/2347914.html 摘要 ADO.NET强大的优势在于对不同的数据源提供一致的访问 ...
- ADO.NET连接字符串
虽然有的字符串不会用到,但了解一下,还是有益的. 名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,My ...
- asp.net 连接字符串的多种写法
一.使用OleDbConnection对象连接OLE DB数据源 1.连接Access 数据库 Access 2000: "provider=Microsoft.Jet.Oledb.3.5; ...
- (转)LinqToSql的连接字符串自动调用配置文件中的连接字符串
LinqToSql会把连接字符串散落地写在多个位置,并且编译后就固定不可更改了. 于是带来了各种不方便.比如在一台机器上配置好的程序拿到另一台机器上,就不得不找出所有散落的连接字符串,然后一一修改才能 ...
- sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库
(给DotNet加星标,提升.Net技能) 转自:Ron.liang cnblogs.com/viter/p/10243577.html 前言 在 .NET Core 2.2中Microsoft.As ...
- .Net配置文件中数据库中连接字符串用法总结
一.如果是Access数据库有以下几种种写法: 如果是连接Access数据库 <?xml version="1.0" encoding="utf8" ...
- 各种数据库的连接字符串
各种数据库的连接字符串 ADO.NET连接字符串大全 ADO.NET连接字符串 名称 ADO.NET连接字符串 说明 ADO.NET连接字符串:SQL Server,SQL Server 2005,A ...
- 连接字符串的几种方式
View Code 由于Access是文件数据库,所以在ASP.NET需要能映射访问到Access文件: 方式一:appSettings中设置连接字符串web.config的配置方式一<appS ...
- [转]web.config保护连接字符串及其它设置信息
[转]web.config保护连接字符串及其它设置信息 本文英文原版及代码下载: http://www.asp.net/learn/data-access/tutorial-73-cs.aspx Sc ...
- asp.net mysql连接字符串_ASP.NET数据库连接字符串总结
关于数据库链接字符串的相关知识,我们介绍过很多,建议大家看看这两篇文章,<深入了解SQL Server连接字符串>和<MySql连接字符串的说明>,供参考.下面介绍ASP.NE ...
最新文章
- 入职后发现公司是外包全职_我如何通过全职工作,伴侣和3岁的双胞胎男孩打造产品...
- Unity中有两种Animation Clip
- Spring Boot开启的2种方式
- formValidator的一些验证实例
- 每日一笑 | 史上最贴心的骗子
- 用 RxSwift 实现通用的响应式转场
- 《Arduino家居安全系统构建实战》——1.7 小结
- get和post方式传递参数
- linux定时备份前一天,linux定时备份
- String类两种实例化方式的区别
- WordPress主题Ripro子主题美化包wori-child 1.3+下载插件美化
- 计算机组成原理常见英文缩写
- 自我职业生涯规划的三步走
- Mysql-binlog日志分析
- easyui datagrid editor 编辑器的简单活用以及自定义校验
- SpringBoot后端+Vue之AntDesignVue前端实现查询表格导出excel功能
- Redis - Redis分布式算法原理——Hash一致性理解 Hash倾斜性解决方案
- TSV文件与CSV文件的区别
- 基于BootStrap+Django+MySQL的云笔记平台系统
- @Transactional注解和Mybatis缓存问题(Mybatis 查询结果 List 对List修改后再次查询,结果与数据库不一致)