小提示

首先进入mongodb的config.conf配置文件,将authorization设置为enabled(表示启用 MongoDB认证功能)并重新启动mongodb。如果不会安装mongodb可以使用宝塔进行安装
一般安装完mongodb后,会有默认的admin,config,local这三个默认的库。

1. 使用mongo命令进行连接mongoDB

mongo

执行命令后将会是下面这种情况,即表示登录成功!

2. 创建最高管理员账号

use admindb.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})

use admin 表示进到admin库,
db.createUser({user:“admin”,pwd:“123456”,roles:[{role:“root”,db:“admin”}]})表示创建一个用户名是admin,密码是123456,角色权限为超级用户角色,db则针对的库

出现以下则表示创建成功 这时候可以用可视化工具连接试试看了,如果本地测试先将mongodb的config.conf配置文件的bindIp: 127.0.0.1改成0.0.0.0并重新启动mongodb

使用命令show users可查看该admin库下的所有用户

3. 为数据库设置独立的登录账号
使用以下命令创建一个名为 test 的数据库,并创建一个普通用户:

use testdb.createUser({user:"你自定义的用户名",pwd:"你自定义的密码",roles:[{role:"readWrite",db:"test"}]})

use test 表示进到test库
db.createUser({user:“test”,pwd:“123456”,roles:[{role:“readWrite”,db:“test”}]})表示创建一个用户名是”test,密码是123456,角色权限为可读写,db则针对的库

完成创建如想进入admin库,操作步骤为:

  1. 输入mongo命令
  2. 输入use admin命令进入admin库(switched to db admin表示进入成功)
  3. 输入db.auth(“admin”,“123456”)进行认证登录,admin是你刚刚在这个admin库下创建的用户,1表示成功,0表示登录失败

如果设置了用户跟密码不先认证就操作命令,则会报以下错误提示你认证

常用命令

use dbname// 如果数据库不存在,则创建并切换到该数据库,存在则切换到该数据库 show users// 查看当前库下的用户show dbs//查询所有数据库 db //当前所在库 db.dropUser('admin')// 删除用户 db.updateUser('admin', {pwd: '654321'})//修改用户密码db.auth('admin','654321')// 密码认证 db.dropDatabase() //先切换到指定数据库,然后执行以下命令删除数据库quit() //退出登录

MongoDB 数据库用户权限

(1)数据库用户角色:read(只读)、readWrite(可读写);
(2)数据库管理角色:dbAdmin(在当前db中执行管理操作的权限)、dbOwner(在当前db中执行任意操作)、userAdmin(在当前db中管理user的权限);
(3)集群管理角色:clusterAdmin(管理机器的最高权限)、clusterManager(管理和监控集群的权限)、clusterMonitor(监控集群的权限)、hostManager( 管理Server);
(4)备份恢复角色:backup、restore;
(5)所有数据库角色:readAnyDatabase(在所有数据库上都有读取数据的权限)、readWriteAnyDatabase(在所有数据库上都有读写数据的权限)、userAdminAnyDatabase(在所有数据库上都有管理user的权限)、dbAdminAnyDatabase(管理所有数据库的权限);
(6)超级用户角色:root(超级用户)