Descrição
Mongo(host, autoEncryptionOpts, api)JavaScript constructor to instantiate a database connection from
mongoshor from a JavaScript file.The
Mongo()method has the following parameters:ParâmetroTipoDescriçãohoststring ou instância
MongoOpcional. Host ou string de conexão.
The host can either be a connection string or in the form of
<host>or<host><:port>. The connection string can be in the form of aMongoinstance. If you specify aMongoinstance, theMongo()constructor uses the connection string of the specified Mongo instance.If omitted,
Mongo()instantiates a connection to the localhost interface on the default port27017.autoEncryptionOptsdocumento
Opcional. Parâmetros de configuração para ativar a criptografia em execução.
autoEncryptionOptsoverrides the existing in-use encryption configuration of the database connection. If omitted,Mongo()inherits the in-use encryption configuration of the current database connection.See
AutoEncryptionOptsfor usage and syntax details.apidocumento
Opcional. Opções de configuração para ativar a API Stable.
See
apifor usage and syntax details.
Dica
Compatibilidade
Esse método está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
AutoEncryptionOpts
O documento autoEncryptionOpts especifica opções de configuração para criptografia em execução. Se sua conexão de banco de dados tiver uma configuração de criptografia em uso existente, o autoEncryptionOpts substituirá esta configuração. O MongoDB oferece duas abordagens para a criptografia em execução: Criptografia em nível de campo do lado do cliente e Queryable Encryption.
For example, starting mongosh with client-side field level encryption command-line options enables client-side encryption for that connection. New database connections created using Mongo() inherit the encryption settings unless Mongo() includes autoEncryptionOpts.
O documento autoEncryptionOpts tem a seguinte sintaxe:
{ "keyVaultClient" : <object>, "keyVaultNamespace" : "<string>", "kmsProviders" : <object>, "schemaMap" : <object>, "bypassAutoEncryption" : <boolean>, "tlsOptions": <object>, "encryptedFieldsMap": <object> }
O documento autoEncryptionOpts recebe os seguintes parâmetros:
Parâmetro | Tipo | Descrição | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| (Opcional) O MongoDB cluster hospedando a coleção de cofre de chaves. Specify a If | |||||||||||||||||||||||||||
| string | (Obrigatório) O namespace completo da coleção de cofre de chaves. | |||||||||||||||||||||||||||
| documento | (Obrigatório) O Serviço de Gerenciamento de Chaves (KMS, na sigla em inglês) usado pela criptografia no nível do campo do lado do cliente para gerenciar uma Chave Mestra do Cliente (CMK, na sigla em inglês). A criptografia criptografia no nível do campo do lado do cliente usa a CMK para criptografar e descriptografar chaves de criptografia de dados. A criptografia no nível do campo do lado do cliente oferece suporte aos seguintes provedores de KMS: If possible, consider defining the credentials provided in
| |||||||||||||||||||||||||||
| documento | (Opcional) As regras automáticas de criptografia no nível do campo do lado do cliente especificadas usando a 4 sintaxe padrão do JSON schema e as palavras-chave específicas da criptografia. Esta opção é mutuamente exclusiva com Para obter a documentação completa, consulte Esquemas de criptografia. | |||||||||||||||||||||||||||
| booleano | (Opcional) Especifique | |||||||||||||||||||||||||||
| booleano | (Opcional) Especifique | |||||||||||||||||||||||||||
| booleano | (Opcional) Especifique | |||||||||||||||||||||||||||
| objeto | (Optional) The path to the TLS client certificate and private key file in PEM format ( | |||||||||||||||||||||||||||
| documento | (Opcional) O mapa de namespaces da coleção para documentos do Para saber mais sobre campos criptografados em Queryable Encryption, consulte Campos criptografados e queries ativadas. |
api
O parâmetro api especifica opções de configuração para a Stable API. É possível habilitar ou desabilitar o comportamento opcional usando as seguintes opções:
Opção | Tipo | Descrição |
|---|---|---|
| string | Especifica a versão da API. |
| booleano |
Se você especificar Se não for especificado, o padrão será |
| booleano | Se Se não for especificado, o padrão será |
O parâmetro api tem a seguinte sintaxe:
{ api: { version: <string>, strict: <boolean>, deprecationErrors: <boolean> } }
Exemplos
Conecte-se a um MongoDB Cluster
The following operation creates a new connection object from within a mongosh session:
cluster = Mongo("mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster")
Execute operações no objeto cluster para interagir com o cluster mymongo.example.net:27017:
myDB = cluster.getDB("myDB"); //returns the database object myColl = myDB.getCollection("myColl"); // returns the collection object
Conecte-se a cluster que tenha a criptografia do lado do cliente habilitada
Criar as opções de criptografia em nível de campo do lado do cliente
Crie as opções de criptografia no nível do campo do lado do cliente usando a string de chave local gerada:
let autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } }
Crie seu cliente criptografado
Use the Mongo() constructor with the client-side field level encryption options configured to create a database connection. Replace the mongodb://myMongo.example.net URI with the connection string URI of the target cluster.
encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
Execute operações no objeto cluster para interagir com o cluster mymongo.example.net:27017 e realizar criptografia explícita:
// returns the database object myDB = cluster.getDB("myDB"); // returns the collection object myColl = myDB.getCollection("myColl"); // returns object for managing data encryption keys keyVault = cluster.getKeyVault(); // returns object for explicit encryption/decryption clientEncryption = cluster.getClientEncryption();
Consulte criptografia em execução para obter uma lista completa dos métodos de criptografia no nível do campo do lado do cliente.
Conecte-se a um cluster com a criptografia automática do lado do cliente habilitada
Para configurar a criptografia no nível do campo do lado do cliente para uma chave gerenciada localmente:
gerar uma string de 96 bytes codificada em base 64sem quebras de linha
use
mongoshto load the key
export TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')") mongosh --nodb
The following operation creates a new connection object from within a mongosh session. The AutoEncryptionOpts option specifies the required options for enabling automatic client-side encryption on the hr.employees collection:
var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, process.env["TEST_LOCAL_KEY"]) } }, schemaMap : { "hr.employees" : { "bsonType": "object", "properties" : { "taxid" : { "encrypt" : { "keyId" : [UUID("bffb361b-30d3-42c0-b7a4-d24a272b72e3")], "bsonType" : "string", "algorithm" : "AEAD_AES_256_CBC_HMAC_SHA_512-Random" } }, "taxid-short": { "encrypt": { "keyId": [UUID("33408ee9-e499-43f9-89fe-5f8533870617")], "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", "bsonType": "string" } } } } } } cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", autoEncryptionOpts )
Execute operações no objeto cluster para interagir com o cluster mymongo.example.net:27017 e utilizar a criptografia automática:
// returns the database object myDB = cluster.getDB("myDB"); // returns the collection object myColl = myDB.getCollection("myColl"); myColl.insertOne( { "name" : "J Doe", "taxid" : "123-45-6789", "taxid-short" : "6789" } )
As regras de criptografia automática especificadas criptografam os campos taxid e taxid-short usando a chave de criptografia de dados e o algoritmo especificados. Somente os clientes configurados para o KMS correto e acesso à chave de criptografia de dados especificada podem descriptografar o campo.
The following operation creates a new connection object from within a mongosh session. The mongo.tlsOptions option enables a connection using KMIP as the KMS provider:
var csfleConnection = { keyVaultNamespace: "encryption.__keyVault", kmsProviders: { kmip: { endpoint: "kmip.example.com:123" } }, tlsOptions: { kmip: { tlsCertificateKeyFile: "/path/to/client/cert-and-key-bundle.pem" } } } cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", csfleConnection );
Consulte criptografia em execução para obter uma lista completa dos métodos de criptografia no nível do campo do lado do cliente.
Conectar-se a um cluster com a Stable API habilitada
The following operation creates a new connection object from within a mongosh session. The api option enables Stable API V1 and specifies that you cannot run deprecated command or commands outside of the Stable API.
cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", null, { api: { version: "1", strict: true, deprecationErrors: true } } )
Para interagir com o cluster mymongo.example.net:27017, execute operações no objeto cluster. Caso deseje ver uma lista completa dos comandos da Stable API, consulte a página Comandos da Stable API.