Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Use o SCRAM para autenticar clientes em implantações autogerenciadas

Nesta página

  • Procedimento
  • Próximos passos

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

Para usar a autenticação SCRAM para conjuntos de réplicas ou clusters fragmentados, consulte Implantar conjunto de réplicas autogerenciadocom 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 cluster com mongosh:

mongosh --port 27017

Se você estiver conectando a outra implantação, 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.

Usando 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

Encerre a instância mongod. Utilizando o mongosh, emita o seguinte comando:

db.adminCommand( { shutdown: 1 } )

Saída de 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:

Inicie o mongosh com as opções de linha de comando -u <username>, -p e --authenticationDatabase <database> :

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myUserAdmin" -p

Digite sua senha quando solicitado.

Usando mongosh, conecte-se à sua implantação de banco de dados:

mongosh --port 27017

Em mongosh, alterne para o banco de banco de dados de autenticação (neste caso, admin) e use o método db.auth(<username>, <pwd>) para autenticar:

use admin
db.auth("myUserAdmin", passwordPrompt()) // or cleartext password

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.

Digite a senha quando solicitado.

Para usar a autenticação SCRAM para conjuntos de réplicas ou clusters fragmentados, consulte Implantar conjunto de réplicas autogerenciadocom autenticação de arquivo-chave.

Voltar

SCRAM