1. 程式人生 > >mongoDB之建立使用者與認證模式啟動

mongoDB之建立使用者與認證模式啟動

mongoDB建立使用者

不管是mongoDB還是MySQL,我們往往都需要建立使用者來保證安全性,在這裡對這方面內容做一個簡單的總結~

建立使用者

建立使用者有幫助增加資料庫安全的作用,在mongoDB中需要下列步驟

  1. 建立管理員
  2. 授權認證
  3. 給使用的資料庫新增使用者

在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都是以認證模式啟動的了。