Tạo người dùng MongoDB ubuntu

MongoDB sử dụng các bộ sưu tập và bản thảo theo đó các tài liệu bao gồm các cặp khóa-giá trị, đơn vị dữ liệu cơ bản trong MongoDB. Ngược lại, các bộ sưu tập chứa các chức năng và tài liệu tương đương với các bảng cơ sở dữ liệu quan hệ

Tạo người dùng mới trong MongoDB

Để thêm người dùng mới vào hệ thống, MongoDB cung cấp một kỹ thuật nội bộ được gọi là db. tạo người dùng(). Trái ngược với các hệ thống Cơ sở dữ liệu truyền thống, người dùng MongoDB bị ràng buộc với cơ sở dữ liệu cục bộ được gọi là Cơ sở dữ liệu xác thực. Do đó, chúng không bị ràng buộc trên toàn cầu, giống như cơ sở dữ liệu SQL thông thường

Hơn nữa, cơ sở dữ liệu xác thực và tên người dùng đóng vai trò là mã định danh duy nhất. Do đó, nếu hai người dùng được tạo trong các cơ sở dữ liệu khác nhau nhưng có cùng tên, thì họ được xác định là hai người dùng riêng biệt. Do đó, nếu muốn tạo một người dùng có quyền trên nhiều cơ sở dữ liệu, thì nên cho phép một người dùng có quyền/vai trò đối với cơ sở dữ liệu hiện hành thay vì tạo Người dùng nhiều lần trong các cơ sở dữ liệu khác nhau

Ví dụ

db.createUser(

{       user: "Foss",

        pwd: "password",

         roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})

Lệnh quản lý người dùng

Tên/sDescriptioncreateUserPhương pháp này tạo một người dùng mới. dropAllUsersFromDatabaseXóa tất cả người dùng khỏi cơ sở dữ liệu. dropUserCấp một nhiệm vụ và các đặc quyền của nó cho người dùng. GrantRolesToUserMột vai trò và các đặc quyền liên quan của vai trò đó được chỉ định cho người dùng. thu hồiRolesFromUserXóa vai trò của người dùng. updateUser Phương thức này được sử dụng để cập nhật dữ liệu của người dùng. usersInfoPhương thức này trả về thông tin về người dùng được cung cấp

Thêm người dùng

Khi thêm người dùng vào một DB được chỉ định, hãy sử dụng “db. phương thức createUser()”. Điều quan trọng cần lưu ý là việc thêm người dùng bằng các tùy chọn đơn giản hơn nhiều so với việc chèn tài liệu người dùng vào cơ sở dữ liệu không quan hệ

Ví dụ

use foss               // specify the DB

db.createUser(

  {

    user: "fosslinux",

    pwd: passwordPrompt(),  // or cleartext password if you wish

    roles: [

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

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

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

       { role: "readWrite", db: "tutorialguides" }

    ]

  }

)

Khi bạn đã kết nối phiên bản MongoDB trong ví dụ trên, bạn có thể đính kèm nó vào foss DB để thực thi db. lệnh createUser(). Cơ sở dữ liệu được sử dụng sẽ đóng vai trò là Cơ sở dữ liệu xác thực của người dùng

Mật khẩu và tên người dùng được cung cấp trong tài liệu chứa lệnh gọi phương thức của chúng tôi dưới dạng các cặp khóa-giá trị. Việc sử dụng các vai trò kiểm soát quyền truy cập vào cơ sở dữ liệu. Người dùng phải có vai trò để truy cập bất kỳ cơ sở dữ liệu nào, ngay cả Cơ sở dữ liệu xác thực của chính nó. Ngoài ra, người dùng được cấp quyền truy cập vào các cơ sở dữ liệu khác trong hệ thống bằng các vai trò. Do đó, đặc quyền của người dùng không bị giới hạn đối với cơ sở dữ liệu xác thực của họ. Do đó, điều này cho phép người dùng có nhiều đặc quyền khác nhau trên nhiều cơ sở dữ liệu khi cần. Nguyên tắc đặc quyền tối thiểu cho phép người dùng giữ phạm vi truy cập của cơ sở dữ liệu càng nhỏ càng tốt. ‍

Cách tạo người dùng quản trị viên trong MongoDB

Tạo người dùng quản trị trong MongoDB được thực hiện bằng db. phương thức createUser(), cho phép bạn tạo một người dùng. Tuy nhiên, sau khi tạo người dùng, bạn cần gán vai trò quản trị viên. Các vai trò này cung cấp cho người dùng đặc quyền của quản trị viên

