2012-06-12 12 views
8

Chúng tôi có 9 nút Mongo trong môi trường của chúng tôi với:Mongos xác thực

  • 1 mongos
  • 3 máy chủ cấu hình (mongod --configSvr)
  • 9 máy chủ mongod (mảnh hoặc thành viên của sharded bản sao-bộ)

và chúng tôi đang cố triển khai xác thực trên chúng.

Tôi đã làm điều này trong quá khứ với một máy chủ duy nhất và nó đã thực sự dễ dàng:

  1. chỉ cần thêm người dùng quản trị cơ sở dữ liệu quản trị
  2. thêm một người dùng trên mỗi cơ sở dữ liệu

Tôi đã phải khởi động lại mongod với tùy chọn --auth, nhưng ở đây nó không có vẻ làm việc.

Tôi đã thêm tài khoản quản trị vào mong muốn của chúng tôi và cho các cơ sở dữ liệu bị phân mảnh của chúng tôi; Tôi đã cố gắng xác thực là người dùng mà tôi vừa tạo, nhưng nó không hoạt động.

Tôi đã thử tạo người dùng quản trị trên từng cơ sở dữ liệu và các tài khoản người dùng khác mà chúng tôi cần, nhưng nó vẫn không hoạt động.

Tôi cũng đã thử đảm bảo tất cả các máy chủ mongo của chúng tôi đang chạy với tùy chọn --keyFile được chỉ định trên dòng lệnh hoặc trong các tệp /etc/mongodb.conf của chúng, nhưng điều đó dường như không giúp ích gì.

Khi tôi cố gắng để xác thực như một người dùng nhất định, như vậy:

db.auth("user","passwd") 

nó không thành công và trả về 0, như trong false; không phải non-zero.

Tôi thực sự cần tất cả sự giúp đỡ mà tôi có thể nhận được, vì vậy ít nhất hãy để lại một số gợi ý về những điều tôi có thể thử - Tôi không thể vượt qua điều này, bất kỳ sự trợ giúp nào được hoan nghênh vì tôi dường như không nhận được bất cứ nơi nào chỉ từ sau các tài liệu chính thức về quản lý/quản trị các cụm xáo trộn mongo.

+0

làm sao cậu tạo người dùng nói? Vui lòng đăng thêm mã! ** NOTE ** mongos trường hợp không thể khởi động với '--auth', các máy chủ cấu hình và mảnh là những gì cung cấp chứng thực/an ninh. ** CSONG ** Đảm bảo rằng bạn đang chạy 'db.auth (" người dùng "," mật khẩu ")' trên cùng một cơ sở dữ liệu mà bạn đã tạo người dùng mà bạn đang cố gắng xác thực là. –

+0

Tại nơi làm việc của chúng tôi, chúng tôi đã cố gắng tạo người dùng từ mongos và vì một lý do nào đó nó không hoạt động đáng tin cậy; khi chúng tôi tạo chúng trực tiếp trên một máy chủ cấu hình nó hoạt động tốt. (chúng tôi tắt máy chủ mongos của chúng tôi trước, đưa lên cấu hình mới và sau đó tạo người dùng trực tiếp trên cấu hình và sau đó thêm một số máy chủ mongos) –

Trả lời

1

Trong cụm được phân đoạn, bạn nên sử dụng --keyFile để cho phép tất cả các thành viên của cụm xác thực với nhau. Khi bạn sử dụng tùy chọn này, --auth là "được giả định". Vì đã có một số thay đổi phiên bản kể từ khi bạn hỏi câu hỏi này, các vai trò được gán cho người dùng hiện chi tiết hơn - bạn sẽ cần phải có 'cụmAdAdmin', 'userAdmin', 'dbAdmin', v.v.

This page has more details về làm thế nào để cấu hình bảo mật trong MongoDB cho một cluster bị phân mảnh.