一、首先肯定是百度配置过程,在此附上两位写的比较好的大佬
1.SQL Server 2008 R2如何开启数据库的远程连接
2.SQL Server 2008 R2 开启远程连接
都是特别好的参照,本人是按照第一个做的,期间遇到了很多的小问题,也进行了解决,在此进行列举希望对各位有所帮助
1.用sa登陆时,一定要确认设置的登陆密码;
2.在配置工具管理器中SQL SERVER服务显示远程调用失败时,打开控制面板,找到卸载程序,把”Microsoft SQL Server 2013(2012)(或其它版本) Express LocalDB”卸载掉,然后打开SQL Server 配置管理器,就会显示正常使用。
3.遇到错误:Windows不能在本机启动SQL Server服务错误代码126 或Windows 不能在 本地计算机 启动 SQL Server(MSSQLSERVER)。错误码126
展开 SQL SERVER 2008 R2【SQL Server 配置管理器】下面的【SQL Server 网络配置】 禁用VIA协议即可。
具体可参照 windows不能在本机启动SQL Server服务错误代码126
4.SQLSERVER配置完成后,还要看一下防火墙的有关设置,SQLServer2008开放windows防火墙配置 这是Windows7版的,win10也可以,亲测。或配置Windows 防火墙,允许SQL Server的远程连接
至此,SQLSERVER方面的配置基本完成了,接下来就是写代码进行远程访问。
二、代码中远程访问SQL数据库,代码及问题。
1.访问SQL数据库有两种方式1.Windows身份验证和SQL SERVER登陆验证,本次使用SQL server验证,前期代码如下
//在app.config配置文件中
//在连接数据库类中
private static string connString = ConfigurationManager.AppSettings["ConnctionStr"].ToString();
但是,当运行时会报错数据库连登录失败。该登录名来自不受信任的域,不能与 Windows 身份验证一起使用。
经查询原因是:
server=localhost;database=Northwind; integrated security=SSPI
Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。
这句话的意思就是这个连接采用了这个接口,如果没有定义就会出错!
Integrated Security 身份验证方式
当为false时,将在连接中指定用户ID和密码。 ;当为true时,将使用当前的Windows帐户凭据进行身份验证。
可识别的值为true、false、yes、no以及与true等效的SSPI。
指使用windows自带的安全验证机制,不用加uid和password也可以打开数据库,如果没有那一句,就必须在连接字符串里写上uid=sa;password=00; 否则不能打开数据库
默认情况下,Integrated Security 属性为 False ,这意味着将禁用Windows身份验证。如果没有显式地把这个属性的值设置为True,连接将使用SQL Server身份验证,因此,必须提供SQL Server用户ID和密码。Integrated Security属性还能识别的其他值只有SSPI(Security Support Provider Interface,安全性支持提供者接口).在所有的Windows NT操作系统上,其中包括Windows NT 4.0、2000、XP,都支持值SSPI。它是使用Windows身份验证时可以使用的惟一接口,相当于把Integrated Security 属性值设置为True
暂定截至。