2016-02-16 2 views
0

Я пытаюсь создать администратора базы данных CRUD. Из того, что я прочитал из официальной документации, есть роль readWrite, но у меня нет процесса создания администратора.MongoDB 3.2 - создание администратора CRUD для определенной базы данных

Так что я побежал mongod без --auth и создал пользователя с этими параметрами:

use myCustomDB

db.createUser({ user: "snoop", pwd:"stickyickyicky", roles:[{role:"readWrite", db:"myCustomDB"}] });

Командная строка ответил успешно добавлен новый пользователь-бла-бла ..

но когда я аутентифицирую его, возвращается , который, я полагаю, равен true. Но когда я запускаю команду, например, db.peops.find(), это дает мне это Error: error: { "$err" : "not authorized for query on myCustomDB.peops", "co de" : 13 }

ответ

2

Это может быть ваш запрос. Попробуйте форматировать вот так:

db.getCollection('peops').find({}) 

Если это не так, это может быть ваша схема аутентификации. Это может быть не самый лучший метод, но я думал, что буду делиться шагами, которые я предпринимаю, чтобы настроить администратора суперданных и администратора базы данных и пользователя только для чтения. В прописном должны быть заменен соответствующим имя учетного/дб:

1.Change Монго безопасности Метод

  sudo service mongod start 
      mongo 
      use admin 
      db.system.version.remove({}) 
      db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 }) 

2.Create Суперадминистратор пользователь

  use admin 
      db.createUser({ user: "SUPERADMINUSER", pwd: "SUPERADMINPASS", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }) 

3.Create DB Admin с прочитанным доступ/запись

  use DATABASE 
      db.createUser({ user: "DBADMIN", pwd: "DBPASSWORD", roles: [ { role: "userAdmin", db: "DATABASE" }, { role: "readWrite", db: "DATABASE" }] }) 
      db.createUser({ user: "DBREADONLYUSER", pwd: "DBREADONLYPASS", roles: [ { role: "read", db: "DATABASE" }] }) 

4.Edit mongod.config в/и т.д. папку

  sudo service mongod stop 
      in mongod.config edit so that auth = true is not commented out. 

5. Перезапуск Монго, безопасность на месте

  sudo service mongod start 

*** Устранение: Если вы работаете Монго 3.2 вы можете вероятно пропустить db.system.version удалить и вставить команды, вы можете хотите/нужно обновить до SCRAM-SHA-1, если так запустить db.adminCommand ({authSchemaUpgrade: 1}); настроить пользователей таким же образом, как показано выше, при редактировании /etc/mongod.conf файла вместо AUTH = истинный комментарий в безопасности: добавить разрешение = истина следующим образом:

security: 
    authorization: enabled 
+0

благодарю вас, сэр, что работал аккуратно – Kilo

+0

рад слышать! – edencorbin

Смежные вопросы