pyodbc配置连接串:使用trusted_connection=yes替代账密的方法咨询
pyodbc对接SQL Server的可信连接配置说明
完全可以省略连接串中的UID、PWD字段,通过设置可信连接参数实现Windows集成身份认证下的数据库连接,这是pyodbc对接SQL Server的原生支持能力,不需要额外引入第三方组件。
修改后的配置写法
删除原有连接串里的UID、PWD键值对,新增Trusted_Connection=yes参数即可。ODBC驱动对连接参数的大小写不敏感,Trusted_Connection=yes和trusted_connection=true两种写法完全等价,都可以被正常识别。
修改后的完整可运行代码:
cnnString = ( 'Driver={SQL Server Native Client 11.0};' 'Server=XXXXX;' 'Database=XXXXX;' 'Trusted_Connection=yes;' ) qry = 'select * from View_Dim_Supp' cnn = pyodbc.connect(cnnString) df = pd.read_sql(qry, cnn)
实际使用的注意事项
- 身份校验逻辑:可信连接不会使用匿名身份访问数据库,会直接以当前运行Python进程的Windows登录账号作为连接凭据。你需要提前在目标SQL Server实例中,为这个运行账号配置对应数据库的访问权限,否则会直接触发登录失败报错,权限规则和SSMS中选择“Windows身份认证”登录的校验逻辑完全一致。
- 驱动兼容性:你当前使用的
SQL Server Native Client 11.0驱动完全支持该参数,不需要额外更换驱动版本即可正常生效。 - 配置冲突规避:不要在同一份连接串中同时保留UID/PWD明文字段和可信连接参数,部分ODBC驱动会优先采信明文凭据,导致你配置的可信认证逻辑失效。
- 跨平台适配提醒:如果是在Linux、MacOS等非Windows环境下运行这段代码,无法直接使用本地Windows账号完成可信认证,需要额外搭配Kerberos域认证配置才能让该参数生效。
内容的提问来源于stack exchange,提问作者Developer 2023
相关产品推荐
相关产品推荐

