2014-10-11 6 views
7

Я пытаюсь выполнить аутентификацию через mongoid.yml, но пользователь, которого я хочу аутентифицировать, находится в базе данных администратора. Если я попытаюсь указать базу данных администратора в поле базы данных, она также разместит все коллекции, и я не хочу этого.Укажите базу данных аутентификации в mongoid.yml

Есть ли способ установить мое поле базы данных в базу данных, которую я хочу, но указать отдельную базу данных аутентификации? Heres мой файл mongoid.yml на данный момент

development: 
    sessions: 
    default: 
     database: XC_DEV 
     hosts: 
     - IP:PORT 
     username: user 
     password: password 

ответ

8

Вопрос является более года, но он заслуживает ответа.

Да, параметр auth_source указывает базу данных аутентификации. Вы должны быть на mongoid 5.0.0 или выше (documentation on the mongodb website). Заметьте mongoid по умолчанию для базы данных администратора.

Невозможно найти такой вариант для Mongoid 4 configuration. Я создал аутентификации в реальных базах данных (может быть, я не знаю).

Сегмент mongoid.yml (5.0.0):

development: 
    clients: 
    default: 
     database: database_name 
     hosts: 
     - localhost:27017 
     options: 
     # The name of the user for authentication. 
     user: "<%= Rails.application.secrets.mongoid['user'] %>" 
     # The password of the user for authentication. 
     password: "<%= Rails.application.secrets.mongoid['password'] %>" 
     # The user's database roles. 
     roles: 
      - 'dbOwner' 
     # Change the default authentication mechanism. Valid options are: :scram, 
     # :mongodb_cr, :mongodb_x509, and :plain. (default on 3.0 is :scram, default 
     # on 2.4 and 2.6 is :plain) 
     # auth_mech: :scram 
     # The database or source to authenticate the user against. (default: admin) 
     auth_source: admin 
+1

Не хватает upvotes поблагодарить Вас за это! :) – Throoze

+0

Большое спасибо – user2624242

Смежные вопросы