1.設置用戶并驗證
初始設置可以參考這里 jiayi github mongodb
- 安裝MongoDB(我的mongodb版本為
V3.4.4
) - 設置開啟驗證
--auth
使用這個flag - 給計算機默認的自帶的
admin
設置一個帳號,相當于超級管理員 - 建立自定義數(shù)據庫跋破,設置用戶帳號饭宾,并設置相應的權限
如果要使用mongoose連接mongodb則需要給數(shù)據庫設置帳號密碼和權限搀愧,首先我們需要添加用戶
下面主要講一下具體的命令:
# 1.進入mongo環(huán)境
> mongo
# 2.切換到 'admin' 數(shù)據庫
> use admin
# 3.給admin設置用戶
# user: 用戶名
# pwd: 用戶密碼
# roles: 用來設置用戶的權限,比如讀隧膏,讀寫,寫等等
> db.createUser({user: 'root', pwd: '123456', roles: ['root']})
# 4.驗證該用戶 'db.auth(用戶名,用戶密碼)'
> db.auth('root', '123456')
# 如果返回 '1'表示驗證成功盯串, 如果是 '0' 表示驗證失敗
# 5.自定義數(shù)據庫,并添加用戶
# a.創(chuàng)建 'example' 數(shù)據庫
> use example
# b.創(chuàng)建用戶
> db.createUser({user: 'james', pwd: '123456', roles: [{role: 'readWrite'}]})
# c.驗證該用戶
> db.auth('james', '123456')
# 如果返回 '1'表示驗證成功戒良, 如果是 '0' 表示驗證失敗
主要使用到的方法:
db.createUser()
db.auth()
另外刪除用戶可以使用:
db.dropUser(用戶名)
給用戶設置具體的操作權限 roles
有 (這個的設置對數(shù)據的操作權限影響很大体捏,我暫時還不是很清楚,有待了解):
權限種類.jpg
注意
如果修改了用戶權限,則需要在用戶所在的數(shù)據庫再次認證才能生效:
# 比如將上面 'example' 數(shù)據庫下的用戶 'james' 的權限修改
{
"_id" : "example.james",
"user" : "james",
"db" : "example",
"roles" : [
{
"role" : "readWrite", // 讀寫
"db" : "example"
}
]
}
# 修改為只讀的
{
"_id" : "example.james",
"user" : "james",
"db" : "example",
"roles" : [
{
"role" : "read", // 只讀
"db" : "example"
}
]
}
# 再次認證
> mongo
> use example
> db.auth('james', '123456')
# 如果返回 '1'表示驗證成功几缭, 如果是 '0' 表示驗證失敗
使用Robomongo連接
- 創(chuàng)建
- 點擊驗證河泳,開啟驗證-> 輸入帳號和密碼(管理員用戶的帳號和密碼,比如上面的用戶名
root
, 明碼123456
) -> 點擊 'test',查看是否通過驗證
1.創(chuàng)建.jpg
2設置用戶登錄.jpg
使用mongose連接數(shù)據庫
一般node項目連接 mongodb都會選擇 mongose,下面是初步的連接教程
1.下載npm包
npm i -S express mongose
2.具體代碼:
// app.js
var express = require('express');
var app = express()
var mongose = require('mongose');
# mongodb 為協(xié)議
# james: 連接數(shù)據庫的用戶
# 123456: 該用戶的密碼
# localhost: 本地的地址(因為這是本地環(huán)境)
# 27017: mongodb的端口號(這個一般是默認值年栓,也可以進行修改)
# example: 數(shù)據庫的名字
var db = 'mongodb://james:123456@localhost:27017/example'
// 連接
mongose.connect(db);
var connection = mongose.connection;
connection.on('connected', function() {
console.log('Mongoose 連接到 example數(shù)據庫');
})
connection.once('open', function(callback){
console.log('數(shù)據庫啟動了');
// app.listen(8080, () => console.log('Express server listening on port 8080'));
})
使用 node app
運行js,成功連接則會輸出上面打印的信息拆挥。
總結
大致的連接過程就是這些,設置的時候時候某抓,如果查看教程請注意mongodb版本號纸兔。