我已经在我的mongoinstance上创建了两个具有以下角色的用户
use mydb
db.createUser(
{
user: "dbUser",
pwd: "dbPassword",
roles: [ { role: "dbOwner", db: "mydb" } ]
}
)
use admin
db.createUser(
{
user: "adminUser",
pwd: "adminPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
MongoDb up&使用以上凭据运行,现在当我尝试使用终端
中的以下命令获取mongodump时mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb
我收到以下错误,无法解决此问题
connected to: localhost:27017
assertion: 13 not authorized on admin to execute command { getParameter: 1, authSchemaVersion: 1 }
有什么想法吗?我在哪里做错了?
答案 0 :(得分:10)
正如@wdberkeley所建议的那样,通过将db name作为参数传递来解决问题
下面的命令运行正常
mongodump --host localhost --port 27017 -u dbUser -p dbPassword -d mydb
答案 1 :(得分:6)
mongodump不是Mongo shell命令,它是一个操作系统命令。
就像你运行mongo.exe从操作系统提示符启动shell一样,你应该从操作系统提示符以相同的方式运行mongodump。例如:
mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb
由于
答案 2 :(得分:0)
userAdminAnyDatabase不足以对所有数据库执行mongodump,这就是为什么您会收到此错误。您将需要具有以下权限的超级用户
:db.grantRolesToUser('username', [{
role: 'backup',
db: 'name of ur authentication db'
}])
特权在所有数据库上运行mongodump。
或者您只需要“备份”权限
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
GridPane pane = new GridPane();
pane.setAlignment(Pos.CENTER);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
int random = (int) (Math.random() * 3);
if (random != 2) {
String image = "file:///C:/Anime/A.pics/a1.jpg";
if(random>0){
image = "file:///C:/Anime/A.pics/a1.jpg";
}
else{
image = " file:///C:/Anime/A.pics/a2.jpg";
}
pane.add(new ImageView(new Image(image)), j, i);
}
}
}
Scene scene = new Scene(pane, 150, 150);
primaryStage.setTitle("Tic Tac Toe");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}