1

构建 Azure VM 并加入域后,我需要将 windows 用户添加到 SQL Server 登录。我为此使用 DSC,代码是

Configuration SQLConfig 
{
    param(
        # Parameter help description
        [Parameter(Mandatory =$true)][string]$ServerName,
        [System.Management.Automation.PSCredential]  $Credential

    )

    Import-DscResource -ModuleName SqlServerDsc
    Import-DscResource -ModuleName PSDesiredStateConfiguration

    Node localhost
    {
        SqlServerLogin addsysadmin
        {
            Ensure               = 'Present'
            Name                 = $Credential.UserName
            LoginType            = 'WindowsUser'
            ServerName           = $ServerName
            InstanceName         = 'MSSQLSERVER'
            PsDscRunAsCredential = $Credential
            LoginMustChangePassword = $false

        }

    }
}

但是,部署失败并出现以下错误。

PowerShell DSC 资源 MSFT_SqlServerLogin 无法执行 Test-TargetResource 功能并出现错误消息:System.InvalidOperationException:无法连接到 SQL 实例“localhost”。+ CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException + FullyQualifiedErrorId : ProviderOperationExecutionFailure + PSComputerName : localhost

看起来 DSC 正在尝试以我要添加的用户身份连接到 SQL 服务器。我的意思是,如果我尝试添加 MyDomain\xxx.zzz,那么我会在 SQL 日志中得到错误

“用户 'MyDomain\xxx.zzz' 登录失败。原因:找不到与提供的名称匹配的登录名。[客户:]”

我究竟做错了什么?

谢谢

4

1 回答 1

0

看起来 DSC 正在尝试以我要添加的用户身份连接到 SQL 服务器。

你的结论是对的。PsDscRunAsCredential = $Credential指示 DSC 本地配置管理器使用 $credential 来执行命令。您可能希望指定具有足够权限的现有 SQL 登录名,以便将其他登录名添加到 PsDscRunAsCredential。

于 2019-03-28T12:21:55.627 回答