每个MongoDB实例中的数据库都可以有许多用户。如果开启了安全性检查,则只有数据库认证用户才能执行读或者写操作。
在认证的上下文中,MongoDB会将普通的数据作为admin数据库处理。admin数据库中的用户被视为超级用户(即管理员)。
在认证之后,管理员可以读写所有数据库,执行特定的管理命令,如listDatabases和shutdown。
在开启安全检查之前,一定要至少有一个管理员账号。
在admin数据库中创建管理员账号:
use admin;
db.addUser(“root”,”root”,false); 默认只读是false
在test数据库中创建普通账号:
use test;
db.addUser(“zhangsan”,”123”);
db.addUser(“lisi”,”123”,true);
db.auth("root","root")
注意:用户zhangsan,密码为123,对test数据库拥有读写权限
用户lisi,密码为123,对test数据库拥有只读权限
重新启动数据库服务,并开启安全检查:
mongod --dbpath d:\mongo_data --auth
不加权限没配置文件方式启动指定端口启动
./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017
[wj@localhost bin]$ sudo ./mongod -f mongodb.conf --shutdown 如果是以配置文件方式启动的,停止时也得以配置文件方式停
[wj@localhost bin]$ sudo ./mongod -f mongodb.conf --logappend --auth 加权限验证后启动
用robo客户端连接时:勾选
客户端robo添加时库和添加用户时不出来,
在服务器连接后可以添加库添加用户[wj@localhost bin]$ ./mongo 127.0.0.1:28017
参考:https://blog.csdn.net/kk185800961/article/details/45619863