Aqi*_*ash 2 authentication mongodb docker
我已经用MongoDB Image设置了一个docker。默认情况下,没有设置密码。我创建了一个用户并为其分配了角色,效果很好。但是问题在于,无需身份验证仍然可以建立连接。
使用身份验证>正确的用户名,正确的密码->已连接进行连接
使用身份验证连接>用户名正确,密码错误->连接失败
未经身份验证的连接>已连接
我要第三点停止工作。
步骤:
-1)运行没有身份验证的docker实例
$ docker run --name容器名称-d -p 27017:27017 -v〜/ mongodb:/ data / db mongo
2)创建一个具有管理员角色的主要管理员用户
$ mongo-端口27017
$使用管理员;
$ db.createUser({user:“ adminUserName”,pwd:“ adminPassword”,roles:[{角色:“ userAdminAnyDatabase”,db:“ admin”}})
这将在管理数据库中创建一个角色为“ userAdminAnyDatabase”的用户。这就像一个超级用户。
3)为特定数据库创建用户
$使用
$ db.createUser({user:“ dev-read-username”,pwd:“ dev-read-password”,roles:[“ read”]})
-具有“读取”角色的用户
$ db.createUser({user:“ dev-write-username”,pwd:“ dev-write-password”,roles:[“ readWrite”]})
-具有“ readWrite”角色的用户
有关可用角色或如何创建自定义角色的列表,请检查https://docs.mongodb.com/manual/reference/built-in-roles/
4)移除Docker容器
$ docker ps -a
$ docker stop container_id
$ docker rm容器ID
5)在启用身份验证的情况下运行docker实例
$ docker run --name容器名称-d -p 27017:27017 -v〜/ mongodb:/ data / db mongo --auth
我假设您可能尚未启用--auth来启动docker容器。一旦启用--auth开始,那么没有凭据就无法连接。
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |