MongoDB權(quán)限訪問控制

centos7下安裝3.2.6版本的MongoDB參考此篇文章

上述過程安裝下的mongodb银室,在命令窗口中默認(rèn)是超級用戶器罐,什么權(quán)限都有膨俐,這顯然不是我們需要的。

在3.0版本以后是不存在admin數(shù)據(jù)庫的佛呻,所以新建一個admin數(shù)據(jù)庫,并添加一個角色

use admin

db.createUser(

? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ?user: "admin",

? ? ? ? ? ? ? ? ? ? ?customData:{description:"superuser"}, ?--描述病线,非必需

? ? ? ? ? ? ? ? ? ? ?pwd: "admin",

? ? ? ? ? ? ? ? ? ? ?roles: [{role:"userAdminAnyDatabase",db:"admin"}]

? ? ? ? ? ? ? ? ? ? ?--注意這兩個參數(shù)吓著,稍后再解釋

? ? ? ? ? }

)

可以通過指令查看添加的用戶:

show users


db.system.users.find()

備注:可以使用操作系統(tǒng)的 kill 命令,給 mongod 進(jìn)程發(fā)送 SIGINT 或 SIGTERM 信號送挑,即 "kill -2 PID," 或者 “kill -15 PID“绑莺。建議不要使用 ”kill -9 pid“,因?yàn)槿绻?MongoDB 運(yùn)行在沒開啟日志(--journal)的情況下惕耕,可能會造成數(shù)據(jù)損失紊撕。

怎么關(guān)閉?mongoDB?

1赡突、關(guān)閉 MongoDB 服務(wù) ?use admin ? ?db.shutdownServer()

2对扶、kill ?-2 ? ?pid

3、kill ?-15 ?pid

關(guān)閉mongoDB之后

修改配置文件/usr/local/mongodb/bin/mongodb.conf惭缰,增加一行auth = true浪南,在重新啟動服務(wù)

啟動服務(wù)時增加參數(shù) --auth

/usr/local/mongodb/bin/mongod ?--auth ?--f /usr/local/mongodb/bin/mongodb.conf

再次進(jìn)入mongodb 的 shell,此時你操作mongodb比如show dbs 報錯如下

show dbs

2017-02-08T00:18:30.680+0800 E QUERY? ? [thread1] Error: listDatabases failed:{

"ok" : 0,

"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",

"code" : 13

} :

_getErrorWithCode@src/mongo/shell/utils.js:25:13

Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1

shellHelper.show@src/mongo/shell/utils.js:760:19

shellHelper@src/mongo/shell/utils.js:650:15

@(shellhelp2):1:1

正確操作

use admin

db.auth("admin","admin")?#認(rèn)證漱受,返回1表示成功

/usr/local/mongodb/bin/mongo -u admin -p admin --authenticationDatabase admin

備注:admin(authenticationDatabase) 只有用戶管理的權(quán)限,沒有其他權(quán)限络凿,下面創(chuàng)建用戶,用戶綁定數(shù)據(jù)庫昂羡,即在那個數(shù)據(jù)庫下創(chuàng)建的用戶就要在那個數(shù)據(jù)庫下認(rèn)證

use demo

db.createUser(

? ? ? ?{

? ? ? ? ? ? ? user:"ybl",

? ? ? ? ? ? ? customData:{description:"test user_1"},

? ? ? ? ? ? ? pwd:"926055",

? ? ? ? ? ? ? roles:[{"role":"readWrite","db":"demo"}]

? ? ? ?}

)

db.createUser(

? ? ? {

? ? ? ? ? ? ? user:"hqw",

? ? ? ? ? ? ? customData:{description:"test user_2"},

? ? ? ? ? ? ? pwd:"940331",

? ? ? ? ? ? ? roles:[{"role":"read","db":"demo"}]

? ? ? }

)

可自行驗(yàn)證

use? admin? ? db.auth("admin","admin") ? ?- - 用戶管理

use? demo ? ? db.auth("ybl","926055") ? ? ? - - 讀寫

use ?demo ? ? db.auth("hqw","940331") ? ? - - 只讀

名詞解釋:

Read:允許用戶讀取指定數(shù)據(jù)庫

readWrite:允許用戶讀寫指定數(shù)據(jù)庫

dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù)絮记,如索引創(chuàng)建、刪除虐先,查看統(tǒng)計或訪問system.profile

userAdmin:允許用戶向system.users集合寫入怨愤,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶

clusterAdmin:只在admin數(shù)據(jù)庫中可用蛹批,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限撰洗。

readAnyDatabase:只在admin數(shù)據(jù)庫中可用篮愉,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限

readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限

userAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用差导,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限

dbAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用试躏,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限。

root:只在admin數(shù)據(jù)庫中可用设褐。超級賬號颠蕴,超級權(quán)限

roles:指定用戶的角色,可以用一個空數(shù)組給新用戶設(shè)定空角色助析;在roles字段,可以指定內(nèi)置角色和用戶定義的角色犀被。role里的角色可以選:

Built-In Roles(內(nèi)置角色):

1. 數(shù)據(jù)庫用戶角色:read、readWrite;

2. 數(shù)據(jù)庫管理角色:dbAdmin貌笨、dbOwner弱判、userAdmin;

3. 集群管理角色:clusterAdmin锥惋、clusterManager昌腰、clusterMonitor、hostManager膀跌;

4. 備份恢復(fù)角色:backup遭商、restore;

5. 所有數(shù)據(jù)庫角色:readAnyDatabase捅伤、readWriteAnyDatabase劫流、userAdminAnyDatabase、dbAdminAnyDatabase

6. 超級用戶角色:root

// 這里還有幾個角色間接或直接提供了系統(tǒng)超級用戶的訪問(dbOwner 丛忆、userAdmin祠汇、userAdminAnyDatabase)

7. 內(nèi)部角色:__system

更多信息比如

修改密碼、修改密碼和用戶信息等

可參考 http://www.cnblogs.com/wingjay/p/3954430.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熄诡,一起剝皮案震驚了整個濱河市可很,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凰浮,老刑警劉巖我抠,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異袜茧,居然都是意外死亡菜拓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門笛厦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纳鼎,“玉大人,你說我怎么就攤上這事递递∨绯龋” “怎么了啥么?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵登舞,是天一觀的道長贰逾。 經(jīng)常有香客問我,道長菠秒,這世上最難降的妖魔是什么疙剑? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮践叠,結(jié)果婚禮上言缤,老公的妹妹穿的比我還像新娘。我一直安慰自己禁灼,他們只是感情好管挟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弄捕,像睡著了一般僻孝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上守谓,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天穿铆,我揣著相機(jī)與錄音,去河邊找鬼斋荞。 笑死荞雏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的平酿。 我是一名探鬼主播凤优,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜈彼!你這毒婦竟也來了筑辨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤柳刮,失蹤者是張志新(化名)和其女友劉穎挖垛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秉颗,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痢毒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚕甥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哪替。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖菇怀,靈堂內(nèi)的尸體忽然破棺而出凭舶,到底是詐尸還是另有隱情晌块,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布帅霜,位于F島的核電站匆背,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏身冀。R本人自食惡果不足惜钝尸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搂根。 院中可真熱鬧珍促,春花似錦、人聲如沸剩愧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仁卷。三九已至穴翩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間五督,已是汗流浹背藏否。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留充包,地道東北人副签。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像基矮,于是被迫代替她去往敵國和親淆储。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容