Mật khẩu tên người dùng MongoDB

Tên người dùng và mật khẩu là hình thức xác thực cơ bản nhất. Theo mặc định, MongoDB không cung cấp bất kỳ hình thức xác thực nào. Điều này có nghĩa là bất kỳ người dùng nào có quyền truy cập vào giao diện Máy chủ MongoDB của bạn đều có thể truy cập và quản lý cơ sở dữ liệu của bạn

Đây là một rủi ro bảo mật nghiêm trọng, đặc biệt là khi cơ sở dữ liệu của bạn bị lộ ra ngoài. Do đó, bài đăng này sẽ hướng dẫn bạn cách định cấu hình xác thực tên người dùng và mật khẩu trong máy chủ MongoDB

Hãy nhảy vào nó

Bước 1. Đăng nhập vào máy chủ MongoDB

Bước đầu tiên là đăng nhập vào máy chủ của bạn. Vì MongoDB không được bảo mật nên bạn có thể chạy lệnh sau

$ mongo Mongodb. //< máy chủ > . < cổng >

 
Lệnh đã cho đăng nhập vào máy chủ MongoDB với tên người dùng mặc định.

Bước 2. Thay đổi cơ sở dữ liệu quản trị

Tiếp theo, thay đổi cơ sở dữ liệu quản trị cho phép chúng tôi thực hiện các hành động như tạo người dùng mới và gán quyền

> SỬ DỤNG quản trị viên
'đã chuyển sang quản trị viên db'

 

Bước 3. Tạo người dùng quản trị viên

Bước tiếp theo là tạo người dùng với vai trò UserAdminAnyDatabase. Điều này cho phép bạn quản lý bất kỳ cơ sở dữ liệu nào trên máy chủ

Chúng ta có thể chạy lệnh như sau

db. người tạo người dùng ({ người dùng. "root" , pwd. "mật khẩu" , vai trò. [{ vai trò. "userAdminAnyDatabase" , db. "quản trị viên"}]})

 
Chạy lệnh trước đó sẽ tạo một tên người dùng có tên là root với mật khẩu và vai trò userAdminAnyDatabase đã chỉ định.

đầu ra

{ được rồi. 1 }

 

Bước 4. MongoDB Kích hoạt xác thực

Khi chúng tôi đã tạo tên người dùng và mật khẩu, chúng tôi cần bật xác thực cho máy chủ MongoDB

Chúng tôi có thể làm điều này bằng cách chỉnh sửa tệp cấu hình MongoDB. Hãy nhớ rằng vị trí của tệp cấu hình MongoDB khác nhau tùy thuộc vào phương pháp cài đặt và hệ điều hành

Xác định vị trí mongod. conf hoặc mongod. cfg trong hệ thống của bạn. Chỉnh sửa tệp bằng trình soạn thảo văn bản yêu thích của bạn

$ sudo nano / vv /mongod.conf

 
Chỉnh sửa tệp và định vị mục nhập như hình bên dưới.

bảo mật.
    ủy quyền. "đã tắt"

 
Trong một số trường hợp, bạn có thể thấy khối bảo mật đã được nhận xét như hình dưới đây.

# bảo mật.

 
Bỏ chú thích bằng cách xóa dấu thăng trước đó và đặt mục nhập như hình bên dưới.

#bảo mật.
    ủy quyền. "đã bật"

 
Lưu tệp và đóng.

Khởi động lại dịch vụ MongoDB bằng lệnh sau

$ sudo khởi động lại dịch vụ mongodb

 
Trên Windows, bạn có thể chạy lệnh sau.

$ net stop mongodb && net start mongodb

 
Chạy lệnh sau để đăng nhập vào máy chủ bằng tên người dùng và mật khẩu đã chỉ định.

$ mongo mongodb. //< máy chủ > . < cổng > db. auth ("tên người dùng" , "mật khẩu")

 

Phần kết luận

Bài đăng này đã thảo luận về những điều cơ bản của việc thiết lập xác thực tên người dùng và mật khẩu trên Máy chủ MongoDB

Trong hướng dẫn này, chúng ta sẽ thảo luận về tên người dùng và mật khẩu mặc định cũng như cách tìm tên người dùng và mật khẩu trong MongoDB

Tên người dùng và mật khẩu mặc định trong MongoDB

Theo mặc định, MongoDB không bật quyền kiểm soát truy cập, do đó không có người dùng hoặc mật khẩu mặc định. Sử dụng tùy chọn dòng lệnh

