Config Authorization in MongoDB v3.x -> 4.x

Hello all,

Hôm nay mình sẽ trở lại với bài viết vẫn về chủ đề MongoDB và MongoID.

Bắt đầu từ phiên bản MongoDB 3.x trở lên, tính năng xác thực người dùng được enable nhằm hạn chế những vấn đề về bảo mật cho database. Rất nhiều bạn bở ngỡ khi upgrade lên version mới và không thể kết nối được vào database như cũ. => Lời khuyên của mình là đừng lo lắng !.

Sau đây mình sẽ hướng dẫn cụ thể khi bạn gặp vào trường hợp này.

Với việc bạn nâng cấp từ các bản 2 lên 3 rồi lại lên 4, các bạn cần chú ý phải nâng theo trình tự và phải check tính năng Feature Compatibility Version

Chỉ có như vậy thì vấn đề về dữ liệu của bạn sẽ được bảo toàn.

Phần tiếp theo sau khi đã nâng cấp đến version bạn mong muốn, chúng ta sẽ cùng config (mà thực tế ở đây là phân quyền cho user và database) như sau:

File config mặc định sau khi cài đặt hoặc nâng cấp sẽ như sau: (macos)

Lệnh chạy mongodb sẽ như sau: (macos)

Với việc chạy database như trên ta sẽ không thể kết nối với database cũ, vì các bản mongodb  3.x đã thêm việc phải xác thực user và datase.

Lúc này hãy chuyển dòng: authorization sang gía trị

Thực hiện chạy lại mongod, lúc này chúng ta đang ở trạng thái có thể truy cập vào db nhưng không cần chứng thực. Việc tiếp theo là cấp quyền cho user và db.

Giả sử mình muốn tạo một db cho dự án mới có tên là ‘project1’ có username là ‘user_project1’, password là ‘your_secure_password’, khi đó user này chỉ có thể quản lý được database ‘project1’.

Dùng lệnh:

Khi đó ta đang ở dùng db là project1, tiếp theo ta sẽ add user như sau:

Khi nhận được dòng thông báo đã xem thành công thì xem như công việc đã xong.

Các bạn có thể tham khảo thêm về các roles:

Xem thêm thông tin tại Built-in Roles

Đối với các database đã có sẵn, bạn cũng có thể phân quyền tương tự như vậy với việc dùng lệnh

Và tạo một user áp lên chính database đó.

Sau đó chúng chỉnh option:

Và khỏi động lại mongod. Từ bây giờ việc connect vào database sẽ có dạng như sau:

Chúc các bạn connect thành công và không quá mất nhiều thời gian với việc config sau khi nâng cấp mongodb.

P/s:

Config sample ruby-mongoid:

Config sample python- mongoengine:

Hẹn gặp lại các bạn ở bài sau.

 

Tiến An

Admin tại RubySG.com

You may also like...