Cách thay đổi vai trò người dùng trong mongodb

Trong MongoDB, chúng tôi được phép tạo người dùng mới cho cơ sở dữ liệu. Mỗi người dùng MongoDB chỉ truy cập dữ liệu cần thiết cho vai trò của họ. Vai trò trong MongoDB cấp đặc quyền để thực hiện một số hoạt động trên một tài nguyên nhất định. Trong MongoDB, người dùng được tạo bằng phương thức createUser(). Phương thức này tạo một người dùng mới cho cơ sở dữ liệu, nếu người dùng được chỉ định đã có trong cơ sở dữ liệu thì phương thức này sẽ trả về lỗi

cú pháp

db. createUser(người dùng, writeConcern)

Thông số.  

1. người sử dụng. Nó chứa thông tin xác thực và truy cập về người dùng để tạo. Nó là một tài liệu

  • người sử dụng. Tên người dùng
  • pwd. Mật khẩu người dùng. Trường này không bắt buộc nếu bạn sử dụng phương pháp này trên cơ sở dữ liệu $external để tạo người dùng có thông tin xác thực được lưu trữ bên ngoài. Giá trị của trường này có thể là kiểu chuỗi hoặc passwordPrompt()
  • dữ liệu tùy chỉnh. Thông tin liên kết người dùng. Nó là một lĩnh vực tùy chọn
  • vai trò. Cấp truy cập hoặc Đặc quyền của người dùng. Bạn cũng có thể tạo người dùng không có vai trò bằng cách chuyển một mảng trống[]. Trong trường này, bạn sử dụng vai trò tích hợp sẵn hoặc bạn có thể tạo vai trò của riêng mình bằng cách sử dụng db. phương thức createRole(vai trò, writeConcern). Để chỉ định vai trò, bạn có thể sử dụng bất kỳ cú pháp nào sau đây

Chỉ cần chỉ định tên vai trò

"đọc"

Hoặc bạn có thể chỉ định một tài liệu chứa các trường vai trò và db. Nó thường được sử dụng khi vai trò được chỉ định trong một cơ sở dữ liệu khác

{role:, db: }

  • xác thựcHạn chế. Quyền xác thực của người dùng. Nó là một lĩnh vực tùy chọn
  • cơ chế. Nó được sử dụng để chỉ định các cơ chế hoặc cơ chế SCRM để tạo thông tin xác thực người dùng SCRM. Nó là một lĩnh vực tùy chọn
  • mật khẩuDigestor. Nó được sử dụng để kiểm tra xem máy chủ hoặc máy khách có hiểu mật khẩu hay không. Nó là một lĩnh vực tùy chọn

2. viếtQuan tâm. Nó là một tham số tùy chọn. Nó quản lý mức độ Ghi mối quan tâm cho hoạt động tạo. Nó chiếm cùng một trường với lệnh getLastError.  

ghi chú

  • Trong MongoDB, người dùng được tạo đầu tiên trong cơ sở dữ liệu phải là người dùng quản trị. Người dùng quản trị có các đặc quyền để duy trì tất cả người dùng. Ngoài ra, bạn không được phép tạo người dùng trong cơ sở dữ liệu cục bộ
  • db. createUser() Gửi mật khẩu và tất cả dữ liệu khác tới phiên bản MongoDB mà không cần bất kỳ mã hóa nào. Để mã hóa mật khẩu trong khi truyền, hãy sử dụng TLS/SSL để mã hóa nó

Làm cách nào để tạo người dùng quản trị?

Trong MongoDB, bạn có thể tạo người dùng quản trị bằng phương thức createUser(). Trong phương pháp này, chúng ta có thể tạo tên, mật khẩu và vai trò của người dùng quản trị. Hãy để chúng tôi thảo luận về khái niệm này với sự trợ giúp của một ví dụ

Thí dụ

Trong ví dụ này, chúng tôi sẽ tạo một người dùng quản trị trong cơ sở dữ liệu quản trị và cấp cho người dùng quyền truy cập readWrite vào cơ sở dữ liệu cấu hình, cho phép người dùng thay đổi một số cài đặt nhất định cho các cụm được phân đoạn