Tạo người dùng cho một cơ sở dữ liệu duy nhất trong MongoDB

Nếu chúng ta muốn tạo một người dùng chỉ làm việc với một cơ sở dữ liệu, chúng ta có thể sử dụng lệnh tương tự như trên, nhưng chúng ta phải sử dụng tùy chọn “userAdmin” một lần duy nhất

Ví dụ

db.createUser(

{        user: "Fosslinux",

         pwd: "password",

         roles:[{role: "userAdmin" , db:"Foss"}]})

phân tích mã

  1. Đầu tiên và quan trọng nhất, người ta phải chỉ định “tên người dùng” và “mật khẩu” sẽ được tạo
  2. Chỉ định vai trò cho Người dùng đó, là người quản trị cơ sở dữ liệu;
  3. Cuối cùng, tham số DB đặt cơ sở dữ liệu mà Người dùng sẽ có quyền quản trị

Quản lý người dùng

Để quản lý người dùng, người ta cần hiểu các vai trò cần được xác định vì MongoDB có toàn bộ danh sách các chức năng như vai trò đọc và vai trò đọc-ghi. Lệnh “read role” chỉ cho phép truy cập chỉ đọc vào cơ sở dữ liệu. “Vai trò đọc-ghi” cung cấp quyền truy cập đọc và ghi vào cơ sở dữ liệu;

Ví dụ

db.createUser(
{
            user: "Foss",

            pwd: "password",

            roles:[

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

    {
                        role: "readWrite" , db:"Guides"}

            }
                          ]
})

Ví dụ trên cho thấy rằng một người dùng có tên là Foss được tạo và gán một số vai trò trong nhiều DB. Trong cùng một mô hình, Foss được cấp quyền Chỉ đọc trên cơ sở dữ liệu “Hướng dẫn” và quyền Đọc-Ghi trên cơ sở dữ liệu “Hướng dẫn”

Thêm vai trò vào MongoDB

Vai trò cấp cho người dùng quyền truy cập vào tài nguyên MongoDB. Hơn nữa, MongoDB cung cấp một số vai trò tích hợp cho phép quản trị viên kiểm soát quyền truy cập vào hệ thống MongoDB. Tuy nhiên, khi các vai trò này không thể mô tả tập hợp các đặc quyền mong muốn, người ta có thể tạo các vai trò mới trong một cơ sở dữ liệu cụ thể. Ngoại trừ các chức năng được tạo trong cơ sở dữ liệu quản trị, một vai trò chỉ có thể bao gồm các quyền áp dụng cho cơ sở dữ liệu của nó và những quyền được kế thừa từ các vai trò khác

Vai trò được xác định trong cơ sở dữ liệu quản trị có thể chứa các quyền áp dụng cho cơ sở dữ liệu quản trị, cơ sở dữ liệu khác hoặc tài nguyên cụm và có thể kế thừa vai trò từ cơ sở dữ liệu khác. Để thiết lập vai trò mới, hãy sử dụng “db. createRole()” và chỉ định mảng quyền và mảng vai trò kế thừa

MongoDB xác định vai trò duy nhất bằng cách kết hợp tên cơ sở dữ liệu với tên vai trò. Mỗi vai trò nằm trong phạm vi cơ sở dữ liệu bạn tạo, nhưng MongoDB lưu trữ tất cả thông tin vai trò trong bộ sưu tập adminSystemRoles trong cơ sở dữ liệu quản trị. Chẳng hạn, các hành động của vai trò sáng tạo và vai trò cấp trên tài nguyên cơ sở dữ liệu phải đảm bảo rằng các vai trò được tạo và cấp trong cơ sở dữ liệu. GrantRole chỉ định các đặc quyền cho vai trò mới và vai trò kế thừa. Quản trị viên người dùng AnyDatabase và Quản trị viên người dùng vai trò tích hợp cung cấp CreateRole và cấp các hành động vai trò trên các tài nguyên tương ứng của họ

Để tạo một vai trò với các hạn chế xác thực được chỉ định, người ta phải đặt hành động AuthenticationRetrictions trên tài nguyên cơ sở dữ liệu, sau đó chức năng này được tạo

db. phương thức GrantRole cho User() nhận các đối số sau;

Tham sốTypeDescriptionUserStringĐặt tên của Người dùng để cấp vai trò. RolesArrayĐưa ra một loạt các vai trò bổ sung để cấp cho Người dùng. Viết tài liệu quan tâmĐó là tùy chọn và nhằm mục đích sửa đổi lệnh. Nó cũng nhận các trường giống với lệnh get last error

