Mongodb 3.2.X 添加admin的root账户

一、给admin库添加root权限

如果这样设置,登陆成功以后可以对所有库进行操作

## 1、 首先免密方式开启数据库
$ ./mongod --dbpath /data/db

## 2、使用admin数据库
> use admin
switch admin

##3、为admin库添加 root账户
>db.createUser({
  'user' : 'adminName',
  'pwd' : 'yourPassword',
  'roles':[
    {role:'root',db:'admin'}    
    #此为admin这个表的根用户,登录以后方可对所有库进行操作
    ]
})

##4、然后退出当前数据库,杀掉进程,并以  --auth 重启

×××××××××××××××××××××××××××××××××
#  列出mongod 进程
$ ps -e | grep mongod  
# 杀掉进程
$ sudo kill  进程ID      

# 或者直接:
$ ./mongod --shutdown --dbpath /data/db

××××××××××××××××××××××××××××××××

## 5、 有密开启数据库
$ ./mongod --dbpath /data/db --auth --port 27001

## 6、此时没有使用账号密码也能登录,但是无法进行相关操作
>show dbs

##2017-01-10T10:55:46.227+0800 E QUERY    [main] Error: listCollections failed: {
##  "ok" : 0,
##  "errmsg" : "not authorized on admin to execute command { ##listCollections: 1.0, filter: {} }",
##  "code" : 13,
##  "codeName" : "Unauthorized"
##} :

## 7、登陆admin库的root账户:
> use admin
-- switch admin
> db.auth('adminName','yourPassword')
--    1         #此时已成功登录admin 的root账户,可以进行所有库的操作
> show dbs
admin
local
>show collections
system.users
system.version
>db.system.users.find().pretty()

##  可显示 查询到的数据
{
    "_id" : "admin.adminName",
    "user" : "adminName",
    "db" : "admin",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "CG52h/827OSDhRTQ2MkMwQ==",
            "storedKey" : "/RrlhidF03ei2r2kyS3QCppe67c=",
            "serverKey" : "Psnhd9GatLu4rc6Q7Kp+/Z8n+og="
        }
    },
//下面这个就是你刚添加的
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

二、给 某一个库添加 dbOwner 权限

1、同样免密开启数据库服务
2、链接到某一个库
> use cc_cs
switched to db cczyy_cs

3、为该库设置账户
> db.createUser({
    'user':'zhangsan',    //链接数据库的账户名
    'pwd':'lisi',                //密码
    'roles':[
            {
                role:'dbOwner',
                db:'cc_cs'
              }
      ]
})
Successfully added user: {
    "user" : "zhangsan",
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "cc_cs"
        }
    ]
}

4、连接到 admin库,查看你刚才创建的cc_cs库的账户
> use admin
switched to db admin
> db.system.users.find().pretty()
{
//  _id字段:cc_cs 是当前用户所属的数据库的名称;
//  zhangsan  是你设置的账户名  
    "_id" : "cc_cs.zhangsan",
    "user" : "zhangsan",
    "db" : "cc_cs",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "dGurhbdFOAtEvjvf+IrWOg==",
            "storedKey" : "4tU/9+R6sQSL+4QvhmykRAUwioQ=",
            "serverKey" : "MmHTwuP2lnkO8LpFFEArrFE7VFY="
        }
    },
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "cc_cs"
        }
    ]
}

5、关闭mongo并有密启动
6、链接数据库以后
$ ./mongo
 connecting to: test
> use cc_cs
switch cc_cs
> db.auth('zhangsan','lisi')
1        //验证成功
>show collections
user
students

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,094评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • 一、MongoDB安装及配置 1.1、下载安装程序 MongoDB提供了linux平台上32位和64位的安装包,你...
    misszero阅读 5,002评论 1 2
  • 《关键20小时,快速学会任何技能》 1、要选择目标、做足准备 选定一个最重要的目标(当前最重要最需要的)之后,给自...
    南宫伊儿nn阅读 1,603评论 6 0
  • 最近胖死。馋死。懒死。暴躁死。 办个健身卡,去三次,搁置。 买一堆健身器材,闲置。 早上看看镜子里的自己,看看体重...
    爱吃鱼的豆妈阅读 3,247评论 0 0

友情链接更多精彩内容