当前位置: 移动技术网 > IT编程>数据库>MongoDB > MongoDB用户和密码登录

MongoDB用户和密码登录

2019年06月13日  | 移动技术网IT编程  | 我要评论

一、mongodb中内置角色

角色 介绍
read 提供读取所有非系统的集合(数据库)
readwrite 提供读写所有非系统的集合(数据库)和读取所有角色的所有权限
dbadmin 提供执行管理任务的功能,例如与架构相关的任务,索引编制,收集统计信息。此角色不授予用户和角色管理权限。
dbowner 提供对数据库执行任何管理操作的功能。此角色组合了readwrite,dbadmin和useradmin角色授予的权限。
useradmin 提供在当前数据库上创建和修改角色和用户的功能。由于useradmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供对数据库的超级用户访问权限,或者,如果作用于管理数据库,则提供对群集的访问权限。
clusteradmin 提供最佳的集群管理访问。此角色组合了clustermanager,clustermonitor和hostmanager角色授予的权限。此外,该角色还提供了dropdatabase操作。
readanydatabase 仅在admin 数据库中使用,提供所有数据库的读权限。
readwriteanydatabase 尽在admin 数据库中使用,提供所有数据库的读写权限
useradminanydatabase 尽在admin 数据库中使用,提供与useradmin相同的用户管理操作访问权限,允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。
dbadminanydatabase 仅在admin 数据库中使用,提供与dbadmin相同的数据库管理操作访问权限,该角色还在整个群集上提供listdatabases操作。
root 尽在admin 数据库中使用,提供超级权限

二、创建管理员用户

创建管理员

连接mongodb

 

mongo --host 10.10.18.11

 

use admin
db.createuser(
  {
    user: "myuseradmin",
    pwd: "abc123",
    roles: [ { role: "useradminanydatabase", db: "admin" }, "readwriteanydatabase" ]
  }
)

创建管理员账号:myuseradmin 密码:abc123

 

查看创建的管理员账号

use admin
db.getuser("myuseradmin")

重启mongodb实例

连接mongodb

1、类似mysql一样连接

mongo --host 10.10.18.11 -u "myuseradmin" --authenticationdatabase "admin" -p'abc123'

结果:

1 mongodb shell version v4.0.10
2 connecting to: mongodb://10.10.18.11:27017/?authsource=admin&gssapiservicename=mongodb
3 implicit session: session { "id" : uuid("3b067347-1b0e-4761-9399-cb3ad4ba6c93") }
4 mongodb server version: 4.0.10

2、登录后进行验证

连接mongodb

mongo --host 10.10.18.11

进行验证

rs0:primary> use admin
switched to db admin
rs0:primary> db.auth("myuseradmin", "abc123" )
1

三、创建普通用户

创建一个普通用户

用户名:mytester
密码:xyz123
权限:读写数据库 test, 只读数据库 reporting。

use test
db.createuser(
  {
    user: "mytester",
    pwd: "xyz123",
    roles: [ { role: "readwrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

普通用户连接mongodb实例

mongo --host 10.10.18.11 -u "mytester" --authenticationdatabase "test" -p'xyz123' 

结果:

1 mongodb shell version v4.0.10
2 connecting to: mongodb://10.10.18.11:27017/?authsource=test&gssapiservicename=mongodb
3 implicit session: session { "id" : uuid("3e9011ee-729f-4112-acd1-f5d1515490ac") }
4 mongodb server version: 4.0.10

验证权限

在test集合中插入、查询数据

rs0:primary> db.test.insertone({name:"sue",age:19,status:'p'})
{
        "acknowledged" : true,
        "insertedid" : objectid("5d00b364a75d40ae9b83c64c")
}
rs0:primary> db.test.find({name:"sue"})
{ "_id" : objectid("5d00b364a75d40ae9b83c64c"), "name" : "sue", "age" : 19, "status" : "p" }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网