Menu Docs

Página inicial do DocsCorretor de serviço aberto do Atlas

Gerenciar usuários do banco de dados

Nesta página

  • Pré-requisitos
  • Adicionar um usuário do banco de dados
  • Excluir um trigger de reconhecimento de data center

Importante

O Atlas Open Service Corretor está obsoleto. Usar o MongoDB Atlas Operator no lugar.

Você pode criar e excluir Atlas trigger de banco de dados por meio do Atlas Open Service Corretor.

Antes de gerenciar trigger de reconhecimento de data center, você deve implantar um conjunto de réplica.

Para criar um trigger de banco de dados, primeiro defina um recurso ServiceBinding em Kubernetes. Em seguida, o Atlas Open Service Corretor cria um trigger de reconhecimento de data center correspondente no Atlas.

1
  1. Copie o seguinte exemplo de definição de recurso.

    Esse é um arquivo YAML que você pode modificar para atender à configuração desejada.

    apiVersion: servicecatalog.k8s.io/v1beta1
    kind: ServiceBinding
    metadata:
    name: <USER_NAME>
    namespace: <NAMESPACE>
    spec:
    instanceRef:
    name: <CLUSTER_NAME>
  2. Abra seu editor de texto preferido e cole a definição do recurso em um novo arquivo de texto.

2

As configurações destacadas são necessárias para criar um usuário do banco de dados:

Chave
Descrição
Exemplo
metadata.name
O nome do recurso de vinculação de serviço no Kubernetes.
atlas-user-1
metadata.namespace
O namespace Kubernetes onde o recurso de vinculação de serviço é criado.
atlas
spec.intanceRef.name
O nome do recurso ServiceInstance no Kubernetes que corresponde ao seu cluster do Atlas.
my-atlas-cluster

Quando você cria um trigger de banco de dados, o Atlas Open Service Corretor gera aleatoriamente um nome de usuário e uma senha do Atlas para o trigger de banco de dados. O catálogo de serviços armazena automaticamente o nome de usuário, a senha e o URI de conexão do Atlas dos usuários em um segredo do Kubernetes.

Se você não especificar configurações adicionais, o usuário do banco de dados será criado com os seguintes atributos padrão:

  • SCRAM-SHA autenticação no reconhecimento de data center admin

  • readWriteAnyDatabase permissões no reconhecimento de data center admin

3

Você pode definir configurações adicionais para o usuário na chave spec.parameters.user . Essas configurações correspondem aos parâmetros do corpo da solicitação do método Criar uma API Pública de trigger de banco de dados .

Importante

Os seguintes parâmetros da API são substituídos pelas configurações necessárias do Atlas Open Service Agent da etapa anterior e não devem ser especificados:

  • databaseName

  • groupId

  • password

  • username

Exemplo

Esta definição de recurso de exemplo cria:

  1. um recurso do Kubernetes chamado atlas-user-1 no namespace atlas e

  2. um trigger de banco de dados do Atlas com a seguinte configuração:

    • SCRAM-SHA autenticação no reconhecimento de data center do admin com nome de usuário e senha gerados aleatoriamente

    • readWrite permissões para a coleção listingsAndReviews no banco de dados sample_airbnb

    • dbAdmin permissões para o reconhecimento de data center sample_geospatial

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: atlas-user-1
namespace: atlas
spec:
instanceRef:
name: my-atlas-cluster
parameters:
user:
roles:
- databaseName: sample_airbnb
collectionName: listingsAndReviews
roleName: readWrite
- databaseName: sample_geospatial
roleName: dbAdmin
4
5

Invoque o seguinte comando do Kubernetes para criar seu trigger de reconhecimento de data center:

kubectl apply -f atlas-user-1.yaml
6

Para visualizar o status do novo usuário no cluster do Kubernetes, passe o metadata.name de replica-set.yaml para o seguinte comando:

svcat describe instance <METADATA.NAME> -n <METADATA.NAMESPACE>

O status do usuário aparece em Bindings.

Exemplo

