【整理】CentOS 6.5 mongodb 3.2增加权限配置

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】CentOS 6.5 mongodb 3.2增加权限配置

如何安装在CentOS 6.5中安装Mongodb,请参考:[原创]CentOS 6.5编译C++_MongoDB驱动

安装完成mongodb之后,默认是没有带权限的,为了安全起见,我们增加一个权限。

首先关闭mongodb服务:

#关闭mongodb服务
service mongod stop

然后编辑/etc/mongod.conf文件,增加如下,其实也就是打开权限认证:

security:
  authorization: "enabled"

如下图所示:

mongodb_config

然后保存退出,重启mongodb服务:

#启动mongodb服务
service mongod start

这样一来,我们的mongodb便运行在带权限认证环境中。

在终端中执行如下命令:

[root@localhost ~]# mongo
MongoDB shell version: 3.2.8
connecting to: test
> show dbs
2017-05-31T22:36:24.536+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

>

这个时候,我们便发现show dbs命令无法被正确的执行,因为没有权限去执行。

下面我们在mongo shell中增加一个用户:

首先使用admin数据库,一定是这个名字,官方以这个数据库为管理账户数据库,不可更名。

use admin

然后我们创建一个user,通过如下命令:

db.createUser({ user: "admin" , pwd: "admin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase", "clusterAdmin", "clusterMonitor"]});

这样一来,我们就创建了一个用户名为admin,密码为admin的用户,其中admin的权限是:

"userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase", "clusterAdmin", "clusterMonitor"

参考:

这些相关的权限,基本如下:

dbAdmin 在db范围内包括下面的权限:

  • collStats
  • dbHash
  • dbStats
  • find
  • killCursors
  • listIndexes
  • listCollections
  • dropCollection 和 createCollection on system.profile only

userAdmin在db范围内包括如下权限:

  • changeCustomData
  • changePassword
  • createRole
  • createUser
  • dropRole
  • dropUser
  • grantRole
  • revokeRole
  • viewRole
  • viewUser

readAnyDatabase  对所有数据库中的collection可读,同时包含listDatabases权限

readWriteAnyDatabase  对所有数据库中的collection可读且可写,同时包含listDatabases权限

userAdminAnyDatabase 对所有数据库拥有userAdmin角色,同时包含listDatabases权限

dbAdminAnyDatabase 对所有数据库拥有dbAdmin角色,同时包含listDatabases权限

cluster相关的权限  clusterMonitor、hostManager、clusterManager、clusterAdmin

这个地方可以参考官方文档:https://docs.mongodb.com/manual/reference/built-in-roles/#all-database-roles

创建完成User之后,我们来进行一下认证,通过如下命令,首先要切换到admin集合

use admin
db.auth("admin", "admin");

这样一来,我们再执行show dbs命令,便可以正确看到返回结果了。

当然我们还可以创建更多的用户,具体请参考官方文档:https://docs.mongodb.com/manual/reference/method/db.createUser/#db-createuser

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】CentOS 6.5 mongodb 3.2增加权限配置

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: