zoukankan      html  css  js  c++  java
  • 关于sql连接语句中的Integrated Security=SSPI

    Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。 

    设置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用你的新实例名替换掉。


    Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息", 



             SqlDataOperate sqlDataOperate = new SqlDataOperate("Data Source=192.168.0.189;User ID=sa;Password=aa;Initial Catalog=datachange;Persist Security Info=true"); 
             sqlDataOperate.SqlConnection.Open(); 
             SqlDataOperate sqlDataOperate2 = new SqlDataOperate("Data Source=192.168.0.189;User ID=sa;Password=aa;Initial Catalog=datachange;Persist Security Info=false"); 
             sqlDataOperate2.SqlConnection.Open(); 
             string s = sqlDataOperate.SqlConnection.ConnectionString; 
             string s2 = sqlDataOperate2.SqlConnection.ConnectionString; 


    结果s2=Data Source=192.168.0.189;User ID=sa;Initial Catalog=datachange;Persist Security Info=false 即没有了password项

     

     

  • 相关阅读:
    去除 SQL Server 查询结果中的两边空格
    Ubuntu 中安装 Oracle 10g
    不同格式的下拉列表框
    闲来无趣,写了个简单的JavaScript验证码
    Ubuntu 任务前后台调度管理
    C#数据类型转换,Convert
    OleDbType,C#,access 对应数据类型,互相对应
    SQL 将查询出的表当做 value 插入到表中
    asp.net mvc && asp.net 页面跳转
    asp.net mvc 与 asp.net结合(asp.net mvc 技巧)
  • 原文地址:https://www.cnblogs.com/mumue/p/2524999.html
Copyright © 2011-2022 走看看