mongodb3.4开启用户认证

2017-12-25 16:37:14

db version v3.4.0


初始安装的时候没有admin数据库


开启认证

修改配置文件/etc/mongodb.conf

打开auth的注释,设置为auth = true


上面这个方法我没有成功,我用的下面的

添加这个

security:

    authorization: enabled


重启mongodb

sudo service mongodb restart


添加管理员

使用命令mongo进入命令行

创建第一个用户,该用户需要有用户管理权限

这里设置其角色为root

use admin
db.createUser({user:"admin",pwd:"password",roles:["root"]})

新增的用户在system.users中

> db.getCollectionNames()
[ "system.indexes", "system.users", "system.version" ]


第一个用户添加完成后,便需要认证才能继续添加其他用户

使用db.auth("admin", "password")认证


添加数据库用户

为其他数据库添加用户,添加用户前需要切换到该数据库

这里设置其角色为dbOwner

use testdb1

db.createUser({user: "testdb1u1", pwd: "xyz123", roles: [{ role: "dbOwner", db: "testdb1" }]})


查看用户

> use admin
switched to db admin
> db.system.users.find()
{ "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "Fdh2ldIW3Aw8Cxz9Dt+96g==", "storedKey" : "zbkfj6ZQH1xwGoOg8JJ6OjtR3Cs=", "serverKey" : "yqkqHABZ64rEeq1X0htOAtUnwFU=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
{ "_id" : "testdb1.testdb1u1", "user" : "testdb1u1", "db" : "testdb1", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "Xxt2uET3jRtAYVigyLUydw==", "storedKey" : "yinLG61nRFzfC+3NtB5p9RR+avM=", "serverKey" : "OX/Pdft7JWJm/g0jg07q49OC4c8=" } }, "roles" : [ { "role" : "dbOwner", "db" : "testdb1" } ] }



参考

https://docs.mongodb.com/manual/tutorial/enable-authentication/

https://docs.mongodb.com/manual/core/security-built-in-roles/

https://docs.mongodb.com/manual/reference/built-in-roles/


  • 2017-03-23 22:29:52

    Android开发中Handler的经典总结

    当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发。

  • 2017-03-27 16:24:26

    laravel,gulp,Browsersync浏览器同步测试

    Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。您可以想象一下:“假设您的桌子上有pc、ipad、iphone、android等设备,同时打开了您需要调试的页面,当您使用browsersync后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。无论您是前端还是后端工程师,使用它将提高您30%的工作效率。

  • 2017-03-28 09:27:41

    Java中Arrays的asList()方法

    Java中Arrays的asList()方法 可以将 数组转为List 但是,这个数组类型必须是 引用类型的,如果是8中基本数据类型就不可以 原因如下,引用别人的一篇文章:

  • 2017-03-28 10:58:01

    No such property: sonatypeRepo for class:

    这种问题一般是出现在导入一些开源项目的时候。原因为该项目的原作者会把项目发布到maven中央仓库中,所以在gradle中添加了相关的maven发布任务,而发布任务需要配置