我有一个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文件路径的注册表项 . 验证是否已正确安装SQL Server的Active Directory身份验证库 . 有关详细信息,请参阅:http://go.microsoft.com/fwlink/?LinkID = 513072 .
如果我转到该链接,并下载最新版本的 adalsql.dll
,它会告诉我已经安装了它 . 此外,我可以确认 C:\Windows\System32\adalsql.dll
存在 .
不确定接下来要尝试什么...
1 回答
所以事实证明我的搜索路径上的第一个
sqlcmd.exe
是64位版本而Sql Server Management Studio只安装了32位版本的adalsql.dll
,所以解决办法是将C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn
添加到我的搜索路径的头部以便32位从命令行调用sqlcmd blah blah blah
时将使用sqlcmd.exe
的版本 .