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.
Menu Docs

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.

To use an example from this page, copy the code example into the sample application or your own application. Make sure to replace all placeholders in the code examples, such as <hostname>, with the relevant values for your MongoDB deployment.

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

The require statement in the sample application loads the MongoDB PHP Library and assumes that the vendor directory is in the same directory as your application file. If your application file is located elsewhere, adjust the path to vendor/autoload.php accordingly.

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

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,
);
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256';
$client = new MongoDB\Client($uri);

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,
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=<file path>&authMechanism=MONGODB-X509';
$client = new MongoDB\Client($uri);

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,
);
$uri = 'mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

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'],
);
$uri = 'mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

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],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true';
$client = new MongoDB\Client($uri);

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'],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCAFile=/path/to/ca.pem';
$client = new MongoDB\Client($uri);

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],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsDisableOCSPEndpointCheck=true';
$client = new MongoDB\Client($uri);

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'],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/client.pem';
$client = new MongoDB\Client($uri);

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>',
],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/client.pem&tlsCertificateKeyFilePassword=<password>';
$client = new MongoDB\Client($uri);

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:

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

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

Aviso

Definir a opção tlsInsecure como true pode expor seu aplicação a riscos de segurança. A ativação dessa opção torna seu aplicação desprotegido e potencialmente vulnerável a certificados expirados e a processos externos que se apresentam como instâncias de cliente válidas.

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

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

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:

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

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