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

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 chính xác 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à

  • switched to db admin

    5. tạo tài khoản người dùng MongoDB mới
  • switched to db admin

    6. cập nhật thông tin chi tiết của tài khoản người dùng
  • switched to db admin

    7. thay đổi mật khẩu được sử dụng bởi tài khoản người dùng
  • switched to db admin

    8. xóa tài khoản người dùng MongoDB

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

  • switched to db admin

    9. hiển thị thông tin về một hoặc nhiều tài khoản người dùng MongoDB

đặ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

db.createUser({

user: "tom",

pwd: "hellothere",

roles: []

})

2 và

db.createUser({

user: "tom",

pwd: "hellothere",

roles: []

})

8 là không bắt buộc

Để 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 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

________số 8_______

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

Successfully added user: { "user" : "tom", "roles" : [ ] }

0

use admin

switched to db admin

Để tạo người dùng mới, bạn có thể sử dụng phương pháp

Successfully added user: { "user" : "tom", "roles" : [ ] }

1 hoặc bạn có thể sử dụng lệnh cơ sở dữ liệu

db.createUser({

user: "tom",

pwd: "hellothere",

roles: []

})

1. Dù bằng cách nào, bạn sẽ cần chuyển tên người dùng (trường

Successfully added user: { "user" : "tom", "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 một đối tượng

Successfully added user: { "user" : "tom", "roles" : [ ] }

3

Để tạo một người dùng mới có tên là

Successfully added user: { "user" : "tom", "roles" : [ ] }

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 cách sử dụng phương thức

Successfully added user: { "user" : "tom", "roles" : [ ] }

1, bạn có thể nhập

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

db.createUser({

user: "tom",

pwd: "hellothere",

roles: []

})

1 sẽ như thế này

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

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

Successfully added user: { "user" : "tom", "roles" : [ ] }

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 pháp

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

2 trong tài liệu

Successfully added user: { "user" : "tom", "roles" : [ ] }

3 để yêu cầu MongoDB nhắc bạn nhập mật khẩu một cách tương tác 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ẽ

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

Enter password:

Successfully added user: { "user" : "tom", "roles" : [ ] }

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

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

4 để 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

use admin

Tiếp theo, sử dụng phương thức

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

4 để 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

admin 0.000GB

config 0.000GB

local 0.000GB

1

admin 0.000GB

config 0.000GB

local 0.000GB

2

Để 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

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

6 đến

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

7

admin 0.000GB

config 0.000GB

local 0.000GB

3_______8_______4

Để 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

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

8 xác định điều kiện khớp

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ò

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

9, bạn có thể nhập

admin 0.000GB

config 0.000GB

local 0.000GB

5

admin 0.000GB

config 0.000GB

local 0.000GB

6

Để có được một người dùng cụ thể, bạn có thể sử dụng phương pháp

Successfully added user: { "user" : "tom", "roles" : [ ] }

0 thay thế. Điều này hoạt động giống như phương thức

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

4, 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

admin 0.000GB

config 0.000GB

local 0.000GB

7

admin 0.000GB

config 0.000GB

local 0.000GB

8

Bạn có thể tùy ý bao gồm một đối tượng

Successfully added user: { "user" : "tom", "roles" : [ ] }

2 bổ sung cho phép bạn chỉ định thông tin bổ sung mà bạn muốn bằng cách đặt các phím sau thành

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

7

  • db.runCommand({

    createUser: "tom",

    pwd: "hellothere",

    roles: []

    })

    6. hiển thị thông tin xác thực ngoài đầu ra thông thường
  • Successfully added user: { "user" : "tom", "roles" : [ ] }

    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

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

admin 0.000GB

config 0.000GB

local 0.000GB

9

use admin

0

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

Successfully added user: { "user" : "tom", "roles" : [ ] }

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

Phương thức

Successfully added user: { "user" : "tom", "roles" : [ ] }

7 có 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

Ví dụ: để thay đổi mật khẩu cho người dùng

Successfully added user: { "user" : "tom", "roles" : [ ] }

7 được xác thực với cơ sở dữ liệu

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

0 thành

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

1, bạn có thể nhập

use admin

1

Cũng giống như với phương thức

Successfully added user: { "user" : "tom", "roles" : [ ] }

1, bạn có thể sử dụng phương thức

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

2 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

use admin

2_______10_______3

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

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

4. Đả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ọ

Phương pháp

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

4 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

Đố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

  • db.createUser({

    user: "tom",

    pwd: passwordPrompt(),

    roles: []

    })

    6. 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
  • Successfully added user: { "user" : "tom", "roles" : [ ] }

    5. Các vai trò mà người dùng được cấp. Thường thì tốt hơn là sử dụng các phương pháp

    db.createUser({

    user: "tom",

    pwd: passwordPrompt(),

    roles: []

    })

    8 và

    db.createUser({

    user: "tom",

    pwd: passwordPrompt(),

    roles: []

    })

    9 để kiểm soát tư cách thành viên của vai trò hơn là cập nhật bằng khóa này vì bạn có thể thêm và xóa từng vai trò
  • Successfully added user: { "user" : "tom", "roles" : [ ] }

    4. Mật khẩu của người dùng. Sử dụng phương pháp

    Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    1 thường dễ dàng hơn nếu đó là trường duy nhất cần được cập nhật
  • Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    2. 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

    Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    3 và hoặc

    Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    4, 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
  • Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    5. 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 trong số

    Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    6 hoặc

    Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    7, 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
  • Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    8. Chỉ định thành phần nào xử lý mật khẩu của người dùng. Có thể là

    Enter password:

    Successfully added user: { "user" : "tom", "roles" : [ ] }

    9 (mặc định) hoặc

    admin 0.000GB

    config 0.000GB

    local 0.000GB

    00

Ví dụ: chúng tôi có thể cập nhật tài khoản

Successfully added user: { "user" : "tom", "roles" : [ ] }

7 xác thực dựa trên cơ sở dữ liệu

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

0 để 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

Enter password:

Successfully added user: { "user" : "tom", "roles" : [ ] }

2

use admin

4

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

use admin

5

use admin

6

Để 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

use admin

7

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

admin 0.000GB

config 0.000GB

local 0.000GB

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

Để thực thi phương thức

admin 0.000GB

config 0.000GB

local 0.000GB

04, bạn cần cung cấp tên của người dùng mà bạn muốn xóa

use admin

8

Sau khi xóa thành công, MongoDB sẽ trả về

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

7

use admin

9

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ề

admin 0.000GB

config 0.000GB

local 0.000GB

07

Phần 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

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

4 để hiển thị tất cả người dùng trong cơ sở dữ liệu hiện tại

Cú pháp sẽ giống như

switched to db admin

0

Để 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

Successfully added user: { "user" : "tom", "roles" : [ ] }

1 trong cơ sở dữ liệu

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

0

Phần sau minh họa cú pháp sử dụng để tạo quản trị viên cơ sở dữ liệu

switched to db admin

1

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 thức

admin 0.000GB

config 0.000GB

local 0.000GB

04. Điều này cần được thực hiện trong cơ sở dữ liệu

db.createUser({

user: "tom",

pwd: passwordPrompt(),

roles: []

})

0 và cú pháp sẽ như thế này

switched to db admin

2

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

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

4

Cú pháp cơ bản sẽ giống như

switched to db admin

0

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 pháp

Successfully added user: { "user" : "tom", "roles" : [ ] }

0 với

Successfully added user: { "user" : "tom", "roles" : [ ] }

5

admin 0.000GB

config 0.000GB

local 0.000GB

17 được đặt thành

db.runCommand({

createUser: "tom",

pwd: "hellothere",

roles: []

})

7

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

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 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

Quản trị viên trong MongoDB là gì?

Cơ sở dữ liệu quản trị . to store system collections and user authentication and authorization data, which includes the administrator and users' usernames, passwords, and roles.

MongoDB kết nối với quản trị viên như thế nào?

Cách kết nối với MongoDB .
Tạo cơ sở dữ liệu trên MongoDB. Kết nối với vỏ MongoDB. Tạo cơ sở dữ liệu "testdb". Tạo bộ sưu tập "người dùng" và chèn nó vào "testdb"
Thiết lập người dùng. Kết nối với db quản trị. Tạo quản trị viên người dùng. .
Tạo kết nối tới MongoDB trên CPD. Đặt thông tin cần thiết