Usuários em implantações autogerenciadas
Nesta página
Para autenticar um cliente no MongoDB, você deve adicionar um usuário correspondente ao MongoDB.
Gerenciamento de usuários
Você pode adicionar um usuário com o método db.createUser()
usando mongosh
. O primeiro usuário que você cria deve ter privilégios para criar outros usuários. A função userAdmin
ou userAdminAnyDatabase
conferem o privilégio de criar outros usuários.
Você pode conceder privilégios a um usuário atribuindo funções ao criá-lo. Você também pode conceder ou revogar funções, bem como atualizar senhas, atualizando os usuários existentes. Para uma lista completa de métodos de gerenciamento de usuários, consulte Gerenciamento de usuários.
Um usuário é identificado exclusivamente pelo nome do usuário e pelo banco de dados de autenticação associado. O MongoDB associa um usuário a um userId
exclusivo após a criação no MongoDB.
Usuários Gerenciados por LDAP
Os usuários gerenciados LDAP criados em um servidor LDAP não têm um documento associado na collection system.users e, portanto, não têm um campo userId
associado a eles.
Banco de dados de autenticação
Ao adicionar um usuário, você cria o usuário em um banco de dados específico. O banco de dados no qual você cria o usuário é o banco de dados de autenticação para o usuário.
Os privilégios de um usuário não estão limitados ao seu banco de dados de autenticação. Portanto, um usuário pode ter privilégios em diferentes bancos de dados. Para obter mais informações sobre funções, consulte Controle de acesso baseado em funções em implantações autogerenciadas.
O nome de um usuário e o banco de dados de autenticação servem como um identificador exclusivo para esse usuário. O MongoDB associa um usuário a um userId
exclusivo após a criação no MongoDB. No entanto, os usuários gerenciados LDAP criados em um servidor LDAP não têm um documento associado na collection system.users e, portanto, não têm um campo userId
associado a eles.
Se dois usuários tiverem o mesmo nome, mas forem criados em bancos de dados diferentes, eles serão dois usuários separados. Se você deseja ter um único usuário com permissões em vários bancos de dados, crie um único usuário com um papel para cada banco de dados aplicável.
Dados centralizados do usuário
Para usuários criados no MongoDB, o MongoDB armazena todas as informações do usuário, incluindo name
, password
e authentication
database
do usuário, na collection system.users no banco de dados do admin
.
Não modifique esta collection diretamente. Para gerenciar usuários, use os comandos de gerenciamento de usuários designados.
Usuários de cluster fragmentado
Para criar usuários para um cluster fragmentado, conecte-se a uma instância mongos
e adicione os usuários. Para se autenticar como um usuário criado em uma instância mongos
, você deve se autenticar por uma instância mongos
.
Em clusters fragmentados, o MongoDB armazena os dados de configuração do usuário no banco de dados do admin
dos servidores de configuração.
Usuários locais do shard
Algumas operações de manutenção, como compact
ou rs.reconfig()
, exigem conexões diretas com fragmentos específicos em um cluster fragmentado. Para executar essas operações, você deve se conectar diretamente ao shard e autenticar como um usuário administrativo local do fragmento.
Para criar um usuário administrativo local do fragmento, conecte-se diretamente ao primário do fragmento e crie o usuário. Para obter instruções sobre como criar um administrador de usuário local do fragmento, consulte o tutorial Implantar cluster fragmentado autogerenciado com autenticação de arquivos-chave.
O MongoDB armazena usuários locais do shard no banco de dados admin
do próprio shard. Esses usuários locais do shard são independentes dos usuários adicionados ao cluster fragmentado por meio de um mongos
. Os usuários locais do shard são locais para o shard e são inacessíveis por mongos
.
A partir do MongoDB 8.0, você pode usar a função directShardOperations
para realizar operações de manutenção que exigem que você execute comandos diretamente em um shard.
As conexões diretas com um fragmento devem ser usadas somente para manutenção e configuração específicas do fragmento. Em geral, os clientes devem se conectar ao cluster fragmentado por meio do mongos
.
Aviso
Executar comandos utilizando a função directShardOperations
pode fazer com que seu cluster pare de funcionar corretamente e pode causar corrupção de dados. Use a função directShardOperations
apenas para fins de manutenção ou sob a orientação do suporte do MongoDB . Quando terminar de executar as operações de manutenção, pare de usar a função directShardOperations
.