连接字符串中的Trusted_Connection和Integrated Security有什么区别?

时间:2010-06-19 22:07:41

标签: sql-server connection-string

我很好奇SQL Server连接字符串中的令牌“Trusted_Connection”和“Integrated Security”之间有什么区别(我相信其他数据库/驱动程序不支持这些)。我知道他们是等同的。

4 个答案:

答案 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的帮助下编译)

还有其他类似的类用于处理ODBCOleDb连接字符串,但遗憾的是其他数据库供应商没有 - 我认为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”时,它有效。