mongodb添加用戶
本教程介紹mongodb中添加用戶的一些操作
mongodb中的用戶是什麼
在mongodb中通過用戶來管理每個數據庫的權限,想要控制數據庫的使用權,就需要添加用戶,給指定的用戶分配權限,讓特定用戶來做特定的操作。
添加用戶有什麼用
細分權限,限制數據庫的訪問和使用,提高mongodb的安全性。
爲什麼要添加用戶
防止被人非法使用,做一些非法操作,導致一些嚴重後果。
比如刪庫跑路─=≡Σ(((つ•̀ω•́)つ
怎麼添加用戶
首先,在mongod啓動時是不會啓動校驗的
mongod
啓動mongod後,連接到mongod
root@e444205572bd:/# mongo
MongoDB shell version v4.1.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e3fd959c-db96-4853-a306-9edcc8c5baa7") }
MongoDB server version: 4.1.9
......
指定到admin數據庫下
> use admin
switched to db admin
通過指定的函數創建用戶
> db.createUser({user:"user", pwd:"123123", roles:["root"]})
Successfully added user: { "user" : "user", "roles" : [ "root" ] }
通過show查看該數據庫的用戶
> show users
{
"_id" : "admin.user",
"userId" : UUID("95e02aca-49c2-4852-b2bc-7dc4f2738175"),
"user" : "user",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
創建用戶成功
添加用戶之後如何連接mongodb
使用mongo連接
root@1410aa527d51:/# mongo -u user -p 123123
MongoDB shell version v4.1.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("8e9a9173-8263-40ea-b814-39090f0c90b7") }
MongoDB server version: 4.1.9
........
在mgo中進行連接
"mongodb://user:123123@localhost:27017"
info := &mgo.DialInfo{
Addrs:[]string{
"localhost:27017",
},
Direct:false,
Timeout:30 * time.Second,
Database: "user",
Source:"admin",
Username:"user",
Password:"123123",
}
session, err := mgo.DialWithInfo(info)
//session, err := mgo.Dial(url)
if err != nil {
logs.Error(err)
}
注:
通過docker部署的mongo,在啓動時添加參數MONGO_INITDB_ROOT_USERNAME
和MONGO_INITDB_ROOT_PASSWORD
是可以創建用戶的。但是如果之前的mongo並沒有創建用戶,並且你掛載了volume,把容器中的db數據映射到了宿主機,那你就要進入容器中手動創建用戶了。