Tham số vai trò có thể chỉ định cả chức năng do người dùng xác định và chức năng tích hợp, có thể đạt được điều này bằng cách chọn vai trò có tên của nó. Điều này được thực hiện bằng cách kết nối với mongod (một quy trình daemon chính cho hệ thống MongoDB xử lý các yêu cầu dữ liệu, thực hiện các hoạt động quản lý nền và quản lý truy cập dữ liệu). Ngoài ra, mongos (chịu trách nhiệm thiết lập kết nối giữa ứng dụng khách và cụm phân đoạn), với các quyền được đưa ra trong phần yêu cầu. Chẳng hạn, quản trị viên người dùng của tôi được tạo trong kiểm soát truy cập cho phép có thể tạo vai trò trong quản trị viên và cơ sở dữ liệu khác

Lệnh quản lý vai trò

Name\sDescriptioncreateRoleTạo một vai trò và cho biết vai trò đó có thể làm gì. dropRoleXóa vai trò do người dùng đặt. dropAllRolesFromDatabaseXóa tất cả các vai trò mà người dùng đã thiết lập khỏi cơ sở dữ liệu. GrantPrivilegesToRolegán đặc quyền cho vai trò mà người dùng chọn. GrantRolesToRolet cho biết vai trò nào mà vai trò do người dùng xác định có thể kế thừa các đặc quyền từ. invalidateUserCacheKhi bạn sử dụng invalidateUserCache, bộ nhớ cache trong bộ nhớ chứa thông tin người dùng, chẳng hạn như thông tin xác thực và vai trò, sẽ bị xóa. thu hồiPrivilegesFromRolexóa các đặc quyền khỏi vai trò do người dùng xác định có chúng. thu hồiRolesFromRolexóa vai trò kế thừa khỏi vai trò do người dùng xác định mà bạn không muốn. roleInInfotrả về thông tin về vai trò hoặc các vai trò bạn muốn. updateRoleCập nhật vai trò do người dùng thiết lập

Phần kết luận

Cơ sở dữ liệu MongoDB, cho phép lưu trữ và truy xuất dữ liệu dễ dàng và nhanh chóng, có thể cho phép một người tạo người dùng bằng cách sử dụng “db. lệnh createUser()”. Mặt khác, lệnh “AdminAnyDatabase” cung cấp cho người dùng tất cả các đặc quyền để truy cập DB dưới vai trò quản trị viên. Bài viết này đã đi xa hơn và minh họa cách cấp vai trò và quyền. Chúng tôi hy vọng bạn thấy nó hữu ích. Nếu có, đừng quên để lại nhận xét trong phần bình luận bên dưới

Làm cách nào để đặt tên người dùng và mật khẩu cho MongoDB trong Ubuntu?

Câu trả lời ngắn. .
Bắt đầu MongoDB mà không cần kiểm soát truy cập ( /data/db hoặc vị trí db của bạn). mongod --dbpath /data/db
Kết nối với ví dụ. mongo
Tạo người dùng. sử dụng some_db db. .
Dừng phiên bản MongoDB và bắt đầu lại với quyền kiểm soát truy cập. mongod --auth --dbpath /data/db
Kết nối và xác thực là người dùng

Làm cách nào để tạo người dùng và mật khẩu cho MongoDB?

Trong MongoDB, người dùng được tạo bằng phương thức createUser(). .
người dùng. Tên người dùng
pwd. Mật khẩu người dùng. .
dữ liệu tùy chỉnh. Thông tin liên kết người dùng. .
vai trò. Cấp truy cập hoặc Đặc quyền của người dùng

Làm cách nào để tạo xác thực người dùng trong MongoDB?

Cách bật xác thực trong MongoDB .
Tạo quản trị viên trong cơ sở dữ liệu quản trị với vai trò userAdminAnyDatabase. .
Ngắt kết nối khỏi vỏ mongo ( Ctrl+D )
Định vị đoạn mã sau trong tệp cấu hình mongod ( /etc/mongod. .
Thay đổi ủy quyền bị vô hiệu hóa thành được kích hoạt và lưu tệp

Làm cách nào để tạo người dùng root trong MongoDB?

Người dùng Root cho MongoDB là gì. Theo mặc định, không có xác thực trong MongoDb. Tuy nhiên, bạn có thể tạo quyền tương đương với quyền root/siêu người dùng bằng cách sử dụng vai trò "bất kỳ" cho một người dùng cụ thể đối với cơ sở dữ liệu quản trị .