db.createUser(
{ 
 user: "hello_admin",
 pwd:  "hello123",
 roles:
 [
 { role:"readWrite",db:"config"},
 "clusterAdmin"
 ] } );

Vì vậy, để tạo người dùng quản trị trước tiên chúng tôi sử dụng cơ sở dữ liệu quản trị. Trong cơ sở dữ liệu này, chúng tôi tạo một người dùng quản trị bằng cách sử dụng phương thức createUser(). Trong phương pháp này, chúng tôi đặt tên người dùng là “hello_admin”, mật khẩu là “hello123” và vai trò của người dùng quản trị là readWrite, config, clusterAdmin.  

Cách thay đổi vai trò người dùng trong mongodb

Làm cách nào để tạo một người dùng bình thường mà không có bất kỳ vai trò nào?

Trong MongoDB, chúng ta có thể tạo một người dùng không có bất kỳ vai trò nào bằng cách chỉ định một mảng trống[] trong trường vai trò trong phương thức createUser()

cú pháp

db. người dùng tạo ({ người dùng. ”User_Name”, pwd. ”Your_Password”, vai trò. []});

Hãy để chúng tôi thảo luận về khái niệm này với sự trợ giúp của một ví dụ

Thí dụ

Trong ví dụ sau, chúng ta sẽ tạo một người dùng không có vai trò

db.createUser({user:"geeks", pwd: "computer", roles:[]});

Ở đây, chúng tôi đang làm việc trên cơ sở dữ liệu “ví dụ” và đã tạo một người dùng có tên là “geeks” không có vai trò

Cách thay đổi vai trò người dùng trong mongodb

Làm cách nào để tạo người dùng với một số vai trò cụ thể?

Trong MongoDB, chúng ta có thể tạo một người dùng với một số vai trò được chỉ định bằng phương thức createUser(). Trong phương pháp này, chúng ta có thể chỉ định các vai trò mà người dùng sẽ thực hiện sau khi tạo. Hãy để chúng tôi thảo luận về khái niệm này với sự trợ giúp của một ví dụ

Thí dụ

Trong ví dụ này, chúng tôi sẽ tạo một người dùng với một số vai trò được chỉ định

db.createUser(
...{
...user: "new_one_role",
...pwd: with_roles",
...roles:["readWrite", "dbAdmin"]
...}
...);

Ở đây, chúng tôi tạo một người dùng có tên là “new_one_role”, mật khẩu là “with_roles” và các vai trò được chỉ định là

  • Vai trò readWrite. Vai trò này cung cấp tất cả các đặc quyền của vai trò đọc cộng với khả năng sửa đổi dữ liệu trên tất cả các bộ sưu tập không thuộc hệ thống
  • Vai trò dbAdmin. Vai trò này cung cấp cho người dùng khả năng thực hiện các tác vụ quản trị, chẳng hạn như các tác vụ liên quan đến lược đồ, lập chỉ mục. Nó không cấp đặc quyền cho Quản lý người dùng và vai trò

Cách thay đổi vai trò người dùng trong mongodb

Làm cách nào để tạo người dùng cho một cơ sở dữ liệu?

Trong MongoDB, chúng ta cũng có thể tạo người dùng cho một cơ sở dữ liệu bằng phương thức createUser(). Hãy để chúng tôi thảo luận về khái niệm này với sự trợ giúp của một ví dụ

Thí dụ

db.createUser(
{
user: "robert",
pwd:  "hellojose",
roles:[{role: "userAdmin" , db:"example"}]})

Ở đây, chúng tôi tạo một người dùng có tên người dùng là “Robert”, mật khẩu là “hellojose” và chúng tôi gán vai trò cho người dùng, trong trường hợp này cần phải là quản trị viên cơ sở dữ liệu nên nó được gán cho vai trò “userAdmin”. Vai trò này sẽ cho phép người dùng chỉ có các đặc quyền quản trị đối với cơ sở dữ liệu được chỉ định trong tùy chọn db, tôi. e. , "thí dụ"

Cách thay đổi vai trò người dùng trong mongodb

Làm cách nào để tạo người dùng có giới hạn xác thực?

