erver=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;
否则你不能打开数据库
关于sql连接语句中的Integrated Security=SSPI
解决方法:
即:Security Support Provider Interface
设置Integrated Security为 True 的时候,连接语句前面的 UserID, PW 是不起作用的,即采用windows身份验证模式。
只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接。
Integrated Security 可以设置为: True, false, yes, no ,这四个的意思很明白了,还可以设置为:sspi ,相当于 True,建议用这个代替 True。
initial catalog与database的区别是什么
Initial Catalog:
DataBase:
两者没有任何区别只是名称不一样,就好像是人类的真实姓名与曾用名一样。。都可以叫你。
********************************************
Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错。
你可以使用SQL SERVER的用户名和密码进行登录,如:
代码如下 | 复制代码 |
"Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=数据库名;Data Source=192.168.0.1;User ID=sa;Password=密码" |
***************************************************
Integrated Security - 或 - Trusted_Connection 'false' 当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户凭据进行身份验证。 可识别的值为 true、false、yes、no 以及与 true 等效的 sspi(强烈推荐)。
*************************************************
ADO.net 中数据库连接方式
System.Data.SqlClient.SqlConnection
常用的一些连接字符串(C#代码):
代码如下 | 复制代码 |
SqlConnection conn = new SqlConnection( “Server=(local);Integrated Security=SSPI;database=Pubs“); SqlConnection conn = new SqlConnection(“server=(local)NetSDK;database=pubs;Integrated Security=SSPI“); SqlConnection conn = new SqlConnection(“Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;“); SqlConnection conn = new SqlConnection(“ data source=(local);initial catalog=xr;integrated security=SSPI; persist security info=False;workstation id=XURUI;packet size=4096; “); SqlConnection myConn = new System.Data.SqlClient.SqlConnection(“Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer“); SqlConnection conn = new SqlConnection( “ uid=sa;pwd=passwords;initial catalog=pubs;data source=127.0.0.1;Connect Timeout=900“); |
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
如果你的机器装了sql2000 那Data Source=.肯定是不行的了
因为实例名2000和2005的默认的是一样的 所以2005的实例肯定不能用Data Source=.表示
查看sql2005的实例名 将Data Source=.SQLEXPRESS 中的 SQLEXPRESS用你的新实例名替换掉。