连接string中的Trusted_Connection和Integrated Security之间有什么区别?

我很好奇SQL Server连接string(我相信其他数据库/驱动程序不支持这些)的标记“Trusted_Connection”和“集成安全性”之间的区别。 我明白,他们是equivilent。

它们是彼此的同义词,可以互换使用。

在.Net中,有一个名为SqlConnectionStringBuilder的类,它对于使用types安全属性处理SQL Server连接string来构buildstring的一部分非常有用。 这个类保留了一个同义词的内部列表,所以它可以从一个值映射到另一个值:

 + ---------------------- + ------------------------- +
 | 值|  |同义词|
 + ---------------------- + ------------------------- +
 | 应用程序| 应用程序名称|
 |  async | asynchronous处理|
 | 扩展属性|  attachdbfilename |
 | 初始文件名|  attachdbfilename |
 | 连接超时| 连接超时|
 | 超时| 连接超时|
 | 语言| 当前语言|
 |  addr | 数据源|
 | 地址| 数据源|
 | networking地址| 数据源|
 | 服务器| 数据源|
 | 数据库| 初始目录|
 |  trusted_connection | 集成安全|
 | 连接寿命| 负载均衡超时|
 |  net | networking库|
 | networking| networking库|
 |  pwd | 密码|
 |  persistsecurityinfo | 坚持安全信息|
 |  uid | 用户ID |
 | 用户| 用户ID |
 |  wsid | 工作站ID |
 + ---------------------- + ------------------------- +

(在Reflector的帮助下编译)

还有其他类似的类来处理ODBC和OleDb连接string,但不幸的是,其他数据库供应商没有 – 我会假设负责供应商的库提供这样的实现。

他们是一样的。

不幸的是,有这样的几个变化,其中包括:

服务器/数据源

数据库/初始目录

我不确定变异的起源,我假设有些是generics的(不是以数据库为中心的,所以如果连接到RDBMS而不是连接到目录服务,那么连接string看起来会非常相似)

所以稍后我发现了名字冲突的起源。 一组令牌由ODBC使用,另一组为OLEDB定义。 对于Sql Server,由于传统的原因,它们仍然可以互换使用。

Trusted_Connection = true是ODBC和集成安全性= SSPI是OLEDB。

就我而言,我发现了“Trusted_Connection”和“Integrated Security”之间的区别。 我正在使用Microsoft SQL Server 2005.最初我使用Windowslogin(集成安全= SSPI)。 但是,当我通过SQL Serverauthentication添加用户ID和密码来取代Windowsauthentication时,将SSPIreplace为“False”失败。 它返回了“多步OLE DB操作生成错误”。 但是,当我用“Trusted_Connection = no”replace“Integrated Security = False”时,它就起作用了。