MongoDB用户和密码登录
一、MongoDB中内置角色 角色 介绍 read 提供读取所有非系统的集合(数据库) readWrite 提供读写所有非系统的集合(数据库)和读取所有角色的所有权限 dbAdmin 提供执行管理任务的功能,
一、MongoDB中内置角色
二、创建管理员用户
创建管理员
连接mongodb
mongo --host 10.10.18.11
use admindb.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] })
创建管理员账号:myUserAdmin 密码:abc123
查看创建的管理员账号
use admindb.getUser("myUserAdmin")
重启MongoDB实例
连接MongoDB
1、类似Mysql一样连接
mongo --host 10.10.18.11 -u "myUserAdmin" --authenticationDatabase "admin" -p'abc123'
结果:
1 MongoDB shell version v4.0.102 connecting to: mongodb://10.10.18.11:27017/?authSource=admin&gssapiServiceName=mongodb3 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 adminswitched to db adminrs0:PRIMARY> db.auth("myUserAdmin", "abc123" )1
三、创建普通用户
创建一个普通用户
用户名:myTester密码:xyz123权限:读写数据库 test, 只读数据库 reporting。
use testdb.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.102 connecting to: mongodb://10.10.18.11:27017/?authSource=test&gssapiServiceName=mongodb3 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" }