Joe*_*eyP 7 authentication mongodb
Mongo newb在这里.我有一个包含四个数据库的mongo安装,并希望创建一个可以读写所有数据库的用户.我试过了:
use admin;
db.addUser({user: "foo" , pwd: "bar", roles: [ "readWriteAnyDatabase" ]})
Run Code Online (Sandbox Code Playgroud)
但是当我尝试做的时候
mongo someotherdb -u foo -p
Run Code Online (Sandbox Code Playgroud)
并使用正确的密码进行身份验证,它给我一个身份验证错误.
我还尝试通过这样做手动将用户添加到其他数据库
use someotherdb
db.addUser({user: "foo", roles: ['readWrite'], userSource: "admin"});
Run Code Online (Sandbox Code Playgroud)
仍然没有骰子试图通过mongo shell登录或使用目标数据库中的auth命令.
难道我做错了什么?你如何建立一个可以全局读写任何数据库的用户?您是否必须将所述用户添加到每个db的system.users集合中,或者如果它们具有"readWriteAnyDatabase"角色,那么这是不必要的?
我在ubuntu上使用mongo 2.4.
Joe*_*eyP 16
所以,我终于弄明白了.请注意,此修复程序仅适用于Mongo 2.4.
在2.4中,您可以指定一个数据库,以便在连接字符串或命令行中对自己进行身份验证
所以要创建初始用户
use admin
db.createUser({user: "foo" , pwd: "bar", roles: [ "userAdminAnyDatabase","readWriteAnyDatabase" ]})
Run Code Online (Sandbox Code Playgroud)
并验证使用
mongo -u foo --authenticationDatabase admin -p
Run Code Online (Sandbox Code Playgroud)
现在,您应该可以对任何数据库执行任何操作
| 归档时间: |
|
| 查看次数: |
19683 次 |
| 最近记录: |