MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để biết Mongodb có đang chạy ở chế độ xác thực trong tập lệnh shell hay không?

Nếu bạn chỉ muốn kiểm tra xem bạn có thể kết nối với máy chủ MongoDB mà không cần xác thực thông qua bash hay không , bạn có thể sử dụng một tập lệnh tương tự như sau:

#!/bin/bash

# Connect to MongoDB address (host:port/dbname) specified as first parameter
# If no address specified, `mongo` default will be localhost:27017/test
isAuth=`mongo --eval "db.getUsers()" $1 | grep "not auth"`

if [ -z "$isAuth" ] ;
then
   echo "mongod auth is NOT enabled"
   exit 1
else
   echo "mongod auth is ENABLED"
   exit 0
fi

Đầu ra mẫu:

$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED

$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled

Tham số duy nhất cho tập lệnh này là một địa chỉ MongoDB tùy chọn để kết nối với (máy chủ:cổng / dbname); mongo shell mặc định sử dụng localhost:27017/test .

Tập lệnh thực hiện một kiểm tra đơn giản về việc liệu người dùng có thể được liệt kê mà không được phép hay không.

Nếu xác thực được bật đúng cách, db.getUsers() lệnh sẽ trả về một lỗi như:

  "Error: not authorized on test to execute command { usersInfo: 1.0 }"

Lưu ý:Ngoại lệ Localhost

Theo mặc định (như ở MongoDB 3.0) có localhost exception cho phép bạn tạo quản trị viên người dùng đầu tiên để triển khai bằng cách kết nối qua localhost . Khi ít nhất một người dùng đã được thêm vào, ngoại lệ localhost sẽ tự động bị vô hiệu hóa.

Nếu bạn muốn kiểm tra toàn bộ tính bảo mật của việc triển khai của mình, bạn chắc chắn nên xem lại MongoDB Danh sách kiểm tra bảo mật .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB.Driver.Builders cách nhóm và lấy điểm trung bình

  2. MongoDB trong Go với mgo, các toán tử với bson.M / bson.D luôn gặp lỗi cú pháp

  3. Lược đồ đơn giản Meteor cho dữ liệu vị trí địa lý mongo

  4. Vấn đề về độ chính xác thời gian khi so sánh trong trình điều khiển mongodb trong Go và có thể ở ngôn ngữ khác và cơ sở dữ liệu khác

  5. Thay đổi giá trị biến trong tài liệu sau một thời gian trôi qua?