use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
2 hoặc cài đặt tệp cấu hình
use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
3 để bật kiểm soát truy cập

Sau đây là các bước mà bạn có thể làm theo. Đầu tiên, mở terminal và khởi động MongoDB Daemon

mongod --port 27017 --dbpath /data/db

Nhập vỏ mongo trong tab thiết bị đầu cuối mới

Tạo người dùng quản trị

use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)

Nhập

use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
4 thoát. Nhấn và giữ
use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
5 để hủy tiến trình trên trang daemon mongo và khởi động lại MongoDB với tùy chọn
use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
2 được bật

$ mongod --auth --port 27017 --dbpath /data/db
2019-02-23T16:18:38.539+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
...
...
2019-02-23T16:18:38.553+0800 I CONTROL  [initandlisten] options: { net: { port: 27017 }, security: { authorization: "enabled" }, storage: { dbPath: "/data/db" } }

Đăng nhập vào mongo shell với người dùng đã tạo trước đó

$ mongo --port 27017 -u "user123" -p "pass123" --authenticationDatabase "admin"
MongoDB shell version v4.0.2
connecting to: mongodb : //127.0.0.1:27017/
MongoDB server version: 4.0.2
...

Chọn

use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
0 để kết nối với triển khai MongoDB của bạn

  1. Kiểm tra
    use admin
    db.createUser(
      {
        user: "user123",
        pwd: "pass123",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" },
                 { role: "dbAdminAnyDatabase", db: "admin" },
                 { role: "readWriteAnyDatabase", db: "admin" }
               ]
      }
    )
    
    0 hoặc
    use admin
    db.createUser(
      {
        user: "user123",
        pwd: "pass123",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" },
                 { role: "dbAdminAnyDatabase", db: "admin" },
                 { role: "readWriteAnyDatabase", db: "admin" }
               ]
      }
    )
    
    2 từ Cơ chế xác thực đại lý. Cloud Manager tự động tạo tên người dùng và mật khẩu của Đại lý
  2. Nhấp vào để lưu

cú pháp

Các tham số cho truy vấn là

use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
3,
use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
4 và
use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
5. Bạn phải có hành động
use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
6 trên cơ sở dữ liệu của người dùng khác để xem thông tin của người dùng khác

Dưới đây là truy vấn để thay đổi mật khẩu của người dùng MongoDB

Truy vấn

use admin
db.createUser(
  {
    user: "user123",
    pwd: "pass123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },
             { role: "dbAdminAnyDatabase", db: "admin" },
             { role: "readWriteAnyDatabase", db: "admin" }
           ]
  }
)
1

  1. Bắt đầu MongoDB mà không cần xác thực
  2. Sau đó, kết nối với máy chủ bằng vỏ mongo
  3. Tạo quản trị viên người dùng
  4. Bật xác thực trong tệp cấu hình MongoDB
  5. Bây giờ hãy kết nối và xác thực với tư cách là quản trị viên người dùng
  6. Cuối cùng, tạo thêm người dùng nếu cần

Tìm mật khẩu của bạn trong MongoDB

Bạn có thể chỉ định mật khẩu trực tiếp như với các phiên bản trước của vỏ mongo. Tài liệu người dùng chứa tên người dùng và mật khẩu, tùy chọn, cơ chế xác thực và cờ mật khẩu thông báo

Làm cách nào để đặt 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 để đăng nhập trong MongoDB?

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

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

Kích hoạt xác thực trên MongoDB .
Bắt đầu MongoDB mà không cần xác thực. .
Kết nối với máy chủ bằng vỏ mongo. .
Tạo quản trị viên người dùng. .
Bật xác thực trong tệp cấu hình mongodb. .
Kết nối và xác thực với tư cách là quản trị viên người dùng. .
Cuối cùng, tạo thêm người dùng nếu cần

Làm cách nào tôi có thể khôi phục mật khẩu quản trị viên MongoDB của mình?

Vui lòng làm theo các bước bên dưới để đặt lại mật khẩu cho Deploy_admin cho Mongo DB. .
SSH vào máy chủ ESA
Sửa đổi/etc/mongod. conf để thay đổi 'ủy quyền' từ. .
Khởi động lại dịch vụ mongod. .
Đặt lại mật khẩu. .
Hoàn nguyên các thay đổi thành /etc/mongod. conf. .
Khởi động lại dịch vụ mongod. .
Kiểm tra kết nối với mật khẩu hiện tại