我目前正在开发一个使用 mongodb 作为数据库的项目,并且我在 symfony config.yml 的 mongo 配置中开始时没有安全性。
这就是我的 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 中输入我的应用程序时
无法连接到:localhost:27017:使用用户名 'louisv' 对数据库 'admin' 进行身份验证失败:身份验证失败
这很奇怪,因为我的 default_database 是“louisv”而不是“admin”。
如果我将凭据更改为管理员的凭据,则会出现另一个错误:
localhost:27017: 未授权查询 louisv.User
这似乎很好,因为它似乎可以搜索用户,但我无法进行查询。