Trong MongoDB, xác thực là một quá trình kiểm tra xem người dùng/máy khách đang cố truy cập cơ sở dữ liệu đã biết hay chưa. Nếu người dùng được biết thì nó cho phép họ kết nối với máy chủ. Chúng tôi cũng có thể tạo người dùng với các hạn chế xác thực bằng phương thức createUser() bằng cách đặt giá trị của trường authenticationRestrictions. Trường này cung cấp quyền xác thực của người dùng và chứa các trường sau

  • nguồn khách hàng. Nếu giá trị của trường này xuất hiện, thì khi người dùng đang xác thực, máy chủ sẽ xác minh IP của máy khách bằng cách kiểm tra địa chỉ IP trong danh sách đã cho hoặc phạm vi CIDR trong danh sách. Nếu IP của máy khách có trong danh sách thì máy chủ sẽ xác thực máy khách hoặc nếu không thì máy chủ sẽ không xác thực người dùng
  • địa chỉ máy chủ. Đó là danh sách các địa chỉ IP hoặc phạm vi CIDR mà máy khách có thể kết nối. Nếu giá trị của trường này có trong danh sách, thì máy chủ sẽ xác minh kết nối máy khách và nếu kết nối được thiết lập qua địa chỉ IP không được nhận dạng, thì máy chủ sẽ không xác thực người dùng

Hãy để chúng tôi thảo luận về khái niệm này với sự trợ giúp của một ví dụ

Thí dụ

Trong ví dụ này, chúng tôi sẽ tạo một người dùng với các hạn chế xác thực

use admin
db.createUser(
   {
     user: "restrict",
     pwd: passwordPrompt(),      
     roles: [ { role: "readWrite", db: "example" } ],
     authenticationRestrictions: [ {
        clientSource: ["192.168.65.10"],
        serverAddress: ["198.157.56.0"]
     } ]
   }
)

Ở đây chúng tôi tạo một người dùng có tên là “hạn chế” trong cơ sở dữ liệu quản trị. Vì vậy, người dùng này chỉ có thể xác thực nếu kết nối từ địa chỉ IP 192. 168. 65. 10 đến địa chỉ máy chủ này Địa chỉ IP 198. 157. 56. 0

Cách thay đổi vai trò người dùng trong mongodb

Làm cách nào để thả Người dùng?

Trong Mongodb, chúng ta cũng có thể loại bỏ người dùng bằng phương thức dropUser(). Phương thức này trả về true khi người dùng bị xóa nếu không trả về false

Làm cách nào để gán vai trò cho người dùng trong MongoDB?

Hướng dẫn từng bước .
Liệt kê tất cả người dùng trong cơ sở dữ liệu quản trị (Nếu tất cả người dùng của bạn được tạo bên trong cơ sở dữ liệu quản trị)
Chọn trường 'người dùng' có giá trị phù hợp là “devA” và “devB”
Sử dụng hàm GrantRolesToUser() để cung cấp cho người dùng devA và devB vai trò tích hợp sẵn - readWriteAnyDatabase

Làm cách nào để kiểm tra vai trò người dùng trong MongoDB?

Để xem thông tin về người dùng hiện tại, hãy chạy db. getUser() trên cơ sở dữ liệu của người dùng . Bạn sẽ cần kiểm tra với nhà cung cấp MongoDB của mình về cách họ thiết lập bảo mật để tìm ra cách thêm đúng vai trò cho người dùng của bạn.

Làm cách nào để quản lý vai trò trong MongoDB?

Quản lý người dùng và vai trò .
Tổng quan
điều kiện tiên quyết
Tạo một vai trò do người dùng xác định
Sửa đổi quyền truy cập cho người dùng hiện tại
Sửa đổi mật khẩu cho người dùng hiện tại
Xem vai trò của người dùng
Xem Đặc quyền của Vai trò

Làm cách nào để tạo vai trò trong MongoDB?

Để tạo vai trò trong cơ sở dữ liệu, bạn phải có. .
hành động createRole trên tài nguyên cơ sở dữ liệu đó
hành động GrantRole trên cơ sở dữ liệu đó để chỉ định các đặc quyền cho vai trò mới cũng như chỉ định các vai trò sẽ kế thừa từ đó