创建一个用户

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