第四章 配置用户账户和访问控制

提示

用户管理员账户和数据库管理员账户都是在数据库admin中创建的,在MongoDB服务器中启用身份验证后,要以用户管理员或数据库管理员的身份连接服务器,必须向admin数据库验证身份。您还需要像前一节介绍的那样在每个数据库中创建用户账户,让这些用记能够访问该数据库。

创建用户管理员如下:

use admin
ub.createUser({user:"useradmin",pwd:"useradmin",roles:["userAdminAnyDatabase"]})

如何启用用户身份验证

创建用户管理员账号后, 使用参数--auth重启mongodb服务器, 也可以在配置文件中指定auth设置, 如下:

mongod --dbpath <mongo_data_location>/data/db --auth

连接mongodb的二个方式:

第一:

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

第二:

mongo --username "useradmin" --password "useradmin"

创建数据库管理员账户

需要添加如下角色,readWriteAnyDatabase, dbAdminAnyDatabase, clusterAdmin。就是把useradmin和userAdminAnyDatabase,二个角色去除,目的是做到用户管理账号与数据库管理账户分离的目的。
创建数据库管理账号代码如下:

use admin
db.createUser({user:"dbAdmin",pwd:"dbAdmin",roles:["readWriteAnyDatabase","dbAdminAnyDatabase","clusterAdmin"]})

readWriteAnyDatabase: 指对所有数据库有读写权限;dbAdminAnyDatabase:指对所有数据库有dbAdmin的权限,即可以管理数据库的清理,修改,压缩等操作;clusterAdmin,指可以对mongodb进行连接,集群,复制,列出数据库,创建数据库以及删除数据库等操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,224评论 22 257
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,264评论 25 708
  • 4 创建一个社交网站 在上一章中,你学习了如何创建站点地图和订阅,并且为博客应用构建了一个搜索引擎。在这一章中,你...
    lakerszhy阅读 2,208评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 以前,我不太喜甜食,总觉得甜蜜是心里滋养出的小花,味蕾的甜腻只会助力蛀牙。 生活中H,几乎不喝白水,各种甜味剂的饮...
    盐水系阅读 240评论 0 0