Gerenciando usuários e funções

As implantações Databases for MongoDB vêm com a autenticação ativada e usam MongoDB's controle de acesso baseado em funções.

Inclua usuários na UI no Credenciais de serviço., com o Plug-in da CLI do Cloud Databases. ou o API do Cloud Databases..

O usuário administrativo

Ao provisionar uma implementação do Databases for MongoDB, um usuário do admin é criado automaticamente.

Configure a senha do administrador antes de usá-la para se conectar

O usuário admin tem as permissões a seguir:

  • userAdminAnyDatabase fornece os mesmos privilégios que userAdmin em todos os bancos de dados, exceto local e config. userAdminAnyDatabase fornece o poder administrativo para o usuário administrativo Ele fornece a ação listDatabases sobre o cluster como um todo. Com o userAdminAnyDatabase, crie e conceda funções a qualquer outro usuário em sua implementação, incluindo qualquer uma das funções integradas MongoDB. Por exemplo, para monitorar sua implementação, use admin para efetuar login no shell mongo e conceder a função clusterMonitor a qualquer usuário (incluindo ele mesmo). Use um comando como:

    db.grantRolesToUser(
     "admin",
     [
       { role: "clusterMonitor", db: "admin" }
     ]
    )
    
  • readWriteAnyDatabase fornece os mesmos privilégios que readWrite em todos os bancos de dados, exceto local e config.

  • dbAdminAnyDatabase fornece os mesmos privilégios que dbAdmin em todos os bancos de dados, exceto local e config.

Configuração da senha de administrador na interface do usuário

Defina sua senha de administrador por meio da interface do usuário, selecionando sua instância na IBM Cloud lista de recursos. Em seguida, selecione Configurações.. Em seguida, selecione Mudar senha do administrador de banco de dados

Configuração da senha de administrador na CLI

Use o comando cdb user-password do plug-in IBM Cloud CLI Cloud Databases para configurar a senha do administrador.

Por exemplo, para definir a senha de administrador para sua implementação, use o seguinte comando:

ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>

Definição da senha de administrador na API

O Foundation Endpoint que é mostrado na seção Detalhes da implantação do painel Visão geral do seu serviço fornece o URL de base para acessar essa implantação por meio da API. Use-o com o terminal Configurar a senha do usuário especificado para configurar a senha do administrador

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

Gerenciamento de usuários e funções por meio da interface do usuário

  1. Acesse o painel de serviço de seu serviço.
  2. Clique em Credenciais de serviço para abrir a seção Credenciais de serviço.
  3. Clique em Nova credencial
  4. Escolha um nome descritivo para a sua nova credencial.
  5. (Opcional) Especificar se as novas credenciais usam um terminal público ou privado. Use { "service-endpoints": "public" } / { "service-endpoints": "private" } no campo Incluir parâmetros de configuração sequenciais para gerar sequências de conexões que usam o terminal especificado. O uso do terminal não é cumprido. Ele apenas controla quais nomes do host estão nas sequências de conexões. Os terminais públicos são gerados por padrão.
  6. Clique em Add para provisionar as novas credenciais. Um nome do usuário, uma senha e um usuário do MongoDB associado são gerados automaticamente.

As novas credenciais aparecem na tabela, e as sequências de conexão estarão disponíveis como JSON em um campo click-to-copy sob Visualizar Credenciais.

A criação de um usuário a partir da CLI ou da API não preenche automaticamente as sequências de conexões desse usuário nas Credenciais de serviço. Se você desejar inclui-las lá, será possível criar uma nova credencial com as informações do usuário existentes. Insira o nome do usuário e a senha no campo JSON sob Incluir parâmetros de configuração sequenciais. Por exemplo, {"existing_credentials":{"username":"Robert","password":"supersecure"}}. Basicamente, você envia o nome de usuário e a senha, e Service Credentials gera as cadeias de conexão com as credenciais preenchidas.

A geração de credenciais de um usuário existente não verifica ou cria esse usuário.

Os usuários que você cria por Credenciais de serviço recebem as funções readWriteAnyDatabase e dbAdminAnyDatabase.

Se precisar que usuários criados a partir de Credenciais de serviço tenham uma função diferente, é possível usar o usuário administrativo para mudar a função deles.

Gerenciamento de usuários e funções por meio da CLI

Os usuários criados na CLI recebem as funções readWriteAnyDatabase e dbAdminAnyDatabase.

Se precisar que os usuários tenham uma função diferente, poderá usar o usuário admin para alterar sua função.

Os usuários criados diretamente da CLI não aparecem em Service Credentials, mas você pode adicioná-los.

  1. Se você gerenciar seu serviço por meio do plug-in da CLI Cloud Databases, crie um novo usuário com cdb user-create. Por exemplo, para criar um novo usuário para sua implementação, use o seguinte comando:
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
  1. Quando a tarefa for concluída, recupere as cadeias de conexão do novo usuário com o comando ibmcloud cdb deployment-connections.

  2. O MongoDB centraliza os dados do usuário no banco de dados admin. Liste todos os usuários e suas funções e permissões de banco de dados no mongo shell usando o comando show users.

ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users

Gerenciamento de usuários e funções por meio da API

Os usuários criados na API recebem as funções readWriteAnyDatabase e dbAdminAnyDatabase.

Se precisar que os usuários tenham uma função diferente, use o usuário administrador para alterar a função deles.

Os usuários criados diretamente da API não aparecem em Service Credentials, mas você pode adicioná-los.

O Terminal base que é mostrado na seção Visão geral de seu serviço fornece a URL base para acessar esta implementação por meio da API. Para criar e gerenciar usuários, use o URL básico com o /users endpoint.

O comando é semelhante a:

curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \

Para recuperar as sequências de conexões de um usuário, use a URL base com o terminal /users/{userid}/connections.

MongoDB-created usuários e funções

Se os usuários e as funções integrados não se adequarem ao seu ambiente, crie usuários e funções diretamente no MongoDB. O usuário administrador para sua implementação tem o poder de criar qualquer função ou conjunto de privilégios para uso em sua implementação.

Os usuários e funções criados diretamente no MongoDB não aparecem em Credenciais de serviço e não estão integrados à sua conta do IBM Cloud nem ao IAM.

O usuário ibm

Se você usar o mongo shell para listar os usuários em sua implantação, poderá notar um usuário chamado ibm. O usuário ibm é a conta raiz interna que gerencia a replicação, as operações de cluster e outras funções que asseguram a estabilidade de sua implementação. A alteração ou exclusão do usuário ibm não é recomendada e interrompe a estabilidade da sua implantação.

Os usuários ops_manager do MongoDB Enterprise Edition

O Ops Manager está disponível apenas em implementações do Databases for MongoDB Enterprise Edition. O tipo de usuário ops_manager tem permissões limitadas. Para obter mais informações, consulte a documentação do Ops Manager.