Quản lý người dùng và là một số nhiệm vụ quản trị quan trọng nhất của việc quản lý máy chủ MongoDB. Bạn phải đảm bảo rằng máy chủ được định cấu hình để có thể xác định đúng người dùng và ứng dụng của bạn và từ chối các kết nối hoặc hoạt động không thể xác thực chính xác
Để quản lý các yêu cầu này, bạn phải có khả năng quyết định những người dùng mà máy chủ của bạn yêu cầu và tạo các tài khoản đó. Là một phần của quy trình này, bạn có thể đặt chi tiết xác thực để cho phép truy cập bên ngoài bằng danh tính mới
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn cách tạo, xem và xóa tài khoản người dùng. Chúng tôi sẽ giới thiệu cách thiết lập xác thực cho tài khoản của bạn và cách cập nhật thông tin đăng nhập khi bạn cần thay đổi mật khẩu người dùng của mình
LIÊN QUAN ĐẾN PRISMA. IO
Nếu bạn đang sử dụng MongoDB, hãy kiểm tra trình kết nối MongoDB của Prisma. Bạn có thể tự tin sử dụng Prisma Client để quản lý cơ sở dữ liệu MongoDB sản xuất
Để bắt đầu làm việc với MongoDB và Prisma, hãy xem hướng dẫn bắt đầu từ đầu của chúng tôi hoặc cách thêm vào một dự án hiện có
Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu
điều kiện tiên quyết
Để làm theo hướng dẫn này, bạn sẽ cần một tài khoản trên máy chủ với các đặc quyền thích hợp
Các lệnh và phương thức chúng ta sẽ sử dụng
Để tạo, sửa đổi và xóa người dùng trong MongoDB và định cấu hình xác thực, các phương thức cốt lõi bạn cần là
5. tạo tài khoản người dùng MongoDB mớiswitched to db admin
6. cập nhật thông tin chi tiết của tài khoản người dùngswitched to db admin
7. thay đổi mật khẩu được sử dụng bởi tài khoản người dùngswitched to db admin
8. xóa tài khoản người dùng MongoDBswitched to db admin
Ngoài ra, lệnh cơ sở dữ liệu sau đây rất hữu ích để tìm thông tin về người dùng trên hệ thống
9. hiển thị thông tin về một hoặc nhiều tài khoản người dùng MongoDBswitched to db admin
đặc quyền bắt buộc
Để thực hiện các lệnh trên, bạn cần đăng nhập vào MongoDB bằng một tài khoản với một số hành động đặc quyền khác nhau. Các đặc quyền cụ thể mà bạn yêu cầu tùy thuộc vào các lệnh bạn cần sử dụng
Để nhận thông tin về những người dùng khác, người dùng hiện tại của bạn phải bật hành động đặc quyền sau
Để tạo người dùng mới, người dùng hiện tại của bạn phải bật các hành động đặc quyền sau
Để thay đổi mật khẩu hoặc chi tiết tài khoản của người dùng, bạn có thể cần các đặc quyền sau
- để thay đổi mật khẩu tài khoản của riêng bạn
- để thay đổi dữ liệu tùy chỉnh của tài khoản của riêng bạn
- để thay đổi mật khẩu của người dùng khác
- để thay đổi dữ liệu tùy chỉnh của người dùng khác
Chúng tôi sẽ không đề cập đến quản lý vai trò trong hướng dẫn này, vì vậy các hành động đặc quyền
2 và
db.createUser[{
user: "tom",
pwd: "hellothere",
roles: []
}]
8 là không bắt buộc
db.createUser[{
user: "tom",
pwd: "hellothere",
roles: []
}]
Để xóa tài khoản người dùng, người dùng hiện tại của bạn phải bật hành động đặc quyền sau
Hiểu cách MongoDB triển khai người dùng và xác thực
Trước khi chúng tôi bắt đầu tạo và quản lý tài khoản, sẽ rất hữu ích nếu bạn dành chút thời gian để làm quen với cách MongoDB xác định và lưu trữ thông tin này
Trong MongoDB, tài khoản người dùng là sự kết hợp của tên người dùng tài khoản cùng với cơ sở dữ liệu xác thực cụ thể. Cơ sở dữ liệu xác thực chỉ đơn giản là cơ sở dữ liệu nơi người dùng được xác định và không bao hàm giới hạn về phạm vi hoặc quyền. Cơ sở dữ liệu xác thực là cơ sở dữ liệu thông thường được sử dụng để quản lý dữ liệu khác và không phải là cơ sở dữ liệu chuyên dụng, đặc biệt
Tên tài khoản người dùng phải là duy nhất trong cơ sở dữ liệu xác thực của nó. Tuy nhiên, cùng một tên người dùng có thể được sử dụng lại với cơ sở dữ liệu xác thực khác để tạo tài khoản người dùng mới, riêng biệt
Do thiết kế này, một tài khoản chỉ có thể được xác định chính xác bằng cách bao gồm tên người dùng và cơ sở dữ liệu xác thực. Để xác thực tài khoản, người ta cũng cần có khả năng cung cấp thông tin đăng nhập được liên kết với tài khoản. Đây thường là mật khẩu, nhưng cũng có thể là chứng chỉ
Làm thế nào để bạn tạo người dùng?
Bây giờ chúng ta đã xem cách MongoDB khái niệm hóa tài khoản người dùng, chúng ta có thể thảo luận về cách tạo người dùng mới. Hãy nhớ đăng nhập vào máy chủ MongoDB của bạn với người dùng có đặc quyền phù hợp để theo dõi
Để tạo người dùng mới, trước tiên bạn phải chuyển sang cơ sở dữ liệu mà bạn muốn sử dụng làm cơ sở dữ liệu xác thực của người dùng mới
Trước tiên, bạn có thể lấy danh sách các cơ sở dữ liệu đã được định cấu hình trên hệ thống của mình bằng cách nhập
show dbs
Chuyển sang cơ sở dữ liệu mà người dùng sẽ được liên kết bằng cách sử dụng lệnh
0
Successfully added user: { "user" : "tom", "roles" : [ ] }
0
switched to db admin
switched to db admin
Để tạo người dùng mới, bạn có thể sử dụng phương pháp
1 hoặc bạn có thể sử dụng lệnh cơ sở dữ liệu
Successfully added user: { "user" : "tom", "roles" : [ ] }
1. Dù bằng cách nào, bạn sẽ cần chuyển tên người dùng [trường
db.createUser[{
user: "tom",
pwd: "hellothere",
roles: []
}]
3], mật khẩu [trường
Successfully added user: { "user" : "tom", "roles" : [ ] }
4] và một loạt các vai trò mà người dùng sẽ được thêm vào [khóa
Successfully added user: { "user" : "tom", "roles" : [ ] }
5] trong đối tượng
Successfully added user: { "user" : "tom", "roles" : [ ] }
3
Successfully added user: { "user" : "tom", "roles" : [ ] }
Để tạo một người dùng mới có tên là
7 với mật khẩu được đặt thành
Successfully added user: { "user" : "tom", "roles" : [ ] }
8 với một mảng vai trò trống bằng phương thức
Successfully added user: { "user" : "tom", "roles" : [ ] }
1, bạn có thể nhập
Successfully added user: { "user" : "tom", "roles" : [ ] }
db.createUser[{
user: "tom",
pwd: "hellothere",
roles: []
}]
Successfully added user: { "user" : "tom", "roles" : [ ] }
Hoạt động tương tự bằng cách sử dụng lệnh cơ sở dữ liệu
1 sẽ như thế này
db.createUser[{
user: "tom",
pwd: "hellothere",
roles: []
}]
4
switched to db admin
Successfully added user: { "user" : "tom", "roles" : [ ] }
Hai tùy chọn khác nhau rất giống nhau, vì vậy chúng tôi sẽ chỉ hiển thị các phương thức cơ sở dữ liệu khi áp dụng trong tương lai. Tuy nhiên, nếu bạn thích cú pháp lệnh cơ sở dữ liệu hơn, bạn có thể tìm thấy từng lệnh liên quan trong tài liệu tham khảo lệnh MongoDB
Trong các lệnh trên, chúng tôi đã xác định rõ ràng mật khẩu nội tuyến trong đối tượng
3. Để ngăn mật khẩu bị ghi lại và có thể truy xuất được, bạn có thể sử dụng phương thức
Successfully added user: { "user" : "tom", "roles" : [ ] }
42 trong tài liệu
switched to db admin
3 để MongoDB tương tác nhắc bạn nhập mật khẩu khi lệnh được chạy. Mật khẩu sẽ không hiển thị, vì vậy lịch sử lệnh của bạn sẽ sạch sẽ
Successfully added user: { "user" : "tom", "roles" : [ ] }
9
switched to db admin
0
switched to db admin
Hãy nhớ rằng mật khẩu sẽ vẫn được gửi đến máy chủ ở dạng văn bản thuần túy nếu bạn không bật TLS/SSL
Làm thế nào để bạn hiển thị người dùng hiện tại?
Tiếp theo, chúng ta hãy xem cách tìm thông tin về người dùng hiện có
Để trả về nhiều người dùng, bạn có thể sử dụng phương thức
44 để hiển thị tất cả người dùng trong cơ sở dữ liệu hiện tại. Trước tiên, hãy chuyển sang cơ sở dữ liệu mà bạn muốn truy vấn
switched to db admin
0
switched to db admin
Tiếp theo, sử dụng phương thức
44 để trả về tất cả người dùng được liên kết với cơ sở dữ liệu hiện tại
switched to db admin
1
admin 0.000GB
config 0.000GB
local 0.000GB
2
admin 0.000GB
config 0.000GB
local 0.000GB
Để hiển thị thêm thông tin xác thực của mỗi người dùng, hãy chuyển một đối tượng cho phương thức bằng khóa
46 đến
switched to db admin
47
switched to db admin
3
admin 0.000GB
config 0.000GB
local 0.000GB
4
admin 0.000GB
config 0.000GB
local 0.000GB
Để truy vấn người dùng khớp với các tiêu chí nhất định, bạn có thể chuyển một đối tượng xác định khóa
48 xác định điều kiện khớp
switched to db admin
Chẳng hạn, để lấy thông tin về tất cả người dùng trong cơ sở dữ liệu hiện tại có vai trò
49, bạn có thể nhập
switched to db admin
5
admin 0.000GB
config 0.000GB
local 0.000GB
6
admin 0.000GB
config 0.000GB
local 0.000GB
Để có được một người dùng cụ thể, bạn có thể sử dụng phương pháp
0 thay thế. Điều này hoạt động giống như phương thức
Successfully added user: { "user" : "tom", "roles" : [ ] }
44, nhưng trả về một người dùng. Thay vì truyền một đối tượng cho phương thức, bạn truyền một chuỗi chứa tên người dùng mà bạn muốn truy xuất
switched to db admin
7
admin 0.000GB
config 0.000GB
local 0.000GB
8
admin 0.000GB
config 0.000GB
local 0.000GB
Bạn có thể tùy chọn bao gồm một đối tượng bổ sung
2 cho phép bạn chỉ định thông tin bổ sung mà bạn muốn bằng cách đặt các khóa sau thành
Successfully added user: { "user" : "tom", "roles" : [ ] }
47
switched to db admin
46. hiển thị thông tin xác thực ngoài đầu ra thông thường
switched to db admin
5. hiển thị thông tin đặc quyền ngoài đầu ra thông thường
Successfully added user: { "user" : "tom", "roles" : [ ] }
6. hiển thị các hạn chế xác thực trên tài khoản ngoài đầu ra thông thường
Successfully added user: { "user" : "tom", "roles" : [ ] }
Ví dụ: bạn có thể yêu cầu MongoDB cung cấp cho bạn tất cả thông tin trên bằng cách nhập
9
admin 0.000GB
config 0.000GB
local 0.000GB
00
switched to db admin
Làm cách nào để bạn thay đổi mật khẩu cho người dùng MongoDB?
Để thay đổi mật khẩu của người dùng, bạn có thể sử dụng phương pháp
7. Một lần nữa, bạn phải chuyển sang cơ sở dữ liệu xác thực của người dùng trước khi thực hiện lệnh
Successfully added user: { "user" : "tom", "roles" : [ ] }
Phương thức
7 nhận hai đối số. tên người dùng của tài khoản bạn muốn thay đổi và mật khẩu mới cho tài khoản
Successfully added user: { "user" : "tom", "roles" : [ ] }
Ví dụ: để thay đổi mật khẩu cho người dùng
7 được xác thực bằng cơ sở dữ liệu
Successfully added user: { "user" : "tom", "roles" : [ ] }
90 thành
switched to db admin
91, bạn có thể nhập
switched to db admin
01
switched to db admin
Cũng như với phương thức
1, bạn có thể sử dụng phương thức
Successfully added user: { "user" : "tom", "roles" : [ ] }
42 cho đối số thứ hai thay vì cung cấp mật khẩu nội tuyến. MongoDB sẽ nhắc bạn nhập mật khẩu khi lệnh được thực thi
switched to db admin
02
switched to db admin
03
switched to db admin
Làm cách nào để bạn thay đổi các chi tiết tài khoản người dùng khác?
Để thay đổi thông tin khác được liên kết với tài khoản người dùng, bạn có thể sử dụng phương pháp
94. Đảm bảo bạn chuyển sang cơ sở dữ liệu xác thực của người dùng trước khi cập nhật thông tin chi tiết của họ
switched to db admin
Phương thức
94 yêu cầu bạn chỉ định tên người dùng và sau đó cung cấp một đối tượng chứa dữ liệu bạn muốn cập nhật. Bất kỳ trường nào bạn chọn cập nhật sẽ được thay thế hoàn toàn bằng thông tin mới, vì vậy hãy đảm bảo bao gồm dữ liệu gốc cũng như dữ liệu mới trong đối tượng của bạn nếu bạn chỉ hy vọng thêm thông tin mới
switched to db admin
Đối tượng mà bạn đưa vào lệnh có thông tin thay đổi có thể chứa nhiều trường khác nhau. Hãy lướt qua chúng
96. Bất kỳ dữ liệu tùy ý nào được liên kết với tài khoản người dùng
switched to db admin
5. Các vai trò mà người dùng được cấp. Tốt hơn là sử dụng các phương pháp
Successfully added user: { "user" : "tom", "roles" : [ ] }
98 và
switched to db admin
99 để kiểm soát tư cách thành viên của vai trò thay vì cập nhật bằng khóa này vì bạn có thể thêm và xóa từng vai trò
switched to db admin
4. Mật khẩu của người dùng. Sử dụng phương pháp
Successfully added user: { "user" : "tom", "roles" : [ ] }
01 thường dễ dàng hơn nếu đó là trường duy nhất cần được cập nhật
switched to db admin
02. Chỉ định các hạn chế cho tài khoản có thể giới hạn địa chỉ IP mà người dùng có thể kết nối từ hoặc đến. Giá trị của khóa này là một đối tượng hoặc mảng xác định
switched to db admin
03 và hoặc
switched to db admin
04, chứa các mảng chỉ định phạm vi hoặc địa chỉ IP hợp lệ. Tìm hiểu thêm trong tài liệu MongoDB trên
switched to db admin
05. Các cơ chế xác thực cụ thể được sử dụng cho thông tin xác thực. Có thể được đặt thành một hoặc cả hai
switched to db admin
06 hoặc
switched to db admin
07, nhưng chỉ có thể được thay đổi thành một tập hợp con của các cơ chế hiện tại nếu mật khẩu mới hiện không được cung cấp
switched to db admin
08. Chỉ định thành phần nào xử lý mật khẩu của người dùng. Có thể là
switched to db admin
09 [mặc định] hoặc
switched to db admin
00
admin 0.000GB
config 0.000GB
local 0.000GB
Ví dụ: chúng tôi có thể cập nhật tài khoản
7 xác thực dựa trên cơ sở dữ liệu
Successfully added user: { "user" : "tom", "roles" : [ ] }
90 để chỉ có thể đăng nhập từ cùng một máy tính lưu trữ chính máy chủ đó bằng cách thay đổi trường
switched to db admin
02
switched to db admin
04
switched to db admin
Bây giờ, nếu bạn yêu cầu MongoDB hiển thị cho bạn thông tin liên quan về người dùng, nó sẽ hiển thị các hạn chế bổ sung cho tài khoản
05
switched to db admin
06
switched to db admin
Để hủy bỏ những hạn chế đó, chúng ta có thể chạy lại lệnh với một mảng trống
07
switched to db admin
Làm cách nào để xóa người dùng MongoDB?
Để xóa tài khoản người dùng MongoDB, bạn có thể sử dụng phương pháp
04. Đảm bảo kết nối với cơ sở dữ liệu xác thực của người dùng trước khi xóa chúng
admin 0.000GB
config 0.000GB
local 0.000GB
Để thực thi phương thức
04, bạn cần cung cấp tên của người dùng mà bạn muốn xóa
admin 0.000GB
config 0.000GB
local 0.000GB
08
switched to db admin
Sau khi xóa thành công, MongoDB sẽ trả về
47
switched to db admin
09
switched to db admin
Nếu tài khoản không tồn tại trong cơ sở dữ liệu hiện tại, thay vào đó, nó sẽ trả về
07
admin 0.000GB
config 0.000GB
local 0.000GB
Sự kết luận
Cấu hình xác thực và quản lý người dùng của MongoDB cho phép bạn kiểm soát ai có thể kết nối với máy chủ của bạn và thuộc tính người dùng của họ là gì. Trong bài viết sau, chúng tôi sẽ đề cập đến cách hạn chế mức truy cập mà người dùng có bằng cách xử lý phần ủy quyền của quản lý người dùng
LIÊN QUAN ĐẾN PRISMA. IO
Nếu bạn đang sử dụng MongoDB, hãy kiểm tra trình kết nối MongoDB của Prisma. Bạn có thể tự tin sử dụng Prisma Client để quản lý cơ sở dữ liệu MongoDB sản xuất
Để bắt đầu làm việc với MongoDB và Prisma, hãy xem hướng dẫn bắt đầu từ đầu của chúng tôi hoặc cách thêm vào một dự án hiện có
Prisma là bộ công cụ cơ sở dữ liệu mã nguồn mở dành cho Typescript và Node. js nhằm mục đích giúp các nhà phát triển ứng dụng làm việc hiệu quả và tự tin hơn khi làm việc với cơ sở dữ liệu
Câu hỏi thường gặp
Làm cách nào để bạn liệt kê những người dùng hiện có trong MongoDB?
Để liệt kê những người dùng hiện có trong MongoDB, bạn có thể sử dụng phương thức
44 để hiển thị tất cả người dùng trong cơ sở dữ liệu hiện tại
switched to db admin
Cú pháp sẽ giống như
0
switched to db admin
Để biết thêm chi tiết về
Làm cách nào để bạn tạo người dùng quản trị cơ sở dữ liệu trong MongoDB?
Để tạo một trong MongoDB, bạn sẽ muốn sử dụng phương thức
1 trong cơ sở dữ liệu
Successfully added user: { "user" : "tom", "roles" : [ ] }
90
switched to db admin
Phần sau minh họa cú pháp sử dụng để tạo quản trị viên cơ sở dữ liệu
1
switched to db admin
Làm cách nào để bỏ người dùng trong MongoDB?
Để xóa người dùng MongoDB, bạn có thể sử dụng phương pháp
04. Điều này cần được thực hiện trong cơ sở dữ liệu
admin 0.000GB
config 0.000GB
local 0.000GB
90 và cú pháp sẽ như thế này
switched to db admin
2
switched to db admin
Làm cách nào để kiểm tra xem người dùng cơ sở dữ liệu có tồn tại trong MongoDB không?
Để lấy danh sách tất cả người dùng hiện có trong MongoDB, bạn có thể sử dụng phương thức
44
switched to db admin
Cú pháp cơ bản sẽ giống như
0
switched to db admin
Làm cách nào bạn có thể kiểm tra đặc quyền của người dùng trong MongoDB?
Để truy vấn a , bạn có thể sử dụng phương thức
0 với
Successfully added user: { "user" : "tom", "roles" : [ ] }
5
Successfully added user: { "user" : "tom", "roles" : [ ] }
17 được đặt thành
admin 0.000GB
config 0.000GB
local 0.000GB
47
switched to db admin
Làm cách nào để tạo cơ sở dữ liệu với tên người dùng và mật khẩu trong MongoDB?
Trong MongoDB, người dùng được tạo bằng phương thức createUser[]. .người sử dụng. Tên người dùngpwd. 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ùngLàm cách nào để tạo cơ sở dữ liệu mới trong MongoDB?
Tab Cơ sở dữ liệu trong MongoDB Compass có nút "Tạo cơ sở dữ liệu". .Nhấp vào "Tạo cơ sở dữ liệu" để mở hộp thoạiNhập tên của cơ sở dữ liệu và bộ sưu tập đầu tiên của nóNhấp vào "Tạo cơ sở dữ liệu"Làm cách nào để kiểm tra tên người dùng và mật khẩu cơ sở dữ liệu trong MongoDB?
Quy trình .Bắt đầu MongoDB mà không cần kiểm soát truy cập. mongod --port 27017 --dbpath /data/db1Kết nối với ví dụ. mongo --port 27017Tạo quản trị viên người dùng. sử dụng quản trị viên db. .Khởi động lại phiên bản MongoDB với quyền kiểm soát truy cập. mongod --auth --port 27017 --dbpath /data/db1Xác thực là quản trị viên người dùngLàm cách nào để tạo tên người dùng và mật khẩu trong MongoDB Compass?
Để tạo người dùng trong triển khai MongoDB, bạn kết nối với triển khai rồi sử dụng db. phương thức createUser[] hoặc lệnh createUser để thêm người dùng .