MongoDB默认不开启认证,也没有默认管理用户。
以普通方式启动MongoDB,bin/mongo进入控制台,创建管理员用户:
use admin;
db.createUser(
{
user: "super_user",
pwd: "super_pass",
roles: [{role: "userAdminAnyDatabase", db: "admin" },
"readWriteAnyDatabase" ]
},
{ w: "majority", wtimeout: 5000 }
)
super_user有管理员权限,对所有数据库都有读写权限,用户信息存放在admin表中。
关于roles更多选项,查询官方文档。
开启认证模式,修改MongoDB的配置文件:
# Turn on/off security. Off is currently the default
#noauth=true
auth=true #这个就是开启认证的配置
如果是yaml格式的配置文件:
security:
authorization: enabled
开启完成后重启MongoDB
bin/mongo进入控制台,验证管理用户
use admin;
db.auth("super_user", "super_user" )
创建普通用户
db.createUser(
{
"user" : "test_user",
"pwd": "test_pass",
"roles" : [{role: "readWrite", db: "test" }]
},
{ w: "majority" , wtimeout: 5000 }
);
test_user只对db test有读写权限,用户信息存放在admin表中。
连接数据库
带认证信息的url形式:
mongodb://test_user:test_pass@localhost:27017