3、分片集群開啟認(rèn)證

開啟授權(quán)認(rèn)證之后盈包,只有經(jīng)過授權(quán)的用戶才能夠連接到MongoDB沸呐,才允許訪問相關(guān)的資源,增加數(shù)據(jù)庫的安全性與穩(wěn)定性呢燥。

分片集群適合keyFile的形式開啟認(rèn)證崭添,而副本集適合開啟auth即可。

思路:為5個(gè)集群分片叛氨,shard1呼渣、shard2、shard3力试、shard4徙邻、shard5分別創(chuàng)建超級(jí)用戶(用來分別管理Mongo集群的分片),再為集群創(chuàng)建一個(gè)管理用戶畸裳,控制外部鏈接對(duì)集群進(jìn)程Mongos的訪問缰犁。?

1、為shard1創(chuàng)建分片管理超級(jí)用戶【shard2,shard3,shard4,shard5類似】

cd/usr/local/mongodb/bin

./mongo 127.0.0.145:22001

#查看副本集狀態(tài)

shard1:PRIMARY>rs.status()

shard1:PRIMARY>use admin

#添加超級(jí)用戶

shard1:PRIMARY>db.createUser(

? ? ? ? {

? ? ? ? ? ? ? ? ? user:"ybl_shard1",

? ? ? ? ? ? ? ? ? pwd:"ybl_shard1",

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

? ? ? ? }

shard1:PRIMARY> db.auth("ybl_shard1","ybl_shard1")

#這一步是為了驗(yàn)證角色是否創(chuàng)建成功怖糊,1-成功帅容,其他-失敗

#查看用戶

shard1:PRIMARY>show users

2、為基于副本集的分片集群創(chuàng)建超級(jí)管理用戶

cd/usr/local/mongodb/bin

./mongo 127.0.0.143:20000

mongos> use admin

switched to db admin

mongos>db.createUser(

{

user:"yuanbl",

pwd:"yuanbl",

roles:[{role:"root",db:"admin"}]

}

);

db.auth("yuanbl","yuanbl")

mongos> db.auth("yuanbl","yuanbl")

3伍伤、關(guān)閉集群進(jìn)程

可先關(guān)閉shard服務(wù)并徘,systemctl stop mongodb

4、創(chuàng)建keyFile文件

1扰魂、mkdir -p /opt/mongo/keyfile/

2麦乞、cd/opt/mongo/keyfile

3、openssl rand -base64 753>mongo-keyfile

4劝评、chmod 600 keyfile

注意點(diǎn):

3步驟中的數(shù)字不宜太大姐直,否則啟動(dòng)時(shí)會(huì)報(bào)錯(cuò)

【security

key in /opt/mongo/keyfile/keyfile has length 1368, must be between 6 and 1024

chars】

4步驟一定得執(zhí)行,要不然報(bào)錯(cuò)

【permissions on /opt/mongo/keyfile/mongo-keyfile are too open】

5蒋畜、將文件keyFile存儲(chǔ)在在所有的節(jié)點(diǎn)指定位置

mkdir –p /usr/local/mongodb/key

mongo-keyfile存放在此目錄下

6声畏、使用keyFile參數(shù)指定keyfile啟動(dòng)分片shard1、shard2姻成、shard3插龄、shard4、shard5

修改所有shard啟動(dòng)配置文件科展,增加keyFile =/usr/local/mongodb/key/mongo-keyfile

然后啟動(dòng)Systemctl start mongodb

7均牢、shard1、shard2才睹、shard3膨处、shard1见秤、shard1砂竖、服務(wù)器端基于keyfile的用戶口令認(rèn)證測(cè)試

./mongo admin --port 22001 -uybl_shard1 -p ybl_shard1

./mongo 127.0.0.145:22001

use admin

db.auth(“ybl_shard1”,”ybl_shard1”)

其他類似

如果認(rèn)證不成功就會(huì)報(bào)錯(cuò)

2017-03-12T17:40:16.236+0800 EQUERY[thread1] Error: listDatabasesfailed:{

? ? ? ? ?"ok" : 0,

? ? ? ? ?"errmsg" : "notauthorized 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:761:19

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

@(shellhelp2):1:1

到此分片開啟成功

8真椿、config server按照如上步驟處理

1、先關(guān)閉config server:systemctl stop mongodb 或 kill -2 pid

2乎澄、將moongo-keyfile放入目錄下/usr/local/mongodb/key,設(shè)置權(quán)限chmod 600 mongo-keyfile

3突硝、修改config server啟動(dòng)配置文件,加入keyFile = /usr/local/mongodb/key/mongo-keyfile置济,保存

4解恰、啟動(dòng)config server:

systemctl start mongodb

9、mongos按照如上步驟處理

1浙于、先關(guān)閉mongos:systemctl stop mongos或kill -2 pid

2护盈、將moongo-keyfile放入目錄下/usr/local/mongodb/key/,設(shè)置權(quán)限chmod600 mongo-keyfile

3、修改mongos啟動(dòng)配置文件羞酗,加入keyFile =/usr/local/mongodb/key/mongo-keyfile腐宋,保存

4、啟動(dòng)mongos:

systemctlstart mongos

10檀轨、測(cè)試分片集群基于keyfile的用戶口令認(rèn)證

cd/usr/local/mongodb/bin/

./mongo127.0.0.143:20000

showdbs

2017-03-12T18:04:28.845+0800E QUERY[thread1] Error: listDatabasesfailed:{

? ? ? ? ?"ok" : 0,

? ? ? ? ?"errmsg" : "notauthorized 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:761:19

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

@(shellhelp2):1:1

useadmin

db.auth("yuanbl","yuanbl")

1 ?#說明認(rèn)證成功

#登陸時(shí)指定

./mongoadmin --port 20000 -u yuanbl -p yuanbl

./mongo 127.0.0.143:20000

Use admin

db.auth("yuanbl","yuanbl")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末胸竞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子参萄,更是在濱河造成了極大的恐慌卫枝,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讹挎,死亡現(xiàn)場(chǎng)離奇詭異校赤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)筒溃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門马篮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铡羡,你說我怎么就攤上這事积蔚。” “怎么了烦周?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵尽爆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我读慎,道長(zhǎng)漱贱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任夭委,我火速辦了婚禮幅狮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己崇摄,他們只是感情好擎值,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逐抑,像睡著了一般鸠儿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厕氨,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天进每,我揣著相機(jī)與錄音,去河邊找鬼命斧。 笑死田晚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的国葬。 我是一名探鬼主播贤徒,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼胃惜!你這毒婦竟也來了泞莉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤船殉,失蹤者是張志新(化名)和其女友劉穎鲫趁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體利虫,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挨厚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糠惫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疫剃。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖硼讽,靈堂內(nèi)的尸體忽然破棺而出巢价,到底是詐尸還是另有隱情,我是刑警寧澤固阁,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布壤躲,位于F島的核電站,受9級(jí)特大地震影響备燃,放射性物質(zhì)發(fā)生泄漏碉克。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一并齐、第九天 我趴在偏房一處隱蔽的房頂上張望漏麦。 院中可真熱鬧客税,春花似錦撕贞、人聲如沸更耻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至脊奋,卻和暖如春诚隙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背地消。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留畏妖,地道東北人戒劫。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓半夷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親迅细。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巫橄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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