sql >> Databáze >  >> NoSQL >> MongoDB

Připojení k databázím MongoDB


Úvod

Jakmile budete mít k dispozici server MongoDB, jednou z prvních a nejběžnějších akcí, které budete muset provést, je připojení ke skutečné databázi. To vyžaduje koordinaci, abyste se ujistili, že databáze je nakonfigurována tak, aby se váš klient mohl připojit a ověřit.

To znamená, že budete muset pochopit, jak se připojit k databázi MongoDB poskytnutím umístění serveru, parametrů připojení a správných přihlašovacích údajů. V této příručce se zaměříme na to, jak se připojit k databázi ze strany klienta pomocí mongo Shell klient MongoDB, určený hlavně pro interaktivní relace s vašimi databázemi.

V doprovodné příručce můžete zjistit, jak nakonfigurovat nastavení ověřování MongoDB tak, aby odpovídalo vašim požadavkům. Zvažte přečtení obou částí, abyste získali úplný obrázek o tom, jak je autentizace implementována z pohledu obou stran.



Základní informace o mongo klient

mongo client je JavaScriptový klient příkazového řádku pro připojení, ovládání a interakci s databázovými servery MongoDB. V mnoha ohledech je to nejjednodušší způsob, jak se připojit a začít používat vaši databázi MongoDB, protože je součástí instalace MongoDB a je k dispozici na všech populárních platformách. mongo klient je zvláště užitečný pro provádění počáteční konfigurace a pro interaktivní relace, kde chcete prozkoumat svá data nebo iterovat dotazy na základě předběžných výsledků.

Způsob, jakým se připojujete k mongo shell závisí na konfiguraci serveru MongoDB a dostupných možnostech pro ověření k účtu. V následujících částech si projdeme některé základní možnosti připojení. V zájmu přehlednosti budeme rozlišovat mezi místním a vzdáleným připojením:

  • místní připojení :připojení, kde jsou klient a instance MongoDB umístěny na stejném serveru
  • vzdálené připojení :kde se klient připojuje k instanci MongoDB přístupné ze sítě běžící na jiném počítači

Začněme připojením k databázi ze stejného počítače.



Připojení k místní databázi pomocí mongo

Bez jakýchkoli argumentů, mongo příkaz se pokusí připojit k místní instanci MongoDB.

Za tímto účelem se pokusí připojit k portu 27017 na adrese místní smyčky:127.0.0.1:27017 . Toto je jedno z rozhraní, ke kterému se servery MongoDB vážou ve své výchozí konfiguraci (MongoDB může být také přístupný prostřednictvím souboru místního soketu).

K místnímu serveru MongoDB běžícímu s výchozí konfigurací se můžete připojit zadáním:

mongo

Při úspěšném připojení pravděpodobně uvidíte poměrně dlouhou sadu zpráv následovanou výzvou prostředí MongoDB:

 MongoDB shell version v4.4.6 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("9cf2d126-d25f-4ed8-b159-ef3bba4fcc53") } MongoDB server version: 4.4.6 --- The server generated these startup warnings when booting:         2021-06-04T12:26:53.374+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem         2021-06-04T12:26:54.562+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted --- ---         Enable MongoDB's free cloud-based monitoring service, which will then receive and display         metrics about your deployment (disk utilization, CPU, operation statistics, etc).          The monitoring data will be available on a MongoDB website with a unique URL accessible to you         and anyone you share the URL with. MongoDB may use this information to make product         improvements and to suggest MongoDB products and deployment options to you.          To enable free monitoring, run the following command: db.enableFreeMonitoring()         To permanently disable this reminder, run the following command: db.disableFreeMonitoring() --- >

Výstup zobrazuje protokoly generované mongo příkaz při navazování připojení, po kterém následují některá varování generovaná serverem MongoDB při spuštění. Nakonec je zde upozornění o monitorovací službě MongoDB, kterou můžete využít nebo ji deaktivovat.

Jedno z varování ze serveru MongoDB označuje, že řízení přístupu není aktuálně povoleno. To je důvod, proč jsme se mohli připojit bez poskytnutí přihlašovacích údajů nebo jiných ověřovacích podrobností.

Pokud se připojujete k místnímu serveru MongoDB, který byla nakonfigurována s řízením přístupu, budete muset pro připojení zadat další informace. Pro připojení pomocí přidruženého --username budete muset zadat alespoň uživatelské jméno a heslo a --password možnosti:

mongo --username <mongo_username> --password

Umístění --password možnost na konci a nezadání hesla v textu znamená, že chcete, aby místo toho MongoDB požadoval heslo. To je bezpečnější než zadání hesla v samotném příkazu, protože to může být viditelné nebo obnovitelné prostřednictvím historie shellu, seznamů procesů a dalších mechanismů.

Server MongoDB vás před připojením k databázi vyzve k zadání hesla uživatele:

MongoDB shell version v.4.4.6Enter password:

Po úspěšné autentizaci byste měli být připojeni k databázi a moci pokračovat v relaci jako obvykle.

Tyto informace můžete také poskytnout předáním připojovacího řetězce namísto použití --username a --password možnosti:

mongo "mongodb://<mongo_username>:@127.0.0.1"

Protože jsme uvedli, že uživatel má heslo s <username>: syntaxi, ale neposkytli žádnou, mongo shell vás vyzve k zadání hesla.

Případně se můžete také ověřit po připojení k normálnímu mongo pomocí db.auth příkaz.

Nejprve se připojte k databázi MongoDB bez zadání přihlašovacích údajů:

mongo

Zobrazí se vám příkazový řádek jako obvykle, ale pokud je povoleno řízení přístupu, nebudete mít oprávnění provádět mnoho akcí, dokud se neověříte. Například show dbs příkaz bude pravděpodobně prázdný, protože nemáte přístup k dotazování na dostupné databáze:

show dbs

Pro ověření nejprve vyberte databázi, ve které je váš uživatel definován. Nejčastěji to bude admin databáze:

use admin

Poté použijte db.auth() zadejte své uživatelské jméno a vyžádejte si výzvu k zadání hesla:

db.auth({user: "<mongo_username>", passwordPrompt()})

Budete vyzváni k zadání hesla uživatelského účtu jako dříve:

Enter password:

Pokud budete úspěšní, server vypíše 1 :

Enter password:1

Nyní budete mít běžný přístup uživatele, kterého jste ověřili jako:

show dbs
admin   0.000GBconfig  0.000GBlocal   0.000GB

Seznam ověřených uživatelů a rolí spojených s aktuálním připojením můžete kdykoli zobrazit zadáním:

db.runCommand("connectionStatus")
{        "authInfo" : {                "authenticatedUsers" : [                        {                                "user" : "root",                                "db" : "admin"                        }                ],                "authenticatedUserRoles" : [                        {                                "role" : "userAdminAnyDatabase",                                "db" : "admin"                        },                        {                                "role" : "readWriteAnyDatabase",                                "db" : "admin"                        }                ]        },        "ok" : 1}


Připojení ke vzdálené databázi

Pokud se chcete připojit ke vzdálené databázi MongoDB, budete muset při používání mongo zadat některé další podrobnosti shell.

Konkrétně budete muset zahrnout --host možnost a případně --port možnost také v případě, že server MongoDB naslouchá na jiném než výchozím portu. Téměř ve všech případech budete muset zadat také --user a --password také možnosti ověření na vzdáleném serveru.

Základní struktura příkazu při připojení ke vzdálené databázi MongoDB tedy vypadá asi takto:

mongo --host <mongo_server_address> --port <mongo_server_port> --user <mongo_username> --password

Jak je uvedeno v části o připojení k místní databázi, umístění --password možnost na konci a nezadání hesla v textu znamená, že chcete mongo shell místo toho vyzve k zadání hesla. To je bezpečnější než zadání hesla v samotném příkazu, protože to může být viditelné nebo obnovitelné prostřednictvím historie shellu, seznamů procesů a dalších mechanismů.

Server MongoDB vás před připojením k databázi vyzve k zadání hesla uživatele:

MongoDB shell version v.4.4.6Enter password:

Po úspěšné autentizaci byste měli být připojeni k databázi a moci pokračovat v relaci jako obvykle.

Tyto informace můžete také poskytnout předáním připojovacího řetězce namísto použití --host , --port , --username a --password možnosti:

mongo "mongodb://<mongo_username>:@<mongo_server_address>:<mongo_server_port>"

Protože jsme uvedli, že uživatel má heslo s <username>: syntaxi, ale neposkytli žádnou, mongo shell vás vyzve k zadání hesla.



Úprava konfigurace ověřování serveru MongoDB

Pokud chcete upravit pravidla, která určují, jak se uživatelé mohou ověřovat k vašim instancím MongoDB, můžete tak učinit úpravou konfigurace vašeho serveru. V tomto článku se dozvíte, jak upravit konfiguraci ověřování MongoDB.



Závěr

V této příručce jsme se zabývali ověřováním MongoDB ze strany klienta. Ukázali jsme, jak používat mongo shell pro připojení k místním i vzdáleným instancím databáze pomocí různých metod.

Když začnete pracovat s databázovým systémem, je důležité vědět, jak se připojit k různým instancím MongoDB. Můžete spustit místní instanci MongoDB pro vývoj, která nepotřebuje žádné speciální ověřování, ale vaše databáze ve fázi přípravy a produkce budou téměř jistě vyžadovat ověření. Možnost ověření v obou případech vám umožní dobře pracovat v různých prostředích.




  1. Jak mohu použít mongodb s elektronem?

  2. upgrade mongodb

  3. MongoDB findOneAndDelete()

  4. Přejít:Vytvořte rozhraní io.Writer pro přihlášení do databáze mongodb