mongodb创建新数据库和创建用户

使用mongodb数据库时有这样的场景,使用可视化工具登陆了某个数据库blogs,然后又创建了数据库website,给website数据库添加用户hp_website

db.createUser( {user: "hp_website",pwd: "xxxxxx",roles: [ { role: "userAdmin", db: "website" },{ role: "dbAdmin", db: "website" },{ role: "dbOwner", db: "website" } ]})

退出后使用bbb-user登陆数据库bbb却发现登陆不上去。登陆aaa数据查看用户db.getUsers()显示

虽然创建了很多用户,但db值都是blogs,显然是不对的。即时使用use website后创建用户也是不对。 正确的做法是关闭数据库认证,使用不带--auth启动数据库,使用命令行来创建

use website

db.createUser( {user: "username",pwd: "xxxxxx",roles: [ { role: "userAdmin", db: "website" },{ role: "dbAdmin", db: "website" },{ role: "dbOwner", db: "website" } ]})

这样就可以登录了。由于数据库和用户名是绑定的,只有确保用户是创建在对应数据库上才行。