使用Powershell时MongoDb Connection的认证机制有参数吗?

问题描述 投票:0回答:2

我想使用 Powershell Skript 对数据库进行 Mongodump 备份,这是我从该页面获得的: 文字

我收到与错误的身份验证机制相关的错误(SCRAM-SHA-1 而不是 SCRAM-SHA-256),但我找不到用于设置身份验证机制的参数。

我对上面的 Powershell Skript 的改编(用户名和密码被隐藏):

<# Set the MongoDB access variables #>
$databaseName = "HistoryTest"
$username = "..."
$password = "..."
$mechanism="SCRAM-SHA-256"
$mongoDbHost = "localhost:27017"


<# Set the folders location and name #>
$backupPath = "C:\Mongo_Backup"
$currentDate = get-date -format yyyyMMddHHmm
$directoryName = "$databaseName-$currentDate"
$directoryPath = Join-Path $backupPath $directoryName

#endregion

#region Backup Process
$watch = New-Object System.Diagnostics.StopWatch
$watch.Start()
Write-Host "Backing up the Database: '$databaseName' to local directory: $backupPath."

# Use this command when the database require authorization
 mongodump -h "$mongoDbHost" `
   -d "$databaseName" `
   -u "$username" `
   -p "$password" `
   -o "$directoryPath" 


$archiveFileDestinationPath = "$backupPath\$directoryName.gz";
mongodump --gzip -h "$mongoDbHost" -d "$databaseName" --archive="$archiveFileDestinationPath"


Write-Host "Creating the backup for $databaseName..."

$watch.Stop();
Write-Host "MongoDB backup completed in "$watch.Elapsed.ToString()

#endregion

完整错误消息:mongodump:2023-01-31T12:11:36.381 + 0100失败:无法创建会话:无法连接到服务器:期间发生连接()错误 连接握手:身份验证错误:sasl 对话错误:无法使用机制“SCRAM-SHA-1”进行身份验证:(身份验证失败) 验证失败。

我已经在网上搜索过这个特定的主题,但我找不到任何有用的东西。仅是 mongo Shell 的示例,但与 Powershell 无关。我还尝试过添加一个名为 $mechanism 的变量并将其设置为“SCRAM-SHA-256”并将其包含在 mondodump 调用中,但它不起作用。

mongodb powershell backup sasl-scram
2个回答
1
投票

您想使用

--authenticationMechanism
选项来通过机制:

mongodump -h "$mongoDbHost" `
   -d "$databaseName" `
   -u "$username" `
   -p "$password" `
   -o "$directoryPath" `
   --authenticationMechanism $mechanism

0
投票

我遇到了同样的问题,将身份验证机制设置为“SCRAM-SHA-256”时也出现同样的错误。

结果我不小心为 --authenticationDatabase 选项使用了不同的变量。更改了以下选项,即使没有 --authenticationMechanism 选项,它现在也可以工作: --身份验证数据库管理

© www.soinside.com 2019 - 2024. All rights reserved.