国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 数据库 > 数据库应用 > C#――Web.config中的Integrated Security=SSPI

C#――Web.config中的Integrated Security=SSPI

来源:程序员人生   发布时间:2014-12-20 08:44:01 阅读次数:3363次

    问题由来

    之前在进行机房收费系统个人重构的时候,配置文件访问数据库,用的是这类方式,如:  

string="server=localhost;database=pubs;uid=sa;password=123456"
    

    这两天在学习MVC的时候,在设置配置文件的时候发现,链接数据库用的是另外1种方式: 

connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=aspnet-MVCMovie⑵0141126170450;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Movies.mdf" providerName="System.Data.SqlClient"

    重点就在Integrated Security=SSPI这1句,有甚么区分么??


    数据库的两种身份验证模式


   

   

    Windows身份验证模式

    安装时,若按默许操作(windows身份验证模式),则sql server会将当前的windows账户及其密码作为windows验证模式的内嵌登录名(BUILTINAdministrators)和密码,从而在使用windows验证模式时,不需要指定登录名和密码。固然,在此也能够指定其他的windows账户作为windows验证模式的内嵌登录名,依照提示修改便可。Windows验证模式只允许以windows验证模式进行连接,即使SSMS中可以选择sql server模式,但会致使连接失败。

    

    混合身份验证模式

    如果安装时选择“混合模式”,则必须指定sa登录名的密码,从而添加了1个sql server身份验证的登录名。

     

    两种方式的不同

    windows 身份验证相对混合模式更加安全,使用本连接模式时候,sql server仅根据用户的windows权限来进行身份验证,我们称为“信任连接”,但是在远程连接的时候会因NTML验证的原因,没法登陆。
    混合模式验证就比较复杂,当本地用户访问sql时候采取windows身份验证建立信任连接,当远程用户访问时由于未通过windows认证,而进行sql server认证(使用sa的用户也能够登录sql),建立“非信任连接”,从而使得远程用户也能够登录。
    准确来讲,混合身份验证模式,也就是基于Windows身份验证和SQL Server身份混合验证。在这个模式中,系统会判断账号在Windows操作系统下是不是可信,对可信连接,系统直接采取Windows身份验证机制,而非可信连接,这个连接不但包括远程用户还包括本地用户,SQL Server 会自动通过账户的存在性和密码的匹配来进行验证。

     

     常见理解误区

     windows验证模式和sql server验证模式的登录名,区分在于权限,这是毛病的。这两种验证方式的区分,其实不是在于权限。并没有谁的权限高、谁的权限低之说。不论是windows验证方式的默许登录名、sql server方式的sa或其他自己添加的登录名,只要在sql server中为该登录名设置了相应数据库及表的权限,他就具有对操作权限。



    Intergrated Security =SSPI

    SSPI:Security Support Provider Interface(Microsoft安全支持提供器接口),定义得较全面的公用API,用来取得验证、信息完全性、信息隐私等集成安全服务,和用于所有散布式利用程序协议的安全方面的服务。

      ===========================================
      Integrated Security 身份验证方式 
      当为False时,将在连接中指定用户ID和密码。 
      当为True时,将使用当前的Windows帐户凭据进行身份验证。 
      可辨认的值为True、False、Yes、No和与True等效的SSPI。

      ============================================


     总结

    为了保证数据库的安全建议尽量使用Windows验证模式,Windows 身份验证使用1系列加密消息验证 SQL Server 中的用户。 使用 SQL Server 登录时,会通过网络传递 SQL Server 登录名和密码,这样会下降它们的安全性。


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生