由于騰訊云的活動飞苇,我買下了騰訊云的服務器,本以為和阿里云無差別,于是就直接把所有文件搬到了騰訊云里面布卡。
然而……沒過兩天雨让,我居然被刪庫了!
麻蛋.png
一查才知道羽利,是因為我的mongodb沒有密碼宫患,任何人都能直接訪問并修改我的數(shù)據(jù)庫,就這樣被刪庫了……之前寫的文章啊这弧。娃闲。
為mongodb添加密碼
mogodb安裝后并沒有要求創(chuàng)建用戶名密碼,雖然這樣方便上手匾浪,但其實并不安全皇帮,所以我們需要自己創(chuàng)建用戶名。
-
首先要打開mongod(若未)
image.png -
然后再打開mongo進入mongodb環(huán)境
image.png 進入到admin數(shù)據(jù)庫蛋辈,輸入
use admin
-
創(chuàng)建超級用戶属拾,輸入下列指令(user,pwd可以自定義)
db.createUser({user: 'root', pwd: '123456', roles: ['root']})
就會提醒你創(chuàng)建成功了
image.png 然后退出(ctrl + c)剛剛的mongod和mongo。由于我的數(shù)據(jù)庫存放位置在
c:\data\db
冷溶,所以我通過以下指令來打開訪問控制
mongod --dbpath c:\data\db --auth
同時也要重新打開mongo在mongo里使用admin渐白,
use admin
,然后show collections
就會突然報錯逞频,如果沒有之前的--auth
啟動的話纯衍,并沒有問題,所以這時候要輸入剛剛創(chuàng)建的用戶,db.auth('root','123456')
,如果返回1苗胀,則表示可以訪問admin
這個數(shù)據(jù)庫了襟诸。但并沒有結束。我們還需要給其他庫賦予權限基协。與
admin
一樣歌亲,假如要添加blog
一個賬戶,則可以進入blog澜驮,use blog
陷揪,
輸入以下指令,
db.createUser({
user:'blog',
pwd:'123456',
roles:[
{
role:'readWrite',
db:'blog'
}
]
})
這里為blog
添加了一個用戶,權限是readWrite
≡忧睿現(xiàn)在就完成了blog
庫的權限管理鹅龄。
關于node.js的mongoose庫的用法
之前的連接數(shù)據(jù)庫就是采用以下方式
mongoose.connect(
"mongodb://localhost:27017/blog",
err => {
if (err) console.log(err);
console.log("connected");
}
);
如果像上面一樣添加了權限的話,就需要改變以下了亭畜,設用戶名密碼是(root,123456)
mongoose.connect(
[+] "mongodb://root:123456@localhost:27017/blog",
err => {
if (err) console.log(err);
console.log("connected");
}
);
注:生產(chǎn)環(huán)境使用
mongodb://localhost:27017/blog
,而實際環(huán)境需要改為mongodb://0.0.0.0:27017/blog