38

mongodb中的添加用户操作

 5 years ago
source link: https://studygolang.com/articles/19537?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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_USERNAMEMONGO_INITDB_ROOT_PASSWORD 是可以创建用户的。但是如果之前的mongo并没有创建用户,并且你挂载了volume,把容器中的db数据映射到了宿主机,那你就要进入容器中手动创建用户了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK