Hướng dẫn mongodb administration - quản trị mongodb

Docs Home → MongoDB ManualMongoDB Manual

The administration documentation addresses the ongoing operation and maintenance of MongoDB instances and deployments. This documentation includes both high level overviews of these concerns as well as tutorials that cover specific procedures and processes for operating MongoDB.

←  Transactions and OperationsProduction Notes →Transactions and OperationsProduction Notes →

Hướng dẫn mongodb administration - quản trị mongodb

Trong những bài thực hành trước đây mình chỉ dùng noauth để bỏ qua việc kết nối database với username password và việc phân quyền user vì các lý do:

a. Dễ trong việc thực hành thêm xóa sửa.

b. Các Tools UI như Robomongo chưa thể kết nối authentication vì mã hóa SCRAM-SHA-1 chưa được hỗ trợ trong phiên bản hiện tại (0.8.5) chờ bản 0.9.0 của nhà phát hành – do đó việc dùng tools để xem là không thể.

Vì lý do trên nên mình sẽ hướng dẫn tại bài này phần kết nối và làm việc với command line (cmd) windows

1. Các Roles của MongoDB

Xem lại bài viết Mô Tả Và Vai Trò Của Roles Trong MongoDB.

2. Start Mongodb với noauth

Mở Command Prompt bằng cách start rồi gõ cmd.

Dùng lệnh cd để trỏ về đường dẫn cài đặt Mongodb hoặc chạy thẳng lệnh đến file mongod.exe như bên dưới vì minh cài mongodb trên ổ C nên gọi từ c -> mongodb > folder bincd để trỏ về đường dẫn cài đặt Mongodb hoặc chạy thẳng lệnh đến file mongod.exe như bên dưới vì minh cài mongodb trên ổ C nên gọi từ c -> mongodb > folder bin

mình đang dùng path mặc định là c:\data\db

c:\>mongodb\bin\mongod.exe-noauth:\>mongodb\bin\mongod.exe-noauth

c:\>mongodb\bin\mongod.exe-noauth--path"c:\folder_chua_db":\>mongodb\bin\mongod.exe-noauth --path"c:\folder_chua_db"

Hướng dẫn mongodb administration - quản trị mongodb

Như vậy là đã start server xong bây giờ chúng ta mở thêm 1 cmd nữa dùng để làm client kết nối tới server

(ngay đoạn này các bạn có thể dùng robomongo kết nối vì nó ko cần authentication).

Như trên chúng ta cũng trỏ về thư mục cài MongoDB\bin hoặc chạy thẳng lệnh:

C:\Users\Admin>c:\mongodb\bin\mongo.exe:\Users\Admin>c:\mongodb\bin\mongo.exe

Hướng dẫn mongodb administration - quản trị mongodb

Bây giờ chúng ta dùng lệnh

Để xem có bao nhiêu database

Hướng dẫn mongodb administration - quản trị mongodb

3. Tạo System User Administrator

Trước tiên chúng ta dùng lệnh use admin để chọn database và để add user trên đó. Sau đó tạo user với name là SuperAdmin pass là 123456 roles userAdminAnyDatabase

useadminadmin

db.createUser({user:"SuperAdmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}).createUser({user:"SuperAdmin",pwd:"123456",roles:[{role: "userAdminAnyDatabase",db:"admin"}]})

Hướng dẫn mongodb administration - quản trị mongodb

Chúng ta đã thêm admin cho các database của MongoDB

4.Tạo UserAdmin cho từng database

Bây giờ mình sẽ tạo database là testadmin và tạo user admin riêng chỉ cho database này thôi

usetestadmintestadmin

db.createUser(.createUser(

  {{

    user:"dtmi",user:"dtmi",

    pwd:"987654",pwd:"987654",

    roles:[{role:"userAdmin",db:"testadmin"}]roles: [{role:"userAdmin",db:"testadmin"}]

  }}

)

Hướng dẫn mongodb administration - quản trị mongodb

Các bạn chú ý chỗ mình bôi xanh kẻo nhầm nhé, nếu các bạn muốn thêm nhiều rules thì add như sau:

usetestadmintestadmin

db.createUser(.createUser(

  {{

    user:"dtmi",user:"dtmi",

    pwd:"987654",pwd:"987654",

    roles:[roles: [

        {role:"userAdmin",db:"testadmin"},{role:"userAdmin",db:"testadmin"},

        {role:"role",db:"db"},{role: "role",db:"db"},

        {role:"role",db:"db"},        {role:"role",db:"db"},        

    ]]

  }}

)

Các bạn chú ý chỗ mình bôi xanh kẻo nhầm nhé, nếu các bạn muốn thêm nhiều rules thì add như sau:

5. Tạo 1 User chỉ cho Read Database

db.createUser(.createUser(

  {{

    user:"dtmitest",user:"dtmitest",

    pwd:"987654",pwd:"987654",

    roles:[roles:[

Chúng ta sẽ tạo thêm 1 user với roles là chỉ cho read không cho xóa xửa thêm để chúng ta có thể test phân biệt các roles với nhau{ role:"read",db:"testadmin"}  

    ]]

  }}

)

Hướng dẫn mongodb administration - quản trị mongodb

Các bạn chú ý chỗ mình bôi xanh kẻo nhầm nhé, nếu các bạn muốn thêm nhiều rules thì add như sau:

5. Tạo 1 User chỉ cho Read Database

Hướng dẫn mongodb administration - quản trị mongodb

Chúng ta sẽ tạo thêm 1 user với roles là chỉ cho read không cho xóa xửa thêm để chúng ta có thể test phân biệt các roles với nhau

        {role:"read",db:"testadmin"}  

Vậy là xong user mẫu để test rồi vì đang kết nối noauth chúng ta sẽ dùng robomongo để kiểm tra nhé.:\mongodb\bin\mongod.exe-auth

Hướng dẫn mongodb administration - quản trị mongodb

(các bạn có thể add user trên mongodb bằng cách dùng robomongo cũng đc)

6. Tắt và chạy lại server Mongodb với auth:\mongodb\bin\mongo.exe-uSuperAdmin-p123456localhost:27017/admin

Hướng dẫn mongodb administration - quản trị mongodb

Bây giờ chúng ta sẽ chạy lại server Mongodb với authentication để test

db.createCollection("abc").createCollection("abc")

Hướng dẫn mongodb administration - quản trị mongodb

c:\mongodb\bin\mongod.exe-auth

Mở tiếp 1 cmd thứ 2 để làm client kết nối vào server với Useradmin: SuperAdmin

db.createUser({user:"SuperAdmin2",pwd:"123456",roles:[{role:"root",db:"admin"}]}).createUser({user:"SuperAdmin2",pwd:"123456",roles:[{role:"root", db:"admin"}]})

Hướng dẫn mongodb administration - quản trị mongodb

c:\mongodb\bin\mongo.exe-uSuperAdmin-p123456localhost:27017/admin

Bây giờ chúng ta tạo 1 database và tạo 1 collection để test quyền admin:\mongodb\bin\mongo.exe-udtmitest-p987654localhost:27017/testadmin

Vì chúng ta đã tạo 1 dbAdminAnyDatabase với database là admin mà chưa cấp cho nó dùng testadmin

usetestadmin testadmin

db.createCollection("dtmi");.createCollection("dtmi");

Hướng dẫn mongodb administration - quản trị mongodb

)

Hướng dẫn mongodb administration - quản trị mongodb

Các bạn chú ý chỗ mình bôi xanh kẻo nhầm nhé, nếu các bạn muốn thêm nhiều rules thì add như sau:

Hướng dẫn mongodb administration - quản trị mongodb

5. Tạo 1 User chỉ cho Read Database

Chúng ta sẽ tạo thêm 1 user với roles là chỉ cho read không cho xóa xửa thêm để chúng ta có thể test phân biệt các roles với nhau

        {role:"read",db:"testadmin"}   :\mongodb\bin\mongo.exe-uuser1-p1234localhost:27017/testadmin

Hướng dẫn mongodb administration - quản trị mongodb

Vậy là xong user mẫu để test rồi vì đang kết nối noauth chúng ta sẽ dùng robomongo để kiểm tra nhé.document với quyền createWrite rồi.

(các bạn có thể add user trên mongodb bằng cách dùng robomongo cũng đc)

6. Tắt và chạy lại server Mongodb với auth

Bây giờ chúng ta sẽ chạy lại server Mongodb với authentication để testTạo user cấp phát quyền database Mongodb2015-04-15T09:55:40+07:00tuanthanhvoMongoDBadd user mongodb,mongodb roles

c:\mongodb\bin\mongod.exe-auth

Mở tiếp 1 cmd thứ 2 để làm client kết nối vào server với Useradmin: SuperAdmin võ tuấn[email protected]AdministratorCà phê Cà pháo, Trảm gió v.vTutorials Blog