mongoDB之建立使用者與認證模式啟動
阿新 • • 發佈:2018-12-25
mongoDB建立使用者
不管是mongoDB還是MySQL,我們往往都需要建立使用者來保證安全性,在這裡對這方面內容做一個簡單的總結~
建立使用者
建立使用者有幫助增加資料庫安全的作用,在mongoDB中需要下列步驟
- 建立管理員
- 授權認證
- 給使用的資料庫新增使用者
在shell中執行以下操作
sudo service mongod start # 啟動mongod
mongo # 以非授權的方式啟動
這時我們可以訪問到任意一個不需要認證的資料庫(比如我們用一個視覺化客戶端開啟)
如果使用授權方式啟動mongoDB,而我們不去登入的話我們也是無法使用的,所以我們要先建立一個管理員賬號
建立管理員賬號
首先非授權方式啟動我們的mongoDB
> use admin # 建立admin資料庫
> db.createUser({user:"admin",pwd:"admin",roles:["root"]}) # 建立一個使用者名稱為admin,密碼為admin,身份為管理員的User
> db.auth("admin","admin") # 進行認證
1 # 顯示1,認證成功
這樣,我們的資料庫就有了自己的管理員
下面我們為建立一個有使用者的db
> use demo1 # 切換資料庫
switched to db demo1
# 建立一個使用者名稱為demo1user,密碼為demo1,身份為資料庫使用者,擁有demo1的User
> db.createUser({user:"demo1user",pwd:"demo1",roles:[{role:"dbOwner",db:"demo1"}]})
Successfully added user: {
"user" : "demo1user",
"roles" : [
{
"role" : "dbOwner",
"db" : "demo1"
}
]
}
手動以認證模式啟動
經過我的嘗試,我發現以認證方式啟動mongd的方式有很多,我選擇一種我比較喜歡的列在下面:
在安裝mongoDB之後,如果是使用和我一樣的方式安裝的,那麼將會自動生成一個配置檔案,位於/etc/mongod.conf
,我們也可以用這樣的方式啟動mongod
去
sudo mongod -f /etc/mongod.conf --auth # 認證模式啟動
sudo mongod -f /etc/mongod.conf # 非認證模式啟動
預設通過認證模式啟動
一切脫離版本的配置都是耍流氓
如果不想每次都帶上--auth
引數的haunted,我們可以在配置檔案中修改,也就是對/etc/mongod.conf
進行修改,我們以官網文件為準https://docs.mongodb.com/manual/reference/configuration-options/
關於使用者認證方面的配置,點選上面的security
仔細閱讀一下
下面貼上我的配置檔案片段(最後兩行就是預設以使用者認證方式啟動)
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: enabled
如此一來,不管是sudo mongod -f /etc/mongod.conf
還是sudo service mongod start
都是以認證模式啟動的了。