MongoDB用户认证配置

服务器环境

  • Ubuntu Linux 16.04
  • Mongo server 3.2.13
  • Mongo shell 3.2.13

添加管理员账户

# 在本机终端下使用命令进入MongoDB Shell
# 默认数据端口绑定为:38028
root@meteors:~# mongo 127.0.0.1:38028

# 以下操作将会在mongo shell 中进行操作
# 切换到admin库
> use admin
switched to db admin

# 添加admin库的用户

> db.createUser({user:"root",pwd:"123456",roles:[{"role":"root","db":"admin"}]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

修改配置文件

关闭mongod

root@meteors:~# service mongod stop

修改/etc/mongod.config

root@meteors:~# vi /lib/systemd/system/mongod.service

# 修改以下内容
# ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf --auth

退出vi, 然后重新加载守护程序, 开启mongod服务

root@meteors:~# systemctl daemon-reload
root@meteors:~# service mongod start

测试

# 进入mongo, 并进入admin库
root@meteors:~# mongo 127.0.0.1:38028
MongoDB shell version: 3.2.13
connecting to: 127.0.0.1:38028/test
> use admin
switched to db admin

# 测试一条命令,查看当前mongo中所包含的库
> show dbs
2017-06-05T16:48:16.249+0800 E QUERY    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:761:19
shellHelper@src/mongo/shell/utils.js:651:15
@(shellhelp2):1:1
# 以上信息表明没有权限执行listDatabases操作

# 使用开始配置的用户名和密码进行认证
> db.auth("root","123456")
1 # 1表示认证通过, 0表示认证失败

# 在执行一下 show dbs 和show colletions,将正常展示
> show dbs
admin  0.000GB
local  0.000GB
> show collections
system.users
system.version

为其他库配置认证信息

# 为其他库配置认证信息的方法只需要先登录到admin库,并使用包含创建用户权限的账户认证后即可进行配置
# 以下语句是为test库配置认证信息
> db.createUser({user:"testadmin",pwd:"123456",roles:[{"role":"readWrite","db":"test"}]})
# 测试方法可以先退出mongo,然后在进入test库, 执行show collections语句即可验证配置是否成功 

附录

关于mongodb远程访问的设置

# 修改配置文件/etc/mongod.config
vi /etc/mongod.config
# 注释代码:`bindIp: 127.0.0.1`
# bindIp: 127.0.0.1

Ubuntu16.04安装mongodb

MongoDB的内置角色 Built-In Roles

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值