Criar um super-utilizador em mongo
Este é o código:
use admin
db.addUser( { user: "try1",
pwd: "hello,
roles: [ "userAdminAnyDatabase" ] } )
Depois parei o mongo, activei o auth e reiniciei o mongo.
Depois tentei criar uma base de dados com o seu utilizador.
de acordo com este guia: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/
use fragola
db.users.save( {username:"fragolino"} )
e eu percebo isto: "não autorizado para inserir no fragola.users "
Alguém me pode ajudar?2 answers
O papel userAdminAnyDatabase
dá ao utilizador a capacidade de criar utilizadores e atribuir-lhes funções arbitrárias. Por causa disso, esse usuário tem o poder de fazer qualquer coisa na base de dados, porque ele pode dar a qualquer um qualquer permissão (incluindo a si mesmo).
No entanto, a função userAdminAnyDatabase
por si só não permite ao Utilizador fazer mais nada além de atribuir direitos arbitrários a utilizadores arbitrários. Para realmente fazer algo na base de dados, esse usuário precisa ter o seguinte adicional funções:
readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin
Um utilizador que tenha os três direitos acima referidos e userAdminAnyDatabase
é um verdadeiro super-usuário e pode fazer qualquer coisa.
Do docs. mongodb. org-superusuário-papéis
Vamos escrever uma resposta que pareça simples e também simples de implementar
Passos:
1 : sudo apt-get install mongodb-org
- no novo terminal
2 : sudo mongod --port 27017 --dbpath /var/lib/mongodb
3 : mongo --port 27017
- no novo terminal
4 : use admin
5: como @drmirror disse, um utilizador deve ter tudo 4 papéis a serem superusuário
Para A Versão Mongo 2.
db.createUser(
{
user: "tom",
pwd: "jerry",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "clusterAdmin", db: "admin" }
]
})
Para A Versão 3 Do Mongo.
db.createUser(
{
user: "tom",
pwd: "jerry",
roles:["root"]
})
6 : sudo /etc/init.d/mongod stop
OU sudo service mongod stop
- no novo terminal
7 : sudo /etc/init.d/mongod start
ou sudo service mongod start
8 : restart your pc
9 : sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb
- no novo terminal
10: mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin"
- no novo terminal
Nota : o passo 10 é o passo mais importante .
Ele vai dar saída no terminal como
MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>