1.admin表创建一个admin user并设置密码并给userAdminAnyDatabase的权限;

//可以在mongodb刚装好后,用官网自带的客户端MongoDB Compass一键connect链接后,点击界面最下方 ">MONGOSH",输入此命令,下同。

use admin;
db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});

2.业务表创建一个user并设置密码并给dbAdmin和dbOwner的权限;

use my_db;
db.createUser({user: 'my_db_owner', pwd: '123456', roles: [{role: 'dbAdmin', db: 'my_db'}, {role: 'dbOwner', db: 'my_db'}]});

3.打开mongod.cfg(windows, 如果是ubuntu,则为:/etc/mongodb.conf)文件(不同版本在不同路径下,3.4.5版本的在与bin同级的文件夹下, 4.2版本在bin文件夹里面),在最末尾添加上:

security:
  authorization: enabled

注意:authorization前面是两个空格,不能是缩进tab,否则mongodb会起不来。

4.任务管理器->services服务,找到MongoDB服务,右键restart。

5.Studio 3T创建一个连接,Authentication那里选择Basic, 输入用户名密码和业务表名,就可以成功连接。如果不输入用户名密码,则可以连接localhost:27017但是看不到任何数据库表。

或者采取在MongoDB Compass用url方式链接:mongodb://my_db_owner:123456@localhost:27017

注意:如果不给admin表设置账号,则就算给业务表设置账号密码也没用,没有账号密码一样可以访问。

亲测:2022年1月22号,mongodb最新版5.0.5,依然有效。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