Menu Docs

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

Use SCRAM para autenticar clientes

Nesta página

  • Procedimento
  • Próximos passos

O procedimento a seguir configura o SCRAM para autenticação do cliente em uma instância standalone mongod.

Para usar a autenticação SCRAM para conjuntos de réplica ou clusters fragmentados, consulte Implementar conjunto de réplicas com autenticação de arquivo chave.

1

Inicie uma instância do mongod independente sem controle de acesso.

Abra um terminal e execute o seguinte comando como o usuário mongod:

mongod --port 27017 --dbpath /var/lib/mongodb

A instância do mongod neste tutorial utiliza port 27017 e o diretório de dados do /var/lib/mongodb.

O tutorial pressupõe que o diretório /var/lib/mongodb existe e é o padrão dbPath. Você pode especificar um diretório de dados ou porta diferente conforme necessário.

Dica

Quando o mongod inicia, ele cria alguns arquivos do sistema no diretório /var/lib/mongodb. Para garantir que os arquivos do sistema tenham a propriedade correta, siga este tutorial como o usuário mongod. Se você iniciar o mongod como o usuário do root você terá que atualizar a propriedade do arquivo mais tarde.

2

Abra um novo terminal e conecte ao sistema do banco de dados com mongosh:

mongosh --port 27017

Se você estiver conectando a um sistema diferente, especifique opções de linha de comando adicionais, como --host, conforme necessário para conectar.

3

Importante

Exceção do Localhost

Você pode criar o administrador do usuário antes ou depois de habilitar o controle de acesso. Se você ativar o controle de acesso antes de criar qualquer usuário, o MongoDB fornecerá uma exceção localhost que lhe permitirá criar um usuário administrador no banco de dados admin. Depois de criado, você deve autenticar como administrador do usuário para criar usuários adicionais.

Utilizando mongosh:

  1. trocar para o banco de dados admin

  2. adicione o usuário do myUserAdmin com as funções userAdminAnyDatabase e readWriteAnyDatabase ":

use admin
db.createUser(
{
user: "myUserAdmin",
pwd: passwordPrompt(), // or cleartext password
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

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.

A role userAdminAnyDatabase permite que esse usuário:

  • criar usuários

  • conceder ou revogar roles de usuários

  • criar ou modificar funções aduaneiras

É possível atribuir ao usuário funções internas adicionais ou funções definidas pelo usuário, conforme necessário.

O banco de dados onde você cria o usuário, neste exemplo admin, é o banco de dados de autenticação do usuário. Embora o usuário precise autenticar neste 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.

4

Desligue a instância mongod . Usando mongosh, envie o seguinte comando:

db.adminCommand( { shutdown: 1 } )

Sair mongosh.

Inicie o mongod com o controle de acesso habilitado.

  • Se você iniciar o mongod a partir da linha de comando, adicione a opção da linha de comando --auth :

    mongod --auth --port 27017 --dbpath /var/lib/mongodb
  • Se você iniciar o mongod utilizando um arquivo de configuração, adicione a configuração do arquivo de configuração do security.authorization :

    security:
    authorization: enabled

Os clientes que se conectam a essa instância agora devem autenticar eles mesmos e só podem realizar ações conforme determinado por seus roles atribuídos.

Importante

Exceção do Localhost

Você pode criar usuários antes ou depois de habilitar o controle de acesso. Se você habilitar o controle de acesso antes de criar qualquer usuário, o MongoDB fornecerá uma exceção localhost que permite criar um administrador de usuário no banco de dados admin. Depois de criado, você deve autenticar como administrador do usuário para criar usuários adicionais.

5

Usando mongosh, você pode:

Para usar a autenticação SCRAM para conjuntos de réplica ou clusters fragmentados, consulte Implementar conjunto de réplicas com autenticação de arquivo chave.

← SCRAM
x.509 →