Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Proteja seus dados

O MongoDB suporta vários mecanismos que protegem sua conexão com o banco de dados . Esta página contém exemplos de código que demonstram cada um desses mecanismos.

Dica

Para saber mais sobre qualquer um dos mecanismos mostrados nesta página, consulte o link fornecido em cada seção.

Para usar um exemplo desta página, copie o exemplo de código no aplicação de amostra ou em seu próprio aplicação. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <hostname>, pelos valores relevantes para sua implantação do MongoDB .

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se a biblioteca PHP do MongoDB está instalada em seu projeto. Para saber mais sobre como instalar a biblioteca PHP do MongoDB , consulte o guia de download e instalação .

  2. Copie o seguinte código e cole-o em um novo arquivo .php .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

Dica

A declaração require no aplicativo de amostra carrega a biblioteca MongoDB PHP e assume que o diretório vendor está no mesmo diretório que o seu arquivo de aplicativo. Se o seu arquivo de aplicativo estiver localizado em outro lugar, ajuste o caminho para vendor/autoload.php de acordo.

<?php require __DIR__ . '/vendor/autoload.php'; // Start example code here // End example code here try { $client->test->command(['ping' => 1]); echo 'Successfully pinged the MongoDB server.', PHP_EOL;} catch (MongoDB\Driver\Exception\RuntimeException $e) { printf("Failed to ping the MongoDB server: %s\n", $e->getMessage());}

O seguinte código mostra como autenticar utilizando o mecanismo de autenticação SCRAM-SHA-256 :

$uriOptions = [ 'username' => '<username>', 'password' => '<password>', 'authSource' => '<authentication database>', 'authMechanism' => 'SCRAM-SHA-256',]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions,);

Para saber mais sobre a autenticação SCRAM-SHA-256, consulte Autenticação SCRAM no guia Autenticação.

O seguinte código mostra como criar um URI de conexão para autenticar utilizando o mecanismo de autenticação do X.509 :

$uriOptions = [ 'tls' => true, 'tlsCertificateKeyFile' => '<file path>', 'authMechanism' => 'MONGODB-X509',]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions,);

Para saber mais sobre a autenticação X.509, consulte Autenticação X.509 no guia de Autenticação.

As seções a seguir mostram como se conectar ao MongoDB usando o mecanismo de autenticação MONGODB-AWS . Quando você usa o MONGODB-AWS mecanismo, a MongoDB PHP biblioteca do tenta recuperar suas Amazon Web Services credenciais do das seguintes fontes, na ordem listada:

  1. Opções passadas para o construtor MongoDB\Client , como parte da string de conexão ou do parâmetro da array $uriOptions

  2. Variáveis de ambiente

  3. Solicitação Amazon Web Services EKS AssumeRoleWithWebIdentity

  4. Metadados do container ECS

  5. Metadados de instância do EC2

Cada seção mostra como autenticar com MONGODB-AWS ao recuperar suas credenciais do Amazon Web Services a partir de opções passadas para seu cliente ou fontes externas alternativas.

Para saber mais sobre como autenticar com o Amazon Web Services, consulte Autenticação do Amazon Web Services IAM no guia de autenticação.

O código a seguir mostra como passar as credenciais do Amazon Web Services para o construtor MongoDB\Client para autenticação com MONGODB-AWS:

$uriOptions = [ 'username' => '<AWS IAM access key ID>', 'password' => '<AWS IAM secret access key>', 'authMechanism' => 'MONGODB-AWS',]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions,);

Para saber mais sobre como autenticar com Amazon Web Services recuperando credenciais MongoDB\Client, consulte MongoDB\Client Credentials no guia Autenticação.

O código abaixo mostra como autenticar com MONGODB-AWS ao obter credenciais de variáveis de ambiente, uma solicitação AssumeRoleWithWebIdentity , metadados do ECS ou metadados de instância do EC2 :

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>', ['authMechanism' => 'MONGODB-AWS'],);

Para saber mais sobre como autenticar com Amazon Web Services obtendo credenciais externas, consulte as seguintes seções no guia de Autenticação:

O código a seguir mostra como habilitar o TLS para a conexão com sua instância do MongoDB :

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true],);

Para saber mais sobre como habilitar o TLS, consulte Habilitar TLS no guia Configuração do TLS.

O código a seguir mostra como especificar o caminho do arquivo CA para a conexão com a instância do MongoDB :

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsCAFile' => '/path/to/ca.pem'],);

Para saber mais sobre como especificar um arquivo CA, consulte Especificar um arquivo CA no guia de configuração TLS.

O seguinte código mostra como impedir que o driver entre em contato com o endpoint OCSP:

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsDisableOCSPEndpointCheck' => true],);

Para saber mais sobre como desativar as verificações OCSP, consulte OCSP no guia de configuração do TLS.

O seguinte código mostra como instruir o driver a verificar o certificado do servidor em relação a uma CRL:

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true], ['crl_file' => '/path/to/file.pem'],);

Para saber mais sobre como especificar uma CRL, consulte Lista de revogação de certificados no guia de configuração do TLS.

O seguinte código mostra como especificar o certificado do cliente que o driver apresenta para sua implantação MongoDB :

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsCertificateKeyFile' => '/path/to/client.pem'],);

Para saber mais sobre como especificar um certificado de cliente , consulte Apresentar um certificado de cliente no guia de configuração do TLS.

O seguinte código mostra como especificar a senha do seu certificado de cliente :

$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', [ 'tls' => true, 'tlsCertificateKeyFile' => '/path/to/client.pem', 'tlsCertificateKeyFilePassword' => '<password>', ],);

Importante

Ao substituir o <password> espaço reservado no URI de conexão, certifique-se de codificar o valor por porcentagem.

Para saber mais sobre como fornecer uma senha de arquivo de chave, consulte Fornecer uma senha de chave no guia Configuração TLS.

O código a seguir mostra como relaxar as restrições de TLS, que tem o mesmo efeito que desabilitar a validação do certificado e a verificação do nome do host:

// Warning: Use the tlsInsecure option only for testing. Don't use it in production.$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsInsecure' => true],);

Para saber mais sobre como permitir TLS inseguro, consulte Permitir TLS Inseguro no guia Configuração de TLS.

O seguinte código mostra como desabilitar a validação do certificado:

// Warning: Use the tlsAllowInvalidCertificates option only for testing. Don't use it in production.$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsAllowInvalidCertificates' => true],);

Para saber mais sobre como desativar a validação do certificado, consulte Permitir TLS inseguro no guia Configuração de TLS.

O seguinte código mostra como desabilitar a verificação de nome de host:

// Warning: Use the tlsAllowInvalidHostnames option only for testing. Don't use it in production.$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsAllowInvalidHostnames' => true],);

Para saber mais sobre como desativar a verificação de nome de host, consulte Permitir TLS inseguro no guia Configuração de TLS.

Aviso

Não use em produção

Sempre defina as opções tlsInsecure, tlsAllowInvalidCertificates e tlsAllowInvalidHostnames como false em produção. Você pode habilitar essas opções ao testar seu código.

Definir qualquer uma dessas opções para true em um ambiente de produção torna seu aplicativo inseguro. Seu aplicativo fica vulnerável a certificados expirados e a processos externos que se fazem passar por instâncias de cliente válidas.