Bindings:
NAME STATUS
+---------------+--------+
atlas-user-1 Ready

Para ter uma visão detalhada do usuário, passe o metadata.name de atlas-user-1.yaml para o seguinte comando:

svcat describe binding <METADATA.NAME> -n <METADATA.NAMESPACE>

O comando retorna os detalhes do usuário.

Exemplo

Name: atlas-user-1
Namespace: atlas
Status: Ready - Injected bind result @ 2019-08-24 20:57:43 +0000 UTC
Secret: atlas-user-1
Instance: my-replica-set
Parameters:
user:
roles:
- collectionName: listingsAndReviews
databaseName: sample_airbnb
roleName: readWrite
- databaseName: sample_geospatial
roleName: dbAdmin
Secret Data:
password 44 bytes
uri 58 bytes
username 36 bytes
7

Os detalhes da conexão do usuário são armazenados em um segredo que tem o mesmo nome e namespace que o recurso ServiceBinding . O segredo é codificado em base64 pelo Kubernetes e contém o nome de usuário Atlas, a senha e o URI do usuário.

  1. Passe metadata.name e metadata.namespace de atlas-user-1.yaml para o seguinte comando para recuperar o segredo do Kubernetes para o usuário:

    kubectl get secret <METADATA.NAME> -n <METADATA.NAMESPACE> -o yaml

    O comando retorna a senha do Atlas codificado em base64, e o nome de usuário do usuário:

    Exemplo

    apiVersion: v1
    data:
    password: MlFhTnB4NzNoaEYwZWFKFMCjRUlNU2Iwbk5OMnJPT0JGZnZOeldKMS16Zz0=
    uri: bW9uZ29kYitzcnY6Ly8wMTY5YjA5My1jNTEyLTExZTktOGQyMC1kbjZyNy5tb25nb2RiLXFhLm5ldA==
    username: NTJjMzVlNjctYzdhMy0xMWKR7ThkMjAtMDI0MmFjMTEwMDA3
    kind: Secret
    metadata:
    creationTimestamp: "2019-08-26T01:46:30Z"
    name: atlas-user-1
    namespace: atlas
    ownerReferences:
    - apiVersion: servicecatalog.k8s.io/v1beta1
    blockOwnerDeletion: true
    controller: true
    kind: ServiceBinding
    name: atlas-user-1
    uid: 52c35ea1-c7a3-11e9-8d20-0242ac113457
    resourceVersion: "79692"
    selfLink: /api/v1/namespaces/atlas/secrets/atlas-user-1
    uid: 14829566-4859-4b47-97f6-d0a2f7425906
    type: Opaque
  2. Passe data.username do segredo para o seguinte comando para decodificar o nome de usuário Atlas do usuário:

    echo '<DATA.USERNAME>' | base64 --decode

    O comando retorna o nome de usuário decodificado do Atlas:

    Exemplo

    52c35e67-c7a3-11e9-8d20-0374ac110007

    Repita o comando com data.password e data.uri para decodificar a senha e o URI do Atlas do usuário.

    echo '<DATA.PASSWORD>' | base64 --decode
    echo '<DATA.URI>' | base64 --decode

Dica

Conectando ao seu cluster do Atlas

Para se conectar ao seu sistema, passe o URI do Atlas e o nome de usuário decodificados para o seguinte comando:

mongo <DECODED_URI> --username <DECODED_USERNAME>

Quando a senha for solicitada, digite a senha decodificada do Atlas pelo usuário.

Para excluir um trigger de banco de dados, passe o metadata.name do recurso ServiceBinding para um dos seguintes comandos:

kubectl delete servicebindings <METADATA.NAME> \
-n <METADATA.NAMESPACE>

Para confirmar que o usuário foi excluído, passe o metadata.name do recurso do cluster para o seguinte comando:

svcat describe instance <METADATA.NAME> -n <METADATA.NAMESPACE>

O comando retorna No bindings defined em Bindings.

Compartilhar feedback
© 2023 MongoDB, Inc.

Sobre

© 2023 MongoDB, Inc.