Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Criar um usuário

Nesta página

  • Limitações do Atlas do MongoDB
  • Pré-requisitos
  • Procedimento
  • Configurar Usuários do Banco de Dados para Atlas MongoDB
  • Abra a caixa de diálogo Add New Database User.
  • Selecione Password.
  • Insira as informações do usuário.
  • Atribuir privilégios.
  • Opcional: especifique os recursos no projeto que o usuário pode acessar.
  • Opcional: salvar como usuário temporário.
  • Clique em Add User.
  • Configurar usuários para sistemas auto-hospedados
  • Conectar e autenticar
  • Criar usuários adicionais para seu sistema
  • Conectar à instância e autenticar como myTester
  • Insira um documento como myTester
  • Exemplos adicionais
  • Autenticação de nome de usuário/senha
  • Autenticação Kerberos
  • Autenticação LDAP
  • Autenticação de certificado de cliente x.509
  • Próximos passos

Com o controle de acesso habilitado, os usuários são obrigados a identificarem-se. Você deve conceder a um usuário uma ou mais funções. Uma função concede a um usuário privilégios para realizar determinadas ações nos recursos do MongoDB.

Cada aplicativo e usuário de um sistema MongoDB deve mapear para um usuário distinto. Esse princípio do isolamento de acesso facilita a revogação de acesso e a manutenção contínua do usuário. Para garantir um sistema com o mínimo privilégio, conceda apenas o conjunto de privilégios exigido a um usuário.

As informações do usuário nesta página se aplicam a sistemas hospedados em todos os ambientes a seguir, a menos que especificado de outra forma:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

As limitações a seguir se aplicam apenas a sistemas hospedados no MongoDB Atlas. Se algum desses limites apresentar um problema para sua organização, entre em contato com o suporte do Atlas.

Para poder criar usuários, você precisa:

Para a criação de usuário de rotina, você deve possuir as seguintes permissões:

Os papéis embutidos do userAdmin e userAdminAnyDatabase fornecem ações do createUser e grantRole em seus respectivos recursos.

Para criar usuários para o MongoDB Atlas, você deve ter acesso de Proprietário da Organização ou Proprietário do Projeto ao MongoDB Atlas. Essas funções são únicas para o MongoDB Atlas e são separadas dos usuários do banco de dados. Para saber mais, consulte Funções de Usuário do Atlas.

Observação

Os procedimentos a seguir usam a autenticação SCRAM . Para obter informações adicionais sobre outros mecanismos de autenticação, consulte Exemplos Adicionais.

Um projeto do Atlas MongoDB pode ter usuários com métodos de autenticação diferentes.

Você não pode alterar o método de autenticação de um usuário após criá-lo. Para usar um método de autenticação alternativo, você deve criar um novo usuário.

Configurar usuários do banco de dados para seu sistema do MongoDB Atlas que utiliza autenticação SCRAM:

Para configurar utilizadores de banco de dados para seu sistema auto-hospedado MongoDB Enterprise ou MongoDB Community, siga estas etapas:

1

Usando mongosh, conecte-se ao seu servidor primary mongod ou, em um cluster fragmentado, conecte-se ao seu mongos e autentique-se como administrador usuário ou um usuário com os privilégios necessários:

2

Observação

A etapa a seguir utiliza a autenticação SCRAM . Para obter informações adicionais sobre outros mecanismos de autenticação, consulte Exemplos Adicionais.

Após autenticar como o administrador de usuário, utilize o método db.createUser() para criar usuários adicionais. Você pode atribuir quaisquer funções internas ou funções definidas pelo usuário aos usuários.

A operação a seguir adiciona um usuário myTester ao banco de dados test que tem a função readWrite no banco de dados test e a função read no banco de dados reporting.

