MongoDB ( 五 )高级_管理:用户的创建、删除与修改

安装好MongoDB时,它为我们默认开了一个最高管理权限方便我们管理数据库,我们可以用mongo链接数据库,就是这个原理。但在实际开发中并一般不能使用这个用户,因为大家都知道和最高权限的原因,安全性和可靠性都不适合,所以要对MongoDB的用户进行管理。这节课我们就学习一下MongoDB的用户管理。

创建用户

> db.createUser({
    user:"zjj",
    pwd:"123456",
    customData:{
        name:'zjj',
        email:'111111@126.com',
        age:18,
    },
    roles:[
        {
            role:"readWrite",
            db:"company"
        },
        'read'
        // 对其他数据库有只读权限,对company是读写权限
    ]
})

内置角色:

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

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

查找用户信息

> db.system.users.find()
// 删除用户
db.system.users.remove({user:"jspang"})

建权

// 
> db.auth("jspang","123456")
1
>如果正确返回1,如果错误返回0。(Error:Authentication failed。)

登陆

//
mongo -u jspang -p 123456 127.0.0.1:27017/admin 

看了上面的知识点,我们来亲自动手操作一下吧

test1

// 我们开始是使用下面的语句来进行开机的
$ mongod --dbpath d:\mongodbdata
// 另一个cmd中连接数据库
$ mongo
>
// 假设我们已经有了company数据库了
> use admin
> db.createUser({
    user:"zjj",
    pwd:"123456",
    customData:{
        name:'zjj',
        email:'111111@126.com',
        age:18,
    },
    roles:[
        {
            role:"readWrite",
            db:"company"
        },
        'read'
    ]
})


> db.system.users.find()


// 用户创建完毕之后,关闭一下数据库
> db.shupdownServer();

// 这次我们以权限的方式开机

> mongod --dbpath d:\mongodbdata --auth

> mongo
> use admin
> db.auth("zjj":"123456");
> 1

// 然后ctrl +c 重新连接一次
> mongo -u zjj -p 123456 127.0.0.1:27017/company
> 

// 没毛病
    原文作者:Meils
    原文地址: https://segmentfault.com/a/1190000014223487
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