连接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”时,它就起作用了。