【问题标题】:How to solve credentials conflict using dbatools如何使用 dbatools 解决凭据冲突
【发布时间】:2019-03-07 04:36:08
【问题描述】:

powershell 脚本的目标是将数据库从一台服务器复制到另一台服务器,然后在目标服务器上执行简单查询。 当前用户没有数据库服务器的权限,因此在两台服务器上都创建了一个登录名,密码作为安全字符串存储在文件中:

$sourceServer = "ServerA"
$destServer = "ServerB"

$restoreUser = "replicationuser"
$encPass = Get-Content -Path ".\SecuredPass.spf"
$secString= $encPass  | ConvertTo-SecureString -Key (1..16)
$restoreCredential=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $restoreUser, $secString

Copy-DbaDatabase -Source $sourceServer -Destination $destServer -Database "MyDatabase" -SourceSqlCredential $restoreCredential -DestinationSqlCredential $restoreCredential -BackupRestore -NetworkShare "\\MyShare\Databases" -WithReplace -EnableException
$sqlQuery = 'select 1+1'    
Invoke-DbaSqlQuery -Query $sqlQuery -SqlInstance $destServer -SqlCredential $restoreCredential

当脚本运行时,数据库被复制,但查询执行给出以下消息:

WARNING: [15:53:29][Invoke-DbaQuery] Failure | Property LoginSecure cannot be changed or read after a connection string has been set.

在运行查询时应该如何使用凭证?

【问题讨论】:

    标签: powershell dbatools


    【解决方案1】:

    我们在Invoke-DbaQuery 中处理凭据的方式存在一些问题。您可以尝试最新版本,看看这个问题是否仍然存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-09
      • 2016-02-22
      • 2013-11-09
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      相关资源
      最近更新 更多