我目前正在使用MongoDB作爲數據庫的項目,並且我在symfony config.yml的mongo配置中沒有安全性。通過DoctrineMongoDBBundle使用身份驗證
這是我的config.yml自項目開始以來的樣子。
doctrine_mongodb:
connections:
default:
server: mongodb://localhost:27017
options: {}
default_database: louisv
document_managers:
default:
auto_mapping: true
有了這個參數,項目工作得很好。
但我想爲mongodb數據庫添加安全性。所以我試圖按照mongodb上的文檔來創建用戶。我爲admin數據庫創建了一個「admin」用戶,爲louisv數據庫創建了一個「louisv」用戶(admin數據庫是默認存在的數據庫,louisv是我的)。
現在我想讓Symfony使用這個新用戶。我從我的conf.yml文件改變了我對選項的參數,現在這就是我:
doctrine_mongodb:
connections:
default:
server: mongodb://localhost:27017
options:
username: louisv
password: password
default_database: louisv
document_managers:
default:
auto_mapping: true
現在,當我嘗試在Symfony的進入我的應用程序
Failed to connect to: localhost:27017: Authentication failed on database 'admin' with username 'louisv': auth fails
這是奇怪的原因我DEFAULT_DATABASE是「louisv」而不是‘管理員’
如果我改變憑據管理員的那些,我有另一個錯誤:
localhost:27017: not authorized for query on louisv.User
這似乎相當不錯,因爲它似乎搜索用戶,但我不能做查詢。
非常感謝現在的工作!我搜查了很多,但沒有找到這個簡單的答案! Thx再次! – Zaidar
嗨,我試過你的解決方案,但它沒有連接到數據庫。更改數據庫憑證後是否需要重新啓動mongo?和以前一樣,沒有用戶名和密碼。 – Geetika