【问题标题】:Connecting to SQL Server 2012 (using Windows auth) via powershell Enter-PSSession通过 powershell Enter-PSSession 连接到 SQL Server 2012(使用 Windows 身份验证)
【发布时间】:2017-10-23 16:32:17
【问题描述】:

希望您能帮助我解决我面临的问题。这是一个冗长的提供上下文。简而言之,我对 SQL Server 2008 R2 数据库的 Windows 身份验证访问失败,因为它似乎试图以“NT AUTHORITY\ANONYMOUS LOGON”而不是当前用户身份访问数据库。

这是我的场景:具有多个运行独立 SQL Server 数据库的服务器的服务器场,需要在其上运行许多 PowerShell 脚本,这些脚本连接到数据库并运行一些查询并根据查询对某些数据库进行一些更新表。我们在 Windows 身份验证登录到数据库时失败(与 SQL Server Mgmt Studio v10 一起工作正常)。

看起来像这样:

  1. win7pc PS C:> Enter-PSSession -ComputerName winsvr2k8r2
  2. [winsvr2k8r2]: PS c:\users\svs_acct1>
  3. [winsvr2k8r2]: PS c:\users\svs_acct1> 设置位置 C:

    • 注意:有一个脚本目录是配置文件中 $env:PATH 集的一部分
  4. [winsvr2k8r2]: PS c:\users\svs_acct1> 。 .\users\svs_acct1\bin\Run-AdminTasks

脚本输出

Loading AD module ...  
 Setting Global Variables ...  
 I am user: domreff1\dbappuser  
 Initiating DB Connection using windows auth to: sTango @ hgr23992\atr77504  
  with connect string ...  
   Data Source=hgr23992\atr77504;Initial Catalog=sTango;Integrated Security=SSPI  

错误

使用“0”参数调用“Open”的异常:“用户'NT AUTHORITY\ANONYMOUS LOGON'登录失败。”
在 C:\users\svs_acct1\bin\Run-AdminTasks:21 char:20
+ $SqlConnection.open + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

脚本中相关的数据库连接元素:

$SQLServer = "hgr23992\atr77504";  
$SQLDBName = "sTango";  
$SQLDBUser = [Security.Principal.WindowsIdentity]::GetCurrent().Name;  

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection  
$SqlConnection.ConnectionString = "Data Source=$SQLServer;Initial Catalog=$SQLDBName;Integrated Security=SSPI"  
$SqlConnection.open();

我浏览了各种帖子并尝试了多种不同的连接字符串方式,例如

Data Source=$SQLServer;Initial Catalog=$SQLDBName;Integrated Security=[Yes|True|SSPI]

没有喜悦。

关于问题可能是什么以及为什么数据库连接似乎反映了与我运行脚本不同的上下文/用户的任何想法?

【问题讨论】:

    标签: sql-server authentication sql-server-2012 powershell-2.0 windows-authentication


    【解决方案1】:

    问题在于 kerberos 身份验证和缺少令牌委托。

    您可以为 powershell 启用 CredSSP 身份验证(在客户端和服务器端)。请仅通过 SSL 执行此操作,否则您很容易受到 MITM 攻击。

    检查 https://msdn.microsoft.com/en-us/library/ee309365(v=vs.85).aspx

    【讨论】:

    • 感谢 marc_s 的编辑。 @Neroon,谢谢你的建议。我正在尝试让相关管理员进行所需的配置更改以允许对其进行测试,但可能不允许以当前格式完成此操作。如果我在下周未能成功通过管理员和安全团队,我将寻求另一种途径/方法。非常感谢
    • 只是一个快速更新。我无法在我们当前的环境 [内部政策或政治等] 中对此进行测试,并选择了一种不同的方法(阅读肮脏的黑客)来实现所需的目标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2016-11-04
    • 2013-09-07
    • 2014-07-27
    相关资源
    最近更新 更多