use test
db.createUser(
{
user: "myTester",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)

Dica

O método passwordPrompt() solicita que você insira a senha. Você também pode especificar sua senha diretamente como uma string. Recomendamos usar o método passwordPrompt() para evitar que a senha fique visível na tela e possa vazar a senha para o histórico do shell.

O banco de dados onde você cria o usuário (neste exemplo, test) é o banco de dados de autenticação do usuário. Embora o usuário autentique para este banco de dados, o usuário pode ter roles em outros bancos de dados. O banco de dados de autenticação do usuário não limita os privilégios do usuário.

Após criar os usuários adicionais, saia do mongosh.

3

Importante

Não é possível alternar entre usuários na mesma sessão do mongosh . Autenticar como um usuário diferente significa que a sessão tem os privilégios de ambos usuários autenticados. Para alternar entre usuários, saia e reinicie mongosh.

Depois de sair mongosh como myUserAdmin, reconecte-se como myTester:

4

Como o usuário myTester, você tem privilégios para executar operações de leitura e escrita no test banco de dados (assim como executar operações de leitura no banco de dados do reporting). Uma vez autenticado como myTester, insira um documento em uma coleção no banco de dados test. Por exemplo, você pode executar a seguinte operação de inserção no banco de dados test:

db.foo.insertOne( { x: 1, y: 1 } )

Dica

Veja também:

A seguinte operação cria um usuário no banco de dados reporting com o nome, senha e funções especificadas.

Dica

O método passwordPrompt() solicita que você insira a senha. Você também pode especificar sua senha diretamente como uma string. Recomendamos usar o método passwordPrompt() para evitar que a senha fique visível na tela e possa vazar a senha para o histórico do shell.

use reporting
db.createUser(
{
user: "reportsUser",
pwd: passwordPrompt(), // or cleartext password
roles: [
{ role: "read", db: "reporting" },
{ role: "read", db: "products" },
{ role: "read", db: "sales" },
{ role: "readWrite", db: "accounts" }
]
}
)

Os usuários que autenticam no MongoDB utilizando um mecanismo de autenticação externo, como Kerberos, devem ser criados no banco de dados do $external, que permite ao mongos ou mongod consulta em uma fonte externa para autenticação.

Para usar Client Sessions e Causal Consistency Guarantees com usuários de autenticação $external (usuários Kerberos, LDAP ou x.509), os nomes de usuário não podem ter mais de 10k bytes.

Para autenticação Kerberos, você deve adicionar o principal Kerberos como o nome de usuário. Você não precisa especificar uma senha.

A seguinte operação adiciona o principal reportingapp@EXAMPLE.NET Kerberos com acesso somente leitura ao banco de dados records:

use $external
db.createUser(
{
user: "reportingapp@EXAMPLE.NET",
roles: [
{ role: "read", db: "records" }
]
}
)

Dica

Veja também:

Para obter mais informações sobre como configurar a autenticação Kerberos para seu MongoDB deployment, consulte os seguintes tutoriais:

Os usuários que se autenticam no MongoDB usando um mecanismo de autenticação externo, como o LDAP, devem ser criados no banco de dados $external, que permite que mongos ou mongod consultem uma fonte externa para autenticação.

Para usar Client Sessions e Causal Consistency Guarantees com usuários de autenticação $external (usuários Kerberos, LDAP ou x.509), os nomes de usuário não podem ter mais de 10k bytes.

Para autenticação LDAP, você deve especificar um nome de usuário. Você não precisa especificar a senha, pois ela é administrada pelo serviço LDAP.

A seguinte operação adiciona o usuário reporting com acesso de somente leitura ao banco de dados records:

use $external
db.createUser(
{
user: "reporting",
roles: [
{ role: "read", db: "records" }
]
}
)

Dica

Veja também:

Para obter mais informações sobre como configurar a autenticação LDAP para seu MongoDB deployment, consulte os seguintes tutoriais:

Para saber mais sobre como configurar a autenticação LDAP para o MongoDB Atlas, consulte Adicionar Usuários do Banco de Dados na documentação do MongoDB Atlas.

Os usuários que se autenticam no MongoDB usando um mecanismo de autenticação externo, como a autenticação de certificado de cliente x.509, devem ser criados no banco de dados $external, que permite que mongos ou mongod consultem uma fonte externa para autenticação.

Para usar Client Sessions e Causal Consistency Guarantees com usuários de autenticação $external (usuários Kerberos, LDAP ou x.509), os nomes de usuário não podem ter mais de 10k bytes.

Para autenticação de certificados de clientes x.509, você deve adicionar o valor do subject do certificado de cliente como um usuário do MongoDB. Cada certificado de cliente x.509 exclusivo corresponde a um único usuário do MongoDB. Você não precisa especificar uma senha.

A operação a seguir adiciona o usuário do certificado do cliente CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry com acesso somente de leitura ao banco de dados records.

use $external
db.createUser(
{
user: "CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry",
roles: [
{ role: "read", db: "records" }
]
}
)

Dica

Veja também:

Para obter mais informações sobre como configurar a autenticação de certificados de clientes x.509 para seu MongoDB deployment, consulte os seguintes tutoriais:

Para saber mais sobre como configurar o x. Autenticação do Certificado de Cliente 509 para o MongoDB Atlas, consulte Adicionar Usuários do Banco de Dados na documentação do MongoDB Atlas.

Para gerenciar usuários, atribuir funções e criar funções personalizadas para sua implantação auto-hospedada do MongoDB Enterprise ou MongoDB Community, consulte Gerenciar Usuários e Funções.

Você também pode gerenciar usuários, atribuir funções e criar funções personalizadas para seu sistema do MongoDB Atlas.

← Usuários