我有两个应用程序使用集成安全。一个在连接字符串中分配Integrated Security = true,另一个设置Integrated Security = SSPI。
在集成安全上下文中,SSPI和true之间的区别是什么?
我有两个应用程序使用集成安全。一个在连接字符串中分配Integrated Security = true,另一个设置Integrated Security = SSPI。
在集成安全上下文中,SSPI和true之间的区别是什么?
当前回答
集成安全性= False:用户ID和密码在连接中指定。 Integrated Security = true:使用当前Windows帐户凭据进行身份验证。
集成安全性= SSPI:这相当于true。
我们可以避免连接字符串中的用户名和密码属性,并使用集成安全性
其他回答
请注意,连接字符串特定于连接到数据的内容和方式。它们连接到同一个数据库,但第一个是使用。net Framework Data Provider for SQL Server。集成安全性=True将不适用于OleDb。
数据源=.;初始目录=aspnetdb;集成安全性=True 提供者=SQLOLEDB;数据源=.;集成安全性=SSPI;初始目录=aspnetdb
如果有疑问,请使用Visual Studio Server Explorer数据连接。
什么是sspi? 连接字符串语法
集成安全性= False:用户ID和密码在连接中指定。 Integrated Security = true:使用当前Windows帐户凭据进行身份验证。
集成安全性= SSPI:这相当于true。
我们可以避免连接字符串中的用户名和密码属性,并使用集成安全性
在我看来,
如果你不使用集成安全=SSPI,那么你需要在连接字符串中硬编码用户名和密码,这意味着“相对不安全”,为什么,因为所有的员工都有访问权限,甚至前员工也可以恶意使用信息。
使用Windows认证
要连接到数据库服务器,建议使用Windows身份验证,通常称为集成安全。要指定Windows身份验证,可以对数据提供程序使用以下两个键-值对中的任意一个。NET Framework for SQL Server:
Integrated Security = true;
Integrated Security = SSPI;
然而,只有第二种与数据提供程序。net Framework OleDb一起工作。如果您为ConnectionString设置了Integrated Security = true,则会抛出异常。
在数据提供程序中指定Windows身份验证。NET框架的ODBC,您应该使用以下键值对。
Trusted_Connection = yes;
来源:MSDN:使用连接字符串
True仅在使用. net SqlClient库时有效。它在使用OLEDB时无效。 无论你使用的是。net SqlClient库还是OLEDB, SSPI都是bvaid。