我有一个Azure数据库,我可以使用Active Directory Integrated authentication和Sql Server Management Studio(版本17.1)连接到该数据库。但是,当我尝试使用sqlcmd(版本13.1.811.168)进行连接时,通过:
sqlcmd -S my-dataabse.database.windows.net -G -C -Q "SELECT name FROM master.dbo.sysdatabases"
我收到此错误:
Sqlcmd:错误:用于SQL Server的Microsoft ODBC驱动程序13:SQL Server网络接口:无法找到adalsql.dll文件路径的注册表项。验证Active Directory 正确安装了SQL Server身份验证库。有关详细信息,请参阅:http://go.microsoft.com/fwlink/?LinkID=513072。
如果我转到该链接并下载最新版本的adalsql.dll
,它会告诉我已经安装了它。此外,我可以确认C:\Windows\System32\adalsql.dll
存在。
不确定下一步该尝试...
答案 0 :(得分:0)
事实证明,我的搜索路径上的第一个sqlcmd.exe
是64位版本,而Sql Server Management Studio只安装了32位版本的adalsql.dll
,因此解决方案是添加{{ 1}}到我的搜索路径的头部,以便在从命令行调用C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn
时使用32位版本的sqlcmd.exe
。