我很好奇SQL Server连接字符串中的令牌“Trusted_Connection”和“Integrated Security”之间有什么区别(我相信其他数据库/驱动程序不支持这些)。我知道他们是等同的。
答案 0 :(得分:81)
它们是彼此的同义词,可以互换使用。
在.Net中,有一个名为SqlConnectionStringBuilder的类,对于使用类型安全属性处理 SQL Server 连接字符串来构建字符串的一部分非常有用。此类保留内部同义词列表,以便它可以从一个值映射到另一个值:
+----------------------+-------------------------+ | Value | Synonym | +----------------------+-------------------------+ | app | application name | | async | asynchronous processing | | extended properties | attachdbfilename | | initial file name | attachdbfilename | | connection timeout | connect timeout | | timeout | connect timeout | | language | current language | | addr | data source | | address | data source | | network address | data source | | server | data source | | database | initial catalog | | trusted_connection | integrated security | | connection lifetime | load balance timeout | | net | network library | | network | network library | | pwd | password | | persistsecurityinfo | persist security info | | uid | user id | | user | user id | | wsid | workstation id | +----------------------+-------------------------+
(在Reflector的帮助下编译)
还有其他类似的类用于处理ODBC和OleDb连接字符串,但遗憾的是其他数据库供应商没有 - 我认为onus是在供应商的库上提供这样的实现。< / p>
答案 1 :(得分:9)
他们是一样的。
不幸的是,有这样的几种变体,包括:
服务器/数据源
数据库/初始目录
我不确定变体的来源,我假设有些是通用的(不是以数据库为中心的,所以如果连接到RDBMS与连接目录服务等连接字符串看起来非常相似,等等。 )
答案 2 :(得分:2)
稍后我发现了名字冲突的起源。 ODBC使用一组标记,为OLEDB定义了一组不同的标记。对于Sql Server,由于遗留原因,它们仍然可以互换地支持。
Trusted_Connection = true是ODBC和Integrated Security = SSPI是OLEDB。
答案 3 :(得分:1)
在我的情况下,我发现了“Trusted_Connection”和“Integrated Security”之间的区别。我使用的是Microsoft SQL Server 2005.最初我使用的是Windows登录(Integrated Security = SSPI)。但当我用SQL Server身份验证替换Windows身份验证时添加用户ID和密码,将SSPI替换为“False”失败。它返回“多步OLE DB操作生成错误”。但是,当我用“Trusted_Connection = no”替换“Integrated Security = False”时,它有效。