美文网首页
MongoDB 设置用户名密码和数据库连接

MongoDB 设置用户名密码和数据库连接

作者: 中v中 | 来源:发表于2020-11-08 08:18 被阅读0次

    mac 安装完mongodb4.2之后默认是不需要用户就直接可一登录的。
    修改完需要登录用户的
    修改 MongoDB 配置文件, 配置文件默认在 /usr/local/etc 下的 mongod.conf

    systemLog:
       destination: file
       path: /usr/local/var/log/mongodb/mongo.log
       logAppend: true
     storage:
       dbPath: /usr/local/var/mongodb
     net:
       #127.0.0.1默认只能本机链接
       bindIp: 127.0.0.1
     
     #配置文件开启强制验证
     security:
       authorization: "enabled"
    

    之后可以使用 brew services restart mongodb-community@4.2 重启
    或者使用mongd 启动(可以强制带上 auth参数) 如
    mongod --config c:\mongodb\mongod.cfg --dbpath c:\mongodb\data\db\ --auth


    通过命令设置超级管理员
    设置 admin

    use admin  
    db.createUser({
      user: 'admin',  // 用户名
      pwd: '123456',  // 密码
      roles:[{
        role: 'root',  // 角色
        db: 'admin'  // 数据库
      }]
    })
    

    设置完成,可以输入 show users 查看是否设置成功。
    开启验证

    命令行 输入 mongo

    MacBook-Pro:~ wuzz$ mongo
    MongoDB shell version v4.2.9
    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("ffee4847-fd10-4523-ae06-f4a8330db2dd") }
    MongoDB server version: 4.2.9
    >
    

    显示连接成功,但是当我们输入其他指令时,会提示没有权限:(我这里没有记录显示)

    > show dbs
    >
    

    登录数据库

    // 方式一
    mongo
    use admin
    db.auth('admin', '123456')
    
    // 方式二
    mongo admin -u admin -p 123456
    

    这时候我们就可以正常访问和操作数据了。

    > show dbs
    > use admin
    switched to db admin
    > db.auth('admin','123456')
    1
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    test    0.000GB
    >
    

    添加数据库用户

    我们除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。

    [ 复制代码

    ](javascript:void(0); "复制代码")

    <pre>use test // 跳转到需要添加用户的数据库
    db.createUser({
    user: 'fooadmin', // 用户名
    pwd: '123456', // 密码
    roles:[{
    role: 'readWrite', // 角色
    db: 'test' // 数据库名
    }]
    })</pre>

    [ 复制代码

    ](javascript:void(0); "复制代码")

    常用命令

    [ 复制代码

    ](javascript:void(0); "复制代码")

    <pre>show users // 查看当前库下的用户
    db.dropUser('testadmin') // 删除用户
    db.updateUser('admin', {pwd: '654321'}) // 修改用户密码
    db.auth('admin', '654321') // 密码认证</pre>

    [ 复制代码

    ](javascript:void(0); "复制代码")

    MongoDB 数据库默认角色

    1. 数据库用户角色:read、readWrite
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
    4. 备份恢复角色:backup、restore
    5. 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
      dbAdminAnyDatabase
    6. 超级用户角色:root

    相关文章

      网友评论

          本文标题:MongoDB 设置用户名密码和数据库连接

          本文链接:https://www.haomeiwen.com/subject/sqmfbktx.html