Bật, tắt chức năng đăng nhập MongoDB với username, password

Bật, tắt chức năng đăng nhập MongoDB với username, password.

Mặc định, sau khi cài MongoDB, bạn có thể truy cập MongoDB mà không cần username/password. Tuy nhiên trong nhiều trường chúng ta muốn sử dụng account (username/password) để quản lý việc truy cập database (cho phép xóa, đọc, chỉnh sửa…) thì chúng ta cần phải enable chức năng xác thực (authorization) của MongoDB lên.

(Xem thêm: Tạo user, phân quyền trên MongoDB)

Bật chức năng xác thực của MongoDB

Mặc định chức năng xác thực của MongoDB bị disable.

Để bật chức năng này nên ta có 2 cách:

Cách 1: với trường hợp start MongoDB bằng tay

Ta sử dụng  tham số -auth khi start MongoDB bằng lệnh mongod.

mongod -auth

Cách 2: enable cấu hình security trong file config của MongoDB.

Trong file config của MongoDB (mongod.cfg) ta thêm đoạn sau và lưu lại.

security:
  authorization: enabled

(Thông thường file mongod.cfg nằm trong folder cài đặt MongoDB, ví dụ trên máy của mình: C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg)

Sau đó khởi động lại MongoDB hoặc restart lại máy tính:

Bật, tắt chức năng đăng nhập MongoDB với username, password

Sau khi enable chức năng xác thực, nếu bạn không dùng username/password để đăng nhập thì khi thực hiện lệnh nào đó sẽ bị báo lỗi Unauthorized

Sau khi enable chức năng xác thực, nếu bạn không dùng username/password để đăng nhập thì khi thực hiện lệnh nào đó sẽ bị báo lỗi Unauthenticated:

Để đăng nhập MongoDB bạn cần phải cung cấp account(username/ password) và database chứa account đó với cú pháp:

mongo -u username -p password host:port/database_name

Ví dụ: đăng nhập MongoDB với account (kai/123456)

mongo -u kai -p 123456 localhost:27017/admin

Ví dụ đăng nhập mongodb bằng account

(Xem thêm: Tạo user, phân quyền trên MongoDB)

Đăng nhập với username/password trên Robo3T (RoboMongo)

Trên tab Authentication bạn tick vào ô Perform authentication sau đó nhập thông tin database, username, password.

Đăng nhập với username/password trên Robo3T (RoboMongo)

Tắt chức năng xác thực của MongoDB

Mặc định chức năng xác thực của MongoDB bị disable, nhưng nếu MongoDB của bạn đang bật chức năng đó mà muốn tắt đi thì làm như sau:

Cách 1: với trường hợp start MongoDB bằng tay

Ta sử dụng  tham số -noauth khi start MongoDB bằng lệnh mongod.

mongod -noauth

Cách 2: disable cấu hình security trong file config của MongoDB.

Trong file config của MongoDB (mongod.cfg) ta xóa hoặc comment lại đoạn sau và lưu lại.

security:
  authorization: enabled

 

 

Okay, Done!

Referecnes:

https://docs.mongodb.com/…/#security-options

stackjava.com