系統(tǒng)運(yùn)維
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超級(jí)管理員權(quán)限:
關(guān)閉mongod.cnf配置文件參數(shù):auth
直接登錄mongo,設(shè)置登錄密碼:
mongo --host 127.0.0.1 --port 6068use admindb.createuser({user: \\\'root\\\', \\\'tdllqd689\\\', roles:[{role: \\\'root\\\', db: \\\'admin\\\'}]});db.auth(root,tdllqsdh689)關(guān)閉mongod
開啟mongod.cnf配置文件參數(shù):auth =true
mongo --host 127.0.0.1 --port 6068use admindb.auth(root,tdllqh689)創(chuàng)建測(cè)試庫(kù)dbtest001,以及測(cè)試用戶testuser 對(duì)dbtest001庫(kù)有讀寫的權(quán)限
use dbtest001db.createuser({user:testuser,,roles:[{role:readwrite,db:dbtest001}]})創(chuàng)建測(cè)試用戶testuser 對(duì)dbtest001庫(kù)有讀的權(quán)限:db.createuser({user:testuser01,,roles:[{role:read,db:dbtest001}]})給測(cè)試庫(kù)插入一個(gè)集合chenji(所謂的表chenji):
db.chenji.insert({name:小花,年級(jí):二年級(jí),性別:男,愛好:學(xué)習(xí)})writeresult({ ninserted : 1 })> db.chenji.insert({name:花花,年級(jí):一年級(jí),性別:女,愛好:唱歌})writeresult({ ninserted : 1 })> db.chenji.insert({name:小花,年級(jí):三年級(jí),性別:女,愛好:打球})writeresult({ ninserted : 1 })> db.chenji.insert({name:小花,年級(jí):四年級(jí),性別:女,愛好:畫畫})writeresult({ ninserted : 1 })查看當(dāng)前庫(kù)下的用戶:
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 } ]}查看當(dāng)前庫(kù)下某個(gè)用戶的權(quán)限:
db.getuser(testuser)db.getuser(testuser01)創(chuàng)建角色: db.createrole()
更新角色: db.updaterole()
刪除角色: db.droprole()
獲得某個(gè)角色信息: 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
將一個(gè)角色賦予讀寫給用戶: db.grantrolestouser()
use dbtest001db.grantrolestouser(\\\'testuser01\\\',[ { role : \\\'readwrite\\\', db : \\\'dbtest001\\\' } ] )撤銷某個(gè)用戶的某個(gè)角色權(quán)限: 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讀寫權(quán)限:
> 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)測(cè)試:使用原密碼登錄報(bào)錯(cuò)如下:
[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 : 小花, 年級(jí) : 二年級(jí), 性別 : 男, 愛好 : 學(xué)習(xí) }{ _id : objectid(5e0c80c3efc383349153386b), name : 花花, 年級(jí) : 一年級(jí), 性別 : 女, 愛好 : 唱歌 }{ _id : objectid(5e0c83c8efc383349153386c), name : 小花, 年級(jí) : 三年級(jí), 性別 : 女, 愛好 : 打球 }{ _id : objectid(5e0c83e9efc383349153386d), name : 小花, 年級(jí) : 四年級(jí), 性別 : 女, 愛好 : 畫畫 }查看當(dāng)前庫(kù)下的表:
show collections
chenji
查看集合中所有的內(nèi)容:
> db.chenji.find();{ _id : object