MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

criar banco de dados seguro no mongodb


Do Tutorial Mongo Java

O MongoDB pode ser executado em um modo seguro onde o acesso aos bancos de dados é controlado por meio de autenticação de nome e senha. Quando executado neste modo, qualquer aplicativo cliente deve fornecer um nome e uma senha antes de realizar qualquer operação. No driver Java, você simplesmente faz o seguinte com o objeto mongo conectado:
boolean auth = db.authenticate(myUserName, myPassword);

Se o nome e a senha forem válidos para o banco de dados, auth será true. Caso contrário, será falso. Você deve consultar o log do MongoDB para obter mais informações, se disponíveis.

A maioria dos usuários executa o MongoDB sem autenticação em um ambiente confiável.

Configurando autenticação e segurança

A autenticação é armazenada na coleção system.users de cada banco de dados. Por exemplo, em um banco de dados projectx, projectx.system.users conterá informações do usuário.

Devemos primeiro configurar um usuário administrador para todo o processo do servidor db. Este usuário é armazenado no banco de dados especial de administração.

Se nenhum usuário estiver configurado em admin.system.users, pode-se acessar o banco de dados a partir da interface localhost sem autenticação. Assim, a partir do servidor que executa o banco de dados (e, portanto, no localhost), execute o shell do banco de dados e configure um usuário administrativo:
$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

Agora temos um usuário criado para administrador de banco de dados. Observe que, se não tivermos autenticado anteriormente, agora devemos se desejar realizar outras operações, pois há um usuário em admin.system.users.
> db.auth("theadmin", "anadminpassword")

Podemos visualizar os usuários existentes para o banco de dados com o comando:
> db.system.users.find()

Agora, vamos configurar um usuário "regular" para outro banco de dados.
> use projectx
> db.addUser("joe", "passwordForJoe")

Por fim, vamos adicionar um usuário readonly. (suportado apenas em 1.3.2+)
> use projectx
> db.addUser("guest", "passwordForGuest", true)