Rate this post

Lệnh quản lý người dùng của mongo DB chứa các lệnh liên quan đến người dùng. Chúng tôi có thể tạo, xóa và cập nhật người dùng bằng các Lệnh quản lý người dùng sau. Hãy cùng W3seo tìm hiểu về cách quản lý người dùng trong MongoDB.

Phương pháp User Management MongoDB được sử dụng để User Management cơ sở dữ liệu.

db.auth ()

Phương thức auth cho phép người dùng trong shell cung cấp xác thực cho cơ sở dữ liệu. Nó có thể chấp nhận Username và password, tức là db.auth (<Username>, passwordPrompt ()) Hoặc db.auth (<Username>, <password>).

Chúng tôi có thể xác định một tập hợp người dùng chứa tên của người dùng, password, cơ chế và cờ password thông báo.

db.auth( {  
   user: <name>,  
   pwd: "<cleartext password>",  
   mechanism: <auth. mechanism>,  
   digestPassword: <boolean>  
} )  

Ví dụ:

Sau khi kết nối trình shell mongo, nếu bạn muốn xác thực, bạn phải phát hành db.auth () trong cơ sở dữ liệu xác thực của người dùng:

use test  
db.auth( "username", passwordPrompt() )  

db.changeUserPassword (username,password)

Cập nhật password của người dùng. Chạy phương thức trong cơ sở dữ liệu nơi người dùng được xác định, tức là cơ sở dữ liệu bạn đã tạo người dùng.

Ví dụ

Thao tác sau thay đổi password của người dùng có tên tài khoản Người dùng trong cơ sở dữ liệu sản phẩm thành SOh3TbYhx8ypJPxmt1oOfL:

use products  
db.changeUserPassword("accountUser", passwordPrompt())  
use products  
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")  

db.createUser (<user>, <writeConcern>)

Lệnh MongoDB createUser tạo một người dùng mới cho cơ sở dữ liệu từ nơi chúng ta chạy lệnh. Nếu người dùng đã tồn tại, nó sẽ trả về lỗi người dùng trùng lặp.

Cú pháp:

{  
 createUser: "<user_name>",  
 pwd: "<cleartext password>"  
 customData: { <any info.> },  
 roles: [  
   { role: "<role>", db: "<database>" } | "<role>",  
   ...  
 ],  
 writeConcern: { <write concern> },  
 authenticationRestrictions: [  
    { clientSource: [ "<IP|CIDR range>", ... ], serverAddress: [ "<IP|CIDR range>", ... ] },  
    ...  
 ],  
 mechanisms: [ "<scram-mechanism>", ...],   
 digestPassword: <boolean>  

Lệnh createUser có trường sau:

FieldTypeDescription
createUserstringTrường này chứa tên của người dùng mới.
pwdstringTrường này chứa mật khẩu của người dùng. Giá trị có thể là mật khẩu của người dùng trong chuỗi cleartext hoặc passwordPrompt () để nhắc nhập mật khẩu của người dùng.
customDatadocumentTrường này chứa dữ liệu mà quản trị viên muốn liên kết với người dùng cụ thể.
rolesarrayTrường cấp bất kỳ vai trò nào cho người dùng.
digestPasswordbooleanChỉ ra rằng nó là một máy chủ hoặc một máy khách sử dụng mật khẩu.
writeConcerndocumentTrường này chứa mối quan tâm ghi cho hoạt động tạo.
authentication
Restrictions
arrayNó thực thi các quy tắc xác thực trên người dùng đã tạo. Nó cung cấp danh sách các địa chỉ IP và dải CIDR mà từ đó người dùng được phép kết nối.
mechanismarrayTrường này chỉ định cơ chế SCRAM. Các giá trị SCRAM hợp lệ là SCRAM-SHA-1 và SCRAM-SHA-256.

Ví dụ:

db.getSiblingDB("student").runCommand( {  
       createUser: "admin@test",  
       pwd: passwordPrompt(),  
       customData: { empId: 101 },  
       roles: [  
                { role: "clusterAdmin", db: "admin" },  
                { role: "readAnyDatabase", db: "admin" },  
                "readWrite"  
              ],  
       writeConcern: { w: "majority" , wtimeout: 5000 }  
} )  

Ví dụ trên tạo một người dùng admin @ test trên cơ sở dữ liệu sinh viên. Lệnh này cung cấp cho admin @ test các vai trò clusterAdmin và readAnyDatabase trên cơ sở dữ liệu quản trị và vai trò readwrite trên cơ sở dữ liệu của sinh viên.

db.dropUser (<users>, <writeConcern>)

Lệnh MongoDB dropUser xóa người dùng khỏi cơ sở dữ liệu mà chúng ta đang chạy lệnh.

Cú pháp:

{  
  dropUser: "<user>",  
  writeConcern: { <write concern> }  
}  
FieldTypeDescription
dropUserstringTrường dropUser chứa tên của người dùng mà bạn muốn xóa.
writeConcerndocumentTrường này chứa mức quan tâm ghi cho thao tác loại bỏ.

Ví dụ:

{  
  dropUser: "<user>",  
  writeConcern: { <write concern> }  
}  

db.removeUser (<username>)

Không có gì sử dụng nhiều hơn của phương pháp này. Bạn có thể sử dụng phương pháp này để xóa Username được chỉ định khỏi cơ sở dữ liệu hiện tại.

db.updateUser (<Username>, <update>, <writeConcern>)

Lệnh MongoDB updateUser cập nhật chi tiết người dùng trong cơ sở dữ liệu mà chúng tôi chạy lệnh. Nó sẽ thay thế hoàn toàn các giá trị của trường trước đó khi chúng ta sử dụng lệnh, bao gồm các vai trò được gán và mảng xác thực.

Cú pháp:

{  
  updateUser: "<user_name>",  
  pwd: "<cleartext password>"  
  customData: { <any information> },  
  roles: [  
    { role: "<role>", db: "<database>" } | "<role>",  
    ...  
  ],  
  authenticationRestrictions: [  
     {  
       clientSource: ["<IP>" | "<CIDR range>", ...],  
       serverAddress: ["<IP>", | "<CIDR range>", ...]  
     },  
     ...  
  ],  
  mechanisms: [ "<scram-mechanism>", ... ],  
  digestPassword: <boolean>,  
  writeConcern: { <write concern> }  
}  
FieldTypeDescription
updateUserstringNó chứa tên của người dùng mà chúng ta cần cập nhật.
pwdstringNó chứa mật khẩu của người dùng hoặc bạn có thể sử dụng dấu nhắc mật khẩu để nhắc nhập mật khẩu.
customDatadocumentTrường này chứa dữ liệu mà quản trị viên muốn cập nhật cho người dùng cụ thể.
rolesarrayTrường này cấp một vai trò cho người dùng.
digestPasswordbooleanNó chỉ ra, nếu máy chủ hoặc máy khách sẽ thông báo mật khẩu.
writeConcerndocumentTrường này chứa mối quan tâm ghi cho hoạt động tạo.
authentication
Restrictions
arrayNó thực thi các quy tắc xác thực trên người dùng đã tạo. Nó cung cấp danh sách các địa chỉ IP và dải CIDR mà từ đó người dùng được phép kết nối.
mechanismarrayTrường này chỉ định cơ chế SCRAM. Các giá trị SCRAM hợp lệ là SCRAM-SHA-1 và SCRAM-SHA-256.

Ví dụ:

{  
   "_id" : "products.appClient01",  
   "userId" : UUID("c5d88855-3f1e-46cb-9c8b-269bef957986"), // Starting in MongoDB 4.0.9  
   "user" : "appClient01",  
   "db" : "products",  
   "customData" : { "empID" : "12345", "badge" : "9156" },  
   "roles" : [  
       { "role" : "readWrite",  
         "db" : "products"  
       },  
       { "role" : "read",  
         "db" : "inventory"  
       }  
   ],  
   "mechanisms" : [     
      "SCRAM-SHA-1",  
      "SCRAM-SHA-256"  
   ]  
}  

Lệnh người dùng cập nhật sau thay thế hoàn toàn dữ liệu vai trò và dữ liệu tùy chỉnh của người dùng:

use products  
db.runCommand( {  
   updateUser : "appClient01",  
   customData : { employeeId : "0x3039" },  
   roles : [ { role : "read", db : "assets" } ]  
} )  

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now