Recentemente descobri o mongoDB, e como tem driver para PHP via Pecl, resolvi investigar…
Uma das primeiras coisas que me chamou atenção era a aparente falta de autenticação, controle de usuários, etc. Eis que hoje descobri como funciona:
Mais ou menos como o mySQL tem uma collection (admin) que, tendo-se usuário e senha para ele, se tem em todos os dbs do sistema. Para se ter auth, basta rodar o daemon com –auth
Em cada banco tem uma collection chamada system.users. Ex: num banco chamado projectx, tem uma collection projectx.system.users. Pra começar a autenticar, é preciso criar um usuário no banco admin (equivalente ao banco mysql):
$ ./mongo > use admin > db.addUser("theadmin", "anadminpassword")
Depois disso vai precisar autenticar para fazer ações administrativas:
> db.auth("theadmin", "anadminpassword")
Pra ver todos os usuários do sistema:
> db.system.users.find()
Criando usuários para um banco específico:
$ ./mongo > use projectx > db.addUser("joe", "passwordForJoe")
pode-se criar tb usuários somente leitura:
> use projectx > db.addUser("guest", "passwordForGuest", true)