一、操作步骤
1、使用管理员数据库(cmd下)
mongo localhost:27017/admin
2、添加root账户(mongo客户端)
(1)db.addUser(a,b,c) 旧、不推荐
a 用户名 b 密码 c 是否只读
举例
db.addUser(“root”,”root”)
db.addUser(“test”, “123456”, true)
为某个数据库添加账户要先use cntest,再执行添加命令
(2)db.createUser(user, writeConcern)
user 该文件具有关于要创建的用户的认证和访问信息。
writeConcern 可选。关于创建操作的写入级别。
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}
user 用户名
pwd 密码
customData 可选。任意描述性信息
roles授予用户的角色,接收数组
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
内置角色官网说明:
https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
官网说明:
http://docs.mongodb.org/manual/reference/write-concern/
举例:
db.createUser({
user: "root",
pwd : "123456",
roles :[
{role:"root", db:"admin"}
]
});
查看用户列表 show users;
3、关闭当前mongodb服务器(mongo客户端)
db.shutdownServer()
4、启动mongodb,并开启安全认证(cmd下)
mongod -dbpath E:\software\mongodb\mongodata -logpath E:\software\mongodb\logs\log1.txt -auth
4、连接mongo客户端,然后登录
必须去创建用户的那个数据库才能登录
(1) 连接时直接登录
mongo -u root -p 123456 --authenticationDatabase admin
(2) 先连接,然后再登录
use admin
db.auth(“root”, ”123456”)
5、登出
db.logout()