`

SQL Server 连接字符串和身份验证

 
阅读更多

 

用本地的SQL Server(localhost),如果想要使用远程服务器运行,应该在示例对象中把正确的服务器赋给Data Source 属性。此外,还必须指定所支持的两种身份验证方法(即Windows身份验证和SQL Server身份验证)中的其中一种。Windows身份验证使用Windows登录用户身份连接数据库,而SQL身份验证要求显式地指定SQL Server用户ID和密码。要想使用Windows身份验证,必须在连接字符串中包括 Integrated Security 属性:
         Data Source=ServerName;Integrated Security=True;

         默认情况下,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。


         在Windows身份验证模式中,SQL Server使用Windows的安全子系统对用户连接进行有效性验证。即使显示地指定用户ID和密码,SQL Server也不检查连接字符串中的用户ID和密码。因为只有Windows NT、2000、XP支持SSPI,因此如果正使用的是这些操作系统,则只能使用Windows集成的安全策略去连接SQL Server。不论使用哪一个操作系统,当使用SQL Server身份验证时,必须在连接字符串中指定用户ID和密码:
Data Source=ServerName;User ID=donaldx;Password=unbreakable

         默认情况下,SQL Server .NET Data Provider连接指定用户的默认数据库,当在数据库中创建用户时,可以设置用户的默认数据库。此外,也可以在任意时间更改用户的默认数据库。例如,系统管理员的默认数据库是master。如果想要连接不同的数据库,应该指定数据库的名称:
Data Source=ServerName;Integrated Security=SSPI;Initial Catalog=Northwind

         每一种身份验证都有它的优点和缺点。Windows身份验证使用单一的用户信息库源,因此,不需要为数据库访问去分别配置用户。连接字符串不包含用户ID和密码,因此消除了把用户ID和密码暴露给未授权的用户的危险。可以在Active Directory中管理用户和他们的角色,而不必在SQL Server中显式地配置他们的属性。
Windows身份验证的缺点是,它要求客户通过Windows的安全子系统支持的安全通道去连接SQL Server。如果应用种序需要通过不安全的网络(例如Internet)连接SQL Server,Windows身份验证将不工作。此外,这种身份验证方法也部分地把管理数据库访问控制的责任从DBA身上转移到了系统管理员身上,这在确定的环境中也许是一个问题。
         一般而言,在设计通用的应用程序时,为了使用Windows身份验证,将会对一些方面进行加强。大多数公司的数据库都驻留在比较健壮的Windows服务器操作系统上,那些操作系统都支持Windows身份验证。数据访问层和数据表示层的分离也促进了把数据访问代码封装在中间层组件思想的应用,中间层组件通常运行在具有数据库服务器的内部网络中。当这样设计时,就不需要通过不安全通道建立数据库连接。除此之外,Web服务也使直接连接不同域中数据库的需要大减少。

 

分享到:
评论

相关推荐

    SQL_Server_连接字符串和身份验证.pdf

    SQL_Server_连接字符串和身份验证.pdf学习数据库的入门最头痛的应该是数据库连接字符串的书写吧。

    C#_数据库连接字符串集合(Sql_验证Windows_身份验证)

    C#_数据库连接字符串集合(Sql_验证Windows_身份验证)

    Microsoft SQL Server 2005 Express Edition SP3

    Windows 加密服务提供程序 (CSP) 是执行身份验证、编码和加密服务的代码,基于 Windows 的应用程序通过 Windows Server 2003 中的 CryptoAPI 访问这些服务。如果停止或禁用 CSP 服务,则 SQL Server 安装程序会失败...

    SQL SERVER 2000开发与管理应用实例

    13.2.1 身份验证模式 388 13.2.2 登录、用户、角色和组 390 13.2.3 管理用户 395 13.3 数据文件安全 403 13.4 SQL Server安全配置 405 13.4.1 安全配置建议 405 13.4.2 使用安全套接字层(SSL)...

    数据结构课程设计——最小生成树

    SQL_Server_连接字符串和身份验证.pdf

    使用Go语言编写的Microsoft SQL Server驱动程序-Golang开发

    连接参数和DSN推荐的连接字符串使用URL格式:sqlserver://用户名:[受电子邮件保护] / instance?param1 = value&param2 = value下面列出了其他受支持的格式。 常用参数:用户ID-以DOMAIN \ User格式输入SQL ...

    sqlserver2000基础(高手也有用)

    13.2.1 身份验证模式 388 13.2.2 登录、用户、角色和组 390 13.2.3 管理用户 395 13.3 数据文件安全 403 13.4 SQL Server安全配置 405 13.4.1 安全配置建议 405 13.4.2 使用安全套接字层(SSL)加密 408...

    22-09-29-03_SqlSugarAcquaintance(初识SqlSuga之ConfigureOptions注入实现)

    //通过UseSqlServer依赖注入中间方法,通过“SQL Server身份认证”对SQL Server数据库进行身份验证,并与SQL Server数据库进行连接,连接字符串中必须配置所连接数据库的:用户名、密码。 builder.Services....

    MS-DB-Connect:.net 桌面应用程序,它可以一步连接、创建连接、更改 sql 身份验证、创建用户和权限到您的数据库

    如果您使用本地网络,您可能需要 sql auth 和用户,以便我为此开发功能:更改 SQL Server 身份验证、创建用户、创建登录、创建权限,最后生成具有您的连接字符串、复制字符串和过去的 txt 文件它在你的应用程序中。...

    go-mssqldb:使用Go语言编写的Microsoft SQL Server驱动程序

    推荐的连接字符串使用URL格式: sqlserver://username:password@host/instance?param1=value&param2=value下面列出了其他受支持的格式。 常用参数: user id以DOMAIN \ User格式输入SQL Server身份验证用户ID或...

    UniDAC版本9.3.0 sources Delphi11(含Library路径设置提示)

    修复了连接字符串参数值包含单引号时的错误, SQLServer数据提供程序, 添加了对SQL Server 9的Microsoft OLE DB驱动程序的支持, 添加了对Microsoft OLE DB提供程序的Azure AD身份验证支持, 增加了对Direct模式下...

    DBHelper类非断开式连接数据库

    //一、两种身份验证:windows身份验证、SqlServer身份验证 string st1 = "server=.;database=orderdinner;Integrated Security = true"; string st2 = "server=.;database=hw;uid=sa;pwd=123"; //二、创建连接...

    Web应用安全:SQL安全隐患产生原因.pptx

    若服务器会将表单中输入的内容直接用于验证身份或者数据获取的查询,攻击者就会尝试输入某些特殊的SQL字符串篡改查询,改变其原来的功能,欺骗系统授予访问权限或返回攻击者想要的数据。 系统环境不同,攻击者可能...

    web.net connstring加密程序

    二、sql server身份验证 1、强制实施密码策略 2、强制密码过期 3、用户在下次登录时必须更改密码 怎么设置:直接在sql server中进行设置 如果是sql server验证的话,Persist security info 一定设置为false...

    经典SQL语句大全

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...

    TravelIS C# 旅行管理系统

    使用时请先将数据库文件Travel.mdf附加到 SQL Server,默认使用Windows集成身份验证。如要使用其它验证方式可修改TravelData.cs中的连接字符串。 4、本系统是在商业版管理系统的基础上进行了适当剪裁,系统数据为...

    ADO连接数据库的增删改查方法

    1:添加命名空间System.Data.SqlClient中的SQL Server访问类;  2:与SQL Server数据库建立... // 定义连接字符串  // Integrated Security=True 集成身份验证  //uid=xxx;Pwd=xxx 用户名密码登陆  SqlCon

    构建安全的ASP.NET

    如何做:在注册表中存储加密的连接字符串.doc 如何做:实现 IPrincipal.doc 如何做:将基于角色的安全性用于 Enterprise Services.doc 如何做:将表单身份验证用于 Active Directory.doc 如何做:将表单身份验证用于...

    sql经典语句一部分

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...

Global site tag (gtag.js) - Google Analytics