从PowerShell访问SQL Server数据库时遇登录失败错误求助
PowerShell连接SQL Server报"Login failed for user"错误的解决方案
我尝试通过PowerShell连接SQL Server数据库,持续收到以下错误:
Exception calling "Open" with "0" argument(s): "Login failed for user 'revadmin'."
At line:1 char:5
$conn.Open()~~~~~~~~~~~~
- CategoryInfo : NotSpecified: (:) [], MethodInvocationException
- FullyQualifiedErrorId : SqlException
已确认凭证有效,将相同凭证复制到SSMS中可正常连接。使用的连接代码如下:
$connString = "MyConnectionString" $conn = New-Object System.Data.SqlClient.SqlConnection $connString $conn.Open()
问题核心原因
此前该问题曾被标记为重复,但推荐问题未覆盖此核心场景:连接字符串密码中的某个字符被PowerShell识别为变量开头(比如$符号),导致密码被错误解析,进而触发登录失败。这种细节容易被忽略。
解决方案
- 使用单引号包裹连接字符串,避免PowerShell解析其中的变量:
$connString = 'Server=your_server;Database=your_db;User ID=revadmin;Password=your_pass$with_var_char' $conn = New-Object System.Data.SqlClient.SqlConnection $connString $conn.Open()
- 若必须使用双引号,对密码中的特殊字符(如
$)进行转义,在字符前添加反引号(`):
$connString = "Server=your_server;Database=your_db;User ID=revadmin;Password=your_pass`$with_var_char" $conn = New-Object System.Data.SqlClient.SqlConnection $connString $conn.Open()
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

