@IT·互联网程序员无戒学堂:365天极限挑战日更营

MongoDB权限设置

2017-04-15  本文已影响1507人  杨梅泡酒

本文阅读对象:

MongoDB是一个基于分布式文件存储的数据库,为目前主流的NoSQL数据库,已被应用到许多高性能的大型系统中。如果之前从未接触MongoDB,可以访问MongoDB官网快速了解其主要特性及应用场景,如果英文水平确实有限,可以阅读MongoDB百度百科进行了解,不过个人建议直接看英文资料,因为你迟早要去啃英文的技术资料。

MongoDB的安装

此文示例的环境基于CentOS 7.3 64位,MongoDB版本为3.2.4。

  1. 在服务器上,以超级用户权限执行yum安装,命令如下:
    <code>
    [username@xxx]# su [username] -- username 为你登陆服务器的用户名
    [username@xxx]# yum -y install mongodb-server mongodb
    </code>
    如果安装成功,你会得到如下类似的结果:
    <code>
    Installed:
    mongodb-server.x86_64 0:2.6.12-4.el7
    Complete!
    </code>

MongoDB权限设置

  1. 创建一个root用户,并赋予超级管理员权限(root),超级管理员可以管理MongoDB下的所有库以及权限、备份及集群等操作。 注意在下文代码块区域内,粗体部分为MongoDB shell的命令,斜体部分为执行shell命令之后的结果。
    <code>
    use admin
    switched to db admin
    db.createUser({user:"root", pwd: "123456", roles: ["root"]})
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
    </code>

开启验证,重启MongoDB服务。

  1. 修改配置文件/usr/local/mongodb/mongodb.conf,添加以下内容,然后保存。
    <code>
    auth=true
    </code>

验证权限设置成功

  1. 尝试匿名连接biz数据库,连接之后,执行命令<code>show collections</code>,将会提示验证失败信息<code>not authorized for query on biz.system.namespaces</code>。相应命令如下:
    <code>
    [username@xxx]# /usr/bin/mongo 127.0.0.1:27017/biz
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/biz
    show collections
    2017-04-15T17:04:20.662+0800 error: { "$err" : "not authorized for query on biz.system.namespaces", "code" : 13 } at src/mongo/shell/query.js:131
    </code>
  2. 使用添加的用户与密码连接biz库,并执行<code>show collections</code>,同时创建集合users,并插入一条测试数据,发现可以得到正确的结果。
    <code>
    [username@xxx]# /usr/bin/mongo 127.0.0.1:27017/biz -u demo -p demo
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/biz
    show collections
    db.users.insert({name:"aa"})
    WriteResult({ "nInserted" : 1 })
    db.users.find()
    { "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }
    </code>
  3. 权限设置成功!

总结

在MongoDB的权限设置过程中,添加用户之后,一定要执行相应的用户验证,否则该用户的权限无效生效。本文仅涉及几个简单的权限,更多的内建权限可以参考官方文档。在配置过程中如果遇到任何问题,可以留言给我进行讨论与交流。

无戒写作训练营三期第三天。学号77。

上一篇 下一篇

猜你喜欢

热点阅读