创建一个用户
mongoDB 没有炒鸡无敌用户root(查看所有角色),只有能“管理用户”的用户 userAdminAnyDatabase。
网上有很多资料都使用addUser()方法,但在mongodb3.0之后都使用creatUser()。
$ use admin
$ db.createUser(
{
"user":"root",
"pwd":"root",
"roles":[{"role":"userAdminAnyDatabase","db":"admin"}]
}
)
查看用户
# 查看用户,两种方法
$ show users
$ db.system.users.find()
# 查看用户结果
{ "_id" : "admin.root", "user" : "root", "db" : "admin", "credentials" : { "SCRA
M-SHA-1" : { "iterationCount" : 10000, "salt" : "7eWmznto1bhYMrr8jjsFwg==", "sto
redKey" : "KbI6gd7JynIM8kUcJqXkw2Z2MMc=", "serverKey" : "fXA5yDP6mhTfZ208RWbrNw6
+duc=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
登陆“用户管理”账号
登陆成功后使用$ show collections时依然提示错误,因为登陆后只有“管理用户”权限。还需要继续创建有读、写权限的账号。
# 认证,返回1表示成功
$ use admin
$ db.auth("root","root")
# 继续创建有读、写权限的用户
$ use test
$ db.createUser(
{
"user":"root",
"pwd":"root",
"roles":[{ role: "readWrite", db: "test" },{ role: "read", db: "other" }]
}
)
开启验证
mongodb默认是不开启权限认证的。
Windows:
# 1.注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB
# 2.修改ImagePath中的参数,在结束双引号与--service中间添加--auth
# 3.重启mongdb服务
Linux:
# mongod启动时添加--auth参数或在启动配置文件中指定auth=true