前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#——Web.config中的Integrated Security=SSPI

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

作者头像
令仔很忙
发布2018-09-14 16:04:18
1.2K0
发布2018-09-14 16:04:18
举报
文章被收录于专栏:令仔很忙令仔很忙

问题由来

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

代码语言:javascript
复制
   string="server=localhost;database=pubs;uid=sa;password=123456"

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

代码语言:javascript
复制
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MVCMovie-20141126170450;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient"

    重点就在Integrated Security=SSPI这一句,有什么区别么??

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

    Windows身份验证模式

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

    混合身份验证模式

    如果安装时选择“混合模式”,则必须指定sa登录名的密码,从而添加了一个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 身份验证使用一系列加密消息验证 SQL Server 中的用户。 使用 SQL Server 登录时,会通过网络传递 SQL Server 登录名和密码,这样会降低它们的安全性。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年11月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题由来
  • 数据库的两种身份验证模式
    •     Windows身份验证模式
      •     混合身份验证模式
        •     两种方式的不同
          •      常见理解误区
          •     Intergrated Security =SSPI
          • 总结
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档