Gerenciar usuários e papéis é uma parte crucial da administração de qualquer banco de dados, e o MongoDB não é exceção. Este capítulo do nosso curso abordará como criar, gerenciar e atribuir papéis aos usuários no MongoDB.
No MongoDB, a autenticação e a autorização são as duas principais maneiras de gerenciar a segurança. A autenticação verifica a identidade de um usuário, enquanto a autorização determina quais ações um usuário pode realizar. Em outras palavras, a autenticação é o processo de verificar quem você é, enquanto a autorização é o processo de verificar o que você tem permissão para fazer.
Para gerenciar usuários e papéis no MongoDB, você precisa entender como o MongoDB lida com a segurança. O MongoDB usa um modelo de segurança baseado em função, o que significa que você pode atribuir funções específicas a usuários específicos. Cada função tem um conjunto específico de privilégios que determinam o que o usuário pode fazer.
Para criar um novo usuário no MongoDB, você pode usar o comando db.createUser()
. Este comando cria um novo usuário e atribui um papel a ele. Por exemplo, o seguinte comando cria um novo usuário chamado "myUser" com a senha "myPassword" e a função "readWrite":
db.createUser( { user: "myUser", pwd: "myPassword", roles: [ "readWrite" ] } )
Este comando cria um novo usuário que tem permissão para ler e escrever dados. No entanto, este usuário não tem permissão para executar tarefas administrativas, como criar novos bancos de dados ou gerenciar usuários.
Se você quiser alterar a função de um usuário, você pode usar o comando db.updateUser()
. Este comando atualiza a função de um usuário existente. Por exemplo, o seguinte comando atualiza a função do usuário "myUser" para "dbAdmin":
db.updateUser( "myUser", { roles : [ "dbAdmin" ] } )
Este comando atualiza a função do usuário "myUser" para "dbAdmin", o que significa que este usuário agora tem permissão para executar tarefas administrativas.
Além disso, o MongoDB também permite que você crie suas próprias funções personalizadas. Para criar uma nova função, você pode usar o comando db.createRole()
. Por exemplo, o seguinte comando cria uma nova função chamada "readWriteAndAdmin":
db.createRole( { role: "readWriteAndAdmin", privileges: [ { resource: { db: "mydb", collection: "" }, actions: [ "find", "update", "insert", "remove", "createCollection", "dropCollection", "createIndex", "dropIndex", "viewOn", "collStats", "dbStats", "dbHash", "dbAdmin" ] } ], roles: [] } )
Este comando cria uma nova função que tem permissões para ler, escrever e administrar o banco de dados "mydb".
Em resumo, o gerenciamento de usuários e papéis no MongoDB é uma tarefa importante que ajuda a garantir a segurança do seu banco de dados. Ao entender como criar, gerenciar e atribuir papéis aos usuários, você pode garantir que cada usuário tenha os privilégios adequados para realizar suas tarefa.
No próximo capítulo, abordaremos como monitorar o desempenho do seu banco de dados MongoDB e como otimizá-lo para obter o melhor desempenho possível. Fique atento!