采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录

时间:2024-03-08 19:47:50

采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录

 

1、集成的Windows身份验证语法范例

1

<connectionStrings>
<add name="connString" connectionString="server=.;database=myschool;integrated security=true"/>
</connectionStrings>

 


说明:程序代码中,设置了一个针对Sql Server数据库的连接字符串。其中server表示运行Sql Server的计算机名,由于程序和数据库系统是位于同一台计算机的,所以我们可以用.(或localhost)取代当前的计算机名。

database表示所使用的数据库名(myschool)。由于我们希望采用集成的Windows验证方式,所以设置 integrated security为SSPI即可。

2、Sql Server 2005中的Windows身份验证模式如下:

1
string constr = "server=.;database=myschool;uid=sa;pwd=sa";

说明:程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。数据库连接字符串是不区分大小写的。uid为指定的数据库用户名,pwd为指定的用户口令。

为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。

 

 

window身份验证跟sql server身份验证的区别

windows身份验证:

只要能登录操作系统的用户都可以登录数据库。windows身份验证由windows验证并分配有效的安全ID,同时也只能windows用户登录连接。

sqlserver身份验证

需要在数据库中设置用户和密码,才能登录可以登录的数据库。必须提供SQL Server用户ID和密码

 

优缺点:

Windows身份验证使用单一的用户信息库源,因此,不需要为数据库访问去分别配置用户。

连接字符串不包含用户ID和密码,因此消除了把用户ID和密码暴露给未授权的用户的危险。可以在Active Directory中管理用户和他们的角色,而不必在SQLServer中显式地配置他们的属性。 

Windows身份验证的缺点是,它要求客户通过Windows的安全子系统支持的安全通道去连接SQL Server。如果应用种序需要通过不安全的网络(例如Internet)连接SQL Server,Windows身份验证将不工作。

此外,这种身份验证方法也部分地把管理数据库访问控制的责任从DBA身上转移到了系统管理员身上,这在确定的环境中也是一个问题。