Làm cách nào tôi có thể truy cập mongodb từ mọi nơi?

Trong hướng dẫn này, chúng ta sẽ học cách kết nối với MongoDB đang chạy trên một máy từ xa. Cấu hình mặc định của MongoDB chỉ cho phép các kết nối từ cùng một máy chủ nơi nó được cài đặt. MongoDB có thể được quản lý từ xa hoặc kết nối với một máy chủ ứng dụng riêng biệt bằng cách thực hiện một số thay đổi đối với cấu hình mặc định

Trước tiên, chúng tôi sẽ cài đặt MongoDB bằng bộ chứa docker, sau đó định cấu hình cài đặt MongoDB để truy cập từ một máy từ xa đáng tin cậy một cách an toàn. Điều quan trọng là chúng tôi đang kích hoạt kết nối từ xa, chúng tôi cũng cần bảo mật cài đặt MongoDB bằng cách tạo tài khoản người dùng quản trị cho cơ sở dữ liệu

Hãy xem xét các kết nối từ xa cho máy chủ MongoDB

2. Cài đặt MongoDB bằng Docker

Để thiết lập kết nối từ xa trong MongoDB, trước tiên chúng ta cần cài đặt MongoDB. Cách dễ nhất để thiết lập MongoDB trên máy Linux là sử dụng bộ chứa docker. Một trong những lợi ích của việc sử dụng docker cho MongoDB là cơ sở dữ liệu được chứa nhất quán trên nhiều môi trường, cho phép thiết lập phát triển nhanh hơn

Lệnh kéo hình ảnh Mongo Docker mới nhất

$ sudo docker pull mongo
Using default tag: latest
latest: Pulling from library/mongo
Digest: sha256:ad947856db716ddd0b9cc525e341c77208ed8dafcb4a6ad23f9b3addd7a4f71c
Status: Image is up to date for mongo:latest
docker.io/library/mongo:latest

Ở đây, trong lệnh trên, chúng ta đã kéo image Docker, bây giờ để minh họa, hãy chạy một container bằng nó

$ docker run -itd --name mongodb mongo
fda9c14e96a2e35e3daf89b5772d2fb2205c2679a1dc0c4a831c32690d40391c

Chúng tôi sẽ bắt đầu vùng chứa với tên vùng chứa “mongodb“

3. Tạo người dùng quản trị

Trước khi tiếp tục mở các kết nối từ xa cho MongoDB, trước tiên chúng ta cần kích hoạt xác thực trong MongoDB. Tuy nhiên, xác thực bị tắt trong cấu hình mặc định, có nghĩa là bất kỳ người dùng nào có quyền truy cập vào máy chủ chứa MongoDB đều có toàn quyền truy cập vào tất cả các cơ sở dữ liệu. Để bảo mật cơ sở dữ liệu, chúng tôi sẽ tạo người dùng quản trị và cho phép xác thực kết nối với cơ sở dữ liệu bằng cách sử dụng người dùng quản trị một cách an toàn

Trước tiên chúng ta cần vào shell bằng lệnh bên dưới để tạo người dùng quản trị

$ mongo

Để kích hoạt xác thực, chúng ta cần sử dụng quản trị cơ sở dữ liệu

use admin

Ở đây, chúng ta sẽ sử dụng phương thức createUser của cơ sở dữ liệu quản trị. Sử dụng điều này, chúng tôi có thể gán nhiều vai trò cho một người dùng. Các vai trò được gán cho người dùng quản trị cấp cho họ tất cả các đặc quyền cần thiết để tạo và sửa đổi người dùng cũng như đọc và ghi vào bất kỳ cơ sở dữ liệu nào

Phương thức createUser yêu cầu tên người dùng và mật khẩu cho người dùng và bất kỳ vai trò nào chúng tôi muốn người dùng có. Ở đây chúng ta cần tạo một tài liệu chứa tất cả các chi tiết liên quan đến thông tin đăng nhập và vai trò của người dùng

Để chứng minh, hãy gọi phương thức createUser để gán vai trò cho người dùng quản trị

db.createUser(
{
    user: "baeldung",
    pwd: "baeldung",
    roles: [
        { 
            role: "userAdminAnyDatabase", db: "admin" 
        },
        { 
            role: "readWriteAnyDatabase", db: "admin" 
        },
        {
            role: "dbAdminAnyDatabase",   db: "admin"
        }
    ]
});

Trong trường hợp này, đầu ra của lệnh trên sẽ là

Successfully added user: 
{
    "user" : "baeldung", 
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
	    "db" : "admin"
        },
	{
	    "role" : "readWriteAnyDatabase",
	    "db" : "admin"
	},
        { 
             "role" : "dbAdminAnyDatabase",
	     "db" : "admin"
	}
    ]
}

Trong lệnh trên, chúng tôi đã tạo một người dùng baeldung với mật khẩu “baeldung” và cung cấp toàn quyền truy cập cho người dùng này. passwordPrompt cũng có thể được sử dụng để nhắc mật khẩu trên thiết bị đầu cuối thay vì cung cấp nó trong JSON

db.createUser(
{
    user: "baeldung",
    pwd: passwordPrompt(),
    roles: [
        { 
            role: "userAdminAnyDatabase", db: "admin" 
        },
        { 
            role: "readWriteAnyDatabase", db: "admin" 
        },
        {
            role: "dbAdminAnyDatabase",   db: "admin"
        }
    ]
});

Một điểm quan trọng cần lưu ý là chúng ta cũng cần khởi động lại daemon MongoDB. Nếu không, những thay đổi sẽ không được phản ánh

4. Kích hoạt xác thực MongoDB

Bây giờ, quản trị viên của chúng tôi đã được thiết lập và người dùng dành riêng cho cơ sở dữ liệu đã được tạo. Tiếp theo, chúng ta phải kích hoạt MongoDB để bắt đầu sử dụng các điều khiển truy cập này. Cụ thể ở đây chúng ta cần cập nhật cấu hình của mongod. tập tin conf

$ sudo vi /etc/mongod.conf

trong mongod. conf, trước tiên chúng tôi phải nhận xét hoạt độngProfilingvà sau đó kích hoạt ủy quyền dưới sự bảo mật

________số 8_______

Cuối cùng, MongoDB thực thi kiểm soát truy cập cơ sở dữ liệu bằng các vai trò mà chúng ta đã tạo ở bước trước khi khởi động lại máy chủ

5. Định cấu hình IP liên kết công khai

Cho đến nay, chúng tôi đã cài đặt MongoDB bằng docker và kích hoạt cấu hình xác thực mongo. Theo mặc định, MongoDB chỉ chấp nhận các kết nối từ localhost. Do đó, chúng ta cần cho phép kết nối từ xa. trong mongod. conf tệp, chúng ta cần chuyển đến phần giao diện mạng và thay đổi bindIp thành 0. 0. 0. 0, có nghĩa là cho phép kết nối từ bất kỳ địa chỉ IP nào

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

Hơn nữa, chúng ta phải khởi động lại trình nền MongoDB để xem các thay đổi

6. Kết nối từ xa

Bây giờ chúng ta đã cấu hình MongoDB để lắng nghe các kết nối từ xa trên địa chỉ IP có thể định tuyến công khai của nó. Ở đây chúng tôi có thể kiểm tra xem máy từ xa có thể kết nối hay không. Để chứng minh, hãy kiểm tra lệnh để kết nối với MongoDB từ xa

$ docker run -itd --name mongodb mongo
fda9c14e96a2e35e3daf89b5772d2fb2205c2679a1dc0c4a831c32690d40391c
0

Sử dụng lệnh trên, chúng ta có thể truy cập MongoDB bằng xác thực

7. Phần kết luận

Trong bài viết này, chúng ta đã học cách định cấu hình quyền truy cập từ xa của MongoDB. Đầu tiên, chúng tôi đã cài đặt MongoDB bằng bộ chứa docker. Ngoài ra, chúng tôi cũng khám phá xác thực người dùng gán các vai trò khác nhau

Cuối cùng, chúng tôi đã kích hoạt xác thực và định cấu hình IP ràng buộc công khai. Nói tóm lại, chúng tôi đã cài đặt MongoDB và kích hoạt kết nối từ xa

tác giả dưới cùng

Nếu bạn có một vài năm kinh nghiệm trong hệ sinh thái Linux và bạn muốn chia sẻ trải nghiệm đó với cộng đồng, hãy xem Nguyên tắc đóng góp của chúng tôi

Làm cách nào để truy cập MongoDB bên ngoài máy chủ?

Để cho phép kết nối từ xa, bạn phải chỉnh sửa tệp cấu hình MongoDB — /etc/mongod. conf — để liên kết thêm MongoDB với một địa chỉ IP mà máy tính từ xa đáng tin cậy của bạn có thể truy cập được . Bằng cách này, bản cài đặt MongoDB của bạn sẽ có thể nghe các kết nối được tạo tới máy chủ MongoDB của bạn từ các máy từ xa.

Làm cách nào để sử dụng MongoDB từ xa?

Cách kết nối với máy chủ MongoDB từ xa của bạn .
Thiết lập người dùng của bạn. Đầu tiên ssh vào máy chủ của bạn và nhập shell mongo bằng cách gõ mongo. .
Cho phép xác thực và mở quyền truy cập MongoDB lên tới tất cả các IP. .
Mở cổng 27017 trên phiên bản EC2 của bạn. .
Bươc cuôi. khởi động lại daemon mongo (mongod).
12 yếu tố và dịch vụ vi mô dựa trên đám mây

Có bao nhiêu cách bạn có thể kết nối với MongoDB?

Studio 3T cung cấp bốn cách để kết nối với máy chủ MongoDB. Bạn có thể. Dán chuỗi kết nối MongoDB hoặc URI. Tự động nhập chi tiết kết nối từ các ứng dụng khách khác (e. g. Robo 3T)

Làm cách nào để kết nối MongoDB Compass từ xa?

Màn hình thiết lập kết nối Compass giúp bạn dễ dàng kết nối với máy chủ từ xa. Điều duy nhất bạn cần thay đổi là địa chỉ localhost. Thay vào đó, hãy nhập địa chỉ IP của máy chủ lưu trữ MongoDB rồi nhấp vào Kết nối .