Azure SQL Database PowerShell连接失败:用户登录错误求助
PowerShell连接Azure SQL Database失败:Login failed for user 'user'
我尝试了多种方式通过PowerShell连接Azure SQL Database,但全部失败,报错Login failed for user 'user'。以下是已尝试的连接方式:
已尝试的PowerShell方案
方案1:使用连接字符串调用Invoke-Sqlcmd
Import-Module -Name SqlServer $connString = 'Server=tcp:{server}.database.windows.net,1433;Database={db};User ID={usr}@{server};Password={pwd};Trusted_Connection=False;Encrypt=True;' Invoke-Sqlcmd -ConnectionString $connString -Query "SELECT 'Hello world!'"
方案2:直接指定参数调用Invoke-Sqlcmd
Import-Module -Name SqlServer Invoke-Sqlcmd -ServerInstance 'tcp:{db}.database.windows.net,1433' -Database '{db}' -Username '{usr}' -Password '{pwd}' -Query "SELECT 'Hello world!'"
方案3:使用PSCredentials调用Invoke-Sqlcmd
Import-Module -Name SqlServer $password = ConvertTo-SecureString '{pwd}' -AsPlainText -Force $mssqlCredentials = New-Object System.Management.Automation.PSCredential ('{usr}', $password) Invoke-Sqlcmd -ServerInstance 'tcp:{server}.database.windows.net,1433' -Database '{db}' -Credential $mssqlCredentials -Query "SELECT 'Hello world!'"
方案4:使用Invoke-SqlCmd2模块
Import-Module Invoke-SqlCmd2 $connString = 'Server=tcp:{server}.database.windows.net,1433;Database={db};User ID={usr}@{server};Password={pwd};Trusted_Connection=False;Encrypt=True;' Invoke-Sqlcmd2 -SQLConnection $connString -Query "SELECT 'Hello world!'"
可正常连接的方式
SSMS
通过SSMS使用同一账号可以正常连接到Azure SQL Database。
Python SQLAlchemy
from sqlalchemy import create_engine, text conn_str = f"mssql+pymssql://[usr]:[pwd]@[server].database.windows.net:1433/[db]" engine = create_engine(conn_str, echo=False) with engine.connect() as conn: result = conn.execute(text("SELECT 'Hello world!'")) print(result.all())
排查细节
- 密码仅包含特殊字符
§,该账号用于多个业务系统,无法修改,排除密码字符导致的问题。 - 怀疑ODBC驱动问题:Python使用独立的SQL驱动可正常连接,另一远程机器上运行相同的PowerShell脚本可以成功连接。已尝试安装本地缺失的SQL驱动,但问题仍未解决。
- 本地机器与远程机器的SQL驱动版本存在差异。
内容的提问来源于stack exchange,提问作者r14
相关产品推荐
相关产品推荐

