Giới thiệu:
MongoDB , còn được gọi là Mongo , là một cơ sở dữ liệu mã nguồn mở được sử dụng trong nhiều ứng dụng web . Nó là một cơ sở dữ liệu NoSQL vì nó không dựa trên cấu trúc cơ sở dữ liệu quan hệ dựa trên table truyền thống. Thay vào đó, nó sử dụng các tài liệu giống JSON với các lược đồ động.
MongoDB không được bật xác thực theo 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ủ nơi cơ sở dữ liệu được cài đặt đều có thể thêm và xóa dữ liệu mà không bị hạn chế. Để khắc phục mình sẽ hướng dẫn tạo người dùng quản trị viên và kích hoạt xác thực.
Tạo quản trị viên:
Đầu tiên bạn phải kết nối với
mongo shell , chạy lệnh
mongo vì xác thực bị vô hiệu hóa nên ta không cần bất kì tùy chọn nào khác:
# mongo
Như các bạn đã thấy chưa kích hoạt xác thực nên ai cũng có thể truy cập vào cơ sở dữ liệu với quyền không bị hạn chế.
Hãy chạy lệnh sau sẽ hiện thị danh sách cơ sở dữ liệu , nếu bật xác thực nó sẽ hiện thị theo vai trò của người dùng.
show dbs
Để thêm quản trị viên các bạn cần phải kết nối tới cơ sở của
Admin , đây là nơi lưu trữ thông tin(tên , mật khẩu , vai trò)
use admin
Bây giờ chúng ta sẽ tạo người dùng quản trị viên trên phương thức có trước đó:
db.createUser(
Nhập dấu ngoặc nhọn ‘{‘:
Tiếp theo nhâp trường user: ở đây mình đặt tên cho quản trị viên là
adminCloudViet:
Nhâp trường password:
Tiếp theo nhập dòng này
Sau đó nhập các vai trò bạn muốn cho người quản trị, tối thiểu bạn nên cấp cho họ
user: AdminAnyDatabase . Điều này sẽ cho phép người dùng quản trị tạo sửa đổi người dùng với vai trò mới. .
Sau đó nhập dấu ngoặc nhọn và ngoặc đơn để kết thúc:
Nếu bạn nhập đúng thì khi khởi tạo xong nó sẽ bắt bạn nhập password mới vừa tạo:
Như trên chúng ta đã tạo thành công người dùng quản trị.
Khi đã tạo xong để thoát khỏi mongo ta dùng lệnh sau:
exit
Bật xác thực:
Mở tệp cấu hình của mongo tìm đến đoạn
security:
sudo nano /etc/mongod.conf
Sau đó bỏ dấu “#”
Thêm
authorization: enable vào :
Lưu và đóng tệp, sau đó Restart lại dịch vụ:
sudo systemctl restart mongod
Kiểm tra xem mongo có hoạt động không:
sudo systemctl status mongod
Sau khi thay đổi cấu hình thì mongo vẫn hoạt động bình thường.
Kiểm tra xác thực:
Để bắt đầu kiểm tra xem các yêu cầu xác thực bạn đã thêm trong bước trước có hoạt động chính xác hay không, hãy bắt đầu bằng cách kết nối mà không chỉ định bất kỳ thông tin xác thực nào để xác minh rằng các hành động của bạn thực sự bị hạn chế:
mongo
Bây giờ bạn đã bật xác thực, không có cảnh báo nào bạn gặp phải trước đó sẽ xuất hiện.
Xác nhận xem quyền truy cập của bạn có bị hạn chế hay không:
show dbs
Khi chạy này không show ra danh sách cơ sở dữ liệu nữa. Bây giờ ta đong mongo lại:
exit
Chạy lệnh mongo để xác thực người dùng quản trị viên kết nối với cở sở liệu của mongo bằng cách chạy lệnh sau:
mongo -u AdminSammy -p --authenticationDatabase admin
Nếu thành công nó sẽ yêu cầu bạn nhập mật khẩu của bạn khởi tạo trước đó.
Bây giờ bạn có thể xem danh sách cơ sở dữ liệu của mongo với tư cách quản trị viên
Phần kết:
Bằng cách hoàn thành hướng dẫn này, bạn đã thiết lập một người dùng MongoDB quản trị mà bạn có thể sử dụng để tạo và sửa đổi người dùng và vai trò mới, cũng như quản lý phiên bản MongoDB của bạn.
Bạn cũng đã định cấu hình phiên bản MongoDB của mình để yêu cầu người dùng xác thực bằng tên người dùng và mật khẩu hợp lệ trước khi họ có thể tương tác với bất kỳ dữ liệu nào.