采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录
1、集成的Windows身份验证语法范例
说明:程序代码中,设置了一个针对SqlServer数据库的连接字符串。其中server表示运行Sql Server的计算机名,由于程序和数据库系统是位于同一台计算机的,所以我们可以用.(或localhost)取代当前的计算机名。
database表示所使用的数据库名(myschool)。由于我们希望采用集成的Windows验证方式,所以设置 integrated security为SSPI即可。
2、Sql Server 中的Windows身份验证模式如下:
说明:程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。数据库连接字符串是不区分大小写的。uid为指定的数据库用户名,pwd为指定的用户口令。
为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。
window身份验证跟sql server身份验证的区别
windows身份验证:
只要能登录操作系统的用户都可以登录数据库。windows身份验证由windows验证并分配有效的安全ID,同时也只能windows用户登录连接。
sqlserver身份验证:
需要在数据库中设置用户和密码,才能登录可以登录的数据库。必须提供SQLServer用户ID和密码
优缺点:
Windows身份验证使用单一的用户信息库源,因此,不需要为数据库访问去分别配置用户。
连接字符串不包含用户ID和密码,因此消除了把用户ID和密码暴露给未授权的用户的危险。可以在Active Directory中管理用户和他们的角色,而不必在SQLServer中显式地配置他们的属性。
Windows身份验证的缺点是,它要求客户通过Windows的安全子系统支持的安全通道去连接SQLServer。如果应用种序需要通过不安全的网络(例如Internet)连接SQLServer,Windows身份验证将不工作。
此外,这种身份验证方法也部分地把管理数据库访问控制的责任从DBA身上转移到了系统管理员身上,这在确定的环境中也是一个问题。