系统运维
mongodb配置文件如下:
[root@localhost ~]# cat /usr/local/mongodb/mongod.cnf bind_ip = 0.0.0.0logpath=/data/mongodb/logs/mongodb.loglogappend = truefork = true#auth = trueport = 6068dbpath=/data/mongodb/datapidfilepath=/data/mongodb/mongod.pidroot超级管理员权限:
关闭mongod.cnf配置文件参数:auth
直接登录mongo,设置登录密码:
mongo --host 127.0.0.1 --port 6068use admindb.createuser({user: \\\'root\\\', \\\'tdllqd689\\\', roles:[{role: \\\'root\\\', db: \\\'admin\\\'}]});db.auth(root,tdllqsdh689)关闭mongod
开启mongod.cnf配置文件参数:auth =true
mongo --host 127.0.0.1 --port 6068use admindb.auth(root,tdllqh689)创建测试库dbtest001,以及测试用户testuser 对dbtest001库有读写的权限
use dbtest001db.createuser({user:testuser,,roles:[{role:readwrite,db:dbtest001}]})创建测试用户testuser 对dbtest001库有读的权限:db.createuser({user:testuser01,,roles:[{role:read,db:dbtest001}]})给测试库插入一个集合chenji(所谓的表chenji):
db.chenji.insert({name:小花,年级:二年级,性别:男,爱好:学习})writeresult({ ninserted : 1 })> db.chenji.insert({name:花花,年级:一年级,性别:女,爱好:唱歌})writeresult({ ninserted : 1 })> db.chenji.insert({name:小花,年级:三年级,性别:女,爱好:打球})writeresult({ ninserted : 1 })> db.chenji.insert({name:小花,年级:四年级,性别:女,爱好:画画})writeresult({ ninserted : 1 })查看当前库下的用户:
db.getusers() 或者show users> show users{ _id : dbtest001.testuser, userid : uuid(f275fad5-ac4f-4dfa-aea6-af34ed93c3e1), user : testuser, db : dbtest001, roles : [ { role : readwrite, db : dbtest001 } ]}查看当前库下某个用户的权限:
db.getuser(testuser)db.getuser(testuser01)创建角色: db.createrole()
更新角色: db.updaterole()
删除角色: db.droprole()
获得某个角色信息: db.getrole()
> db.getrole(read){ role : read, db : dbtest001, isbuiltin : true, roles : [ ], inheritedroles : [ ]}> db.getrole(readwrite){ role : readwrite, db : dbtest001, isbuiltin : true, roles : [ ], inheritedroles : [ ]}删除所有用户: db.dropallusers()
删除用户:db.dropusers("xxxxxx")
db.dropuser("testuser01")
true
将一个角色赋予读写给用户: db.grantrolestouser()
use dbtest001db.grantrolestouser(\\\'testuser01\\\',[ { role : \\\'readwrite\\\', db : \\\'dbtest001\\\' } ] )撤销某个用户的某个角色权限: db.revokerolesfromuser()
> db.getuser(testuser01){ _id : dbtest001.testuser01, userid : uuid(d1fefe19-a94f-4300-8855-fd722f14e13f), user : testuser01, db : dbtest001, roles : [ { role : readwrite, db : dbtest001 } ]}撤回读role读写权限:
> db.revokerolesfromuser(\\\'testuser01\\\',[ { role : \\\'readwrite\\\', db : \\\'dbtest001\\\' }])> db.getuser(testuser01){ _id : dbtest001.testuser01, userid : uuid(d1fefe19-a94f-4300-8855-fd722f14e13f), user : testuser01, db : dbtest001, roles : [ ]}更改密码: db.changeuserpassword()
db.createuser({user:testuser01,,roles:[{role:read,db:dbtest001}]})修改密码:
> db.changeuserpassword(testuser01,123456)测试:使用原密码登录报错如下:
[root@localhost ~]# mongo 127.0.0.1:6068/dbtest001 -u testuser01 -p \\\'testuser123\\\'mongodb shell version v3.6.16connecting to: mongodb://127.0.0.1:6068/dbtest001?gssapiservicename=mongodb2020-01-01t21:51:35.637 0800 e query [thread1] error: authentication failed. :connect@src/mongo/shell/mongo.js:263:13@(connect):1:6exception: connect failed使用新的密码登录成功
[root@localhost ~]# mongo 127.0.0.1:6068/dbtest001 -u testuser01 -p \\\'123456\\\'mongodb shell version v3.6.16connecting to: mongodb://127.0.0.1:6068/dbtest001?gssapiservicename=mongodbimplicit session: session { id : uuid(966023f0-ff7b-4726-a216-8475bc729971) }mongodb server version: 3.6.16> show collections;chenji> db.chenji.find();{ _id : objectid(5e0c80a8efc383349153386a), name : 小花, 年级 : 二年级, 性别 : 男, 爱好 : 学习 }{ _id : objectid(5e0c80c3efc383349153386b), name : 花花, 年级 : 一年级, 性别 : 女, 爱好 : 唱歌 }{ _id : objectid(5e0c83c8efc383349153386c), name : 小花, 年级 : 三年级, 性别 : 女, 爱好 : 打球 }{ _id : objectid(5e0c83e9efc383349153386d), name : 小花, 年级 : 四年级, 性别 : 女, 爱好 : 画画 }查看当前库下的表:
show collections
chenji
查看集合中所有的内容:
> db.chenji.find();{ _id : object