添加超级管理员
- 上面的复制集搭建方式为不需要认证和授权,但是在实际生产环境中,出于安全的考虑,会为复制集设置用户名和密码和账户,下面是复制集用户的相关操作和认证授权,复制集以不需要认证的方式启动后, 使用mongo.exe -port ** 连接到primary节点,然后执行下面的命令,此时就为该复制集创建了超级管理员。
use admin;
db.createUser( {
user: "root",
pwd: "root",
roles: [ { role: "root", db: "admin" } ]
});
以认证的方式重启复制集
- 下面以认证的方式重启 mongodb复制集,重启命令只需在原来的启动命令上加—keyFile 参数 用于指定密钥的文件位置,三个节点的重启命令分别为:
- 节点一:mongod.exe --replSet mongodbcluster --keyFile d:\mongodbcluster\data\key\key1.txt --port 28010 --dbpath d:\mongodbcluster\data\data\r1 --logpath=d:\mongodbcluster\data\log\log1.log –logappend
- 节点二:mongod.exe --replSet mongodbcluster --keyFile d:\mongodbcluster\data\key\key2.txt --port 28011 --dbpath d:\mongodbcluster\data\data\r2 --logpath=d:\mongodbcluster\data\log\log2.log –logappend
- 节点三:mongod.exe --replSet mongodbcluster --keyFile d:\mongodbcluster\data\key\key3.txt --port 28012 --dbpath d:\mongodbcluster\data\data\r3 --logpath=d:\mongodbcluster\data\log\log3.log –logappend
- 重启成功后,使用mongo.exe 命令进行登录。登录成功后,若想操作数据库,则会报认证未通过的错误,此时需要我们进行认证操作。
- 认证操作,先切换到admin数据库,然后进行认证的命令操作
use admin;
db.auth(“root”,”root”); //括号分别为用户名和密码
当返回1 说明认证成功,若出现下面的提示,说明认证失败:
为个人数据库添加用户
- 超级管理员认证成功后,就可以为我们自己的数据库创建用户了,例如 我要为我的SleepMult创建用户,则使用下面的命令:
use SleepMult;
db.createUser(
{
user: "cyb",
pwd: "cyb13910834574",
roles: [ { role: "readWrite", db: "SleepMult"} ]
}
);
role 有几种角色,说明如下:
- readWrite: 该用户有读和写的权限
- read:该用户只能进行读的操作
- write:该用户只有写的操作
- 出现上面的提示信息添加成功。 也可以使用show users 命令来查看当前库的用户,至此,为个人的数据库添加用户操作完毕。