mongoDB 添加db的用户权限

一、mongoDB用户角色配置

MongoDB基本的角色

1.数据库用户角色:read、readWrite;

2.数据库管理角色:dbAdmin、dbOwner、userAdmin;

3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4.备份恢复角色:backup、restore;

5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

6.超级用户角色:root 

//这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

   其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。

二、docker 部署mongo步骤

1、查看可用的 MongoDB 版本:docker search mongo

2、取最新版的 MongoDB 镜像:docker pull mongo:latest

3、查看本地镜像: docker images

4、运行容器:docker run -itd --name mongo -p 27017:27017 mongo --auth

(ps:加了--auth 则连接mongo的时候要权限认证)

三、给数据库添加用户权限

1、给admin数据库添加用户权限:

docker exec -it mongo mongo admin

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

Successfully added user: {

"user" : "admin",

"roles" : [

{

"role" : "userAdminAnyDatabase",

"db" : "admin"

},

"readWriteAnyDatabase"

]

}

注:添加完用户后可以使用show users或db.system.users.find()查看已有用户

2、退出mongo客户端

>exit

3、连接admin数据库,然后切换到其它数据库,并给其它数据库(这里是first_website)添加用户权限,用户都跟着库走

docker exec -it mongo mongo admin -u admin -p

Enter password:123456

>use first_website

>db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "first_website" }]})

Successfully added user: {

"user" : "root",

"roles" : [

{

"role" : "readWrite",

"db" : "first_website"

}

]

}

4 、再次退出mongo客户端

>exit

5 、连接mongo的first_website数据库

docker exec -it mongo mongo first_website -u root -p

Enter password:123456


你可能感兴趣的:(mongoDB 添加db的用户权限)