MongoDB开启访问权限控制

作者: 丶_谦信 | 来源:发表于2017-03-06 18:10 被阅读1508次

概述

       在MongoDB实例上开启访问权限控制,意味着强制要求用户输入账号密码进行授权认证。在开启了访问权限控制的MongoDB实例上,用户能进行的操作取决于登陆账号的角色(roles)。

       MongoDB支持多种授权认证机制。下面将介绍如何使用MongoDB默认的机制开启访问权限控制。

用户管理员

       在开启访问权限控制时,需要确保admin库中有一个被分配了userAdmin或者userAdminAnyDatabase角色的用户账号。这个账号可以管理用户和角色,比如:创建用户,获取角色权限,创建或修改自定义角色等。

       在访问权限控制开启之前或之后,都可以执行创建用户的操作。如果你在开启访问权限控制之前没有创建任何用户,MongoDB提供一个特有机制,让你能够在admin库中创建管理员账号。一旦管理员账号创建完毕,其他账号则必须使用该管理员账号进行创建。

步骤

       在下面的流程中,首先在尚未开启访问权限控制的MongoDB实例中添加一个用户管理员账号,然后再开启访问权限控制。

1.启动MongoDB服务(禁用访问权限控制)

mongod --port 27017--dbpath /data/db1

2.连接至MongoDB实例

mongo --port 27017

3.添加管理员账号

use admin

db.createUser({user: "myUserAdmin", pwd: "abc123", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})

4.重启MongoDB实例,并启用访问权限控制

mongod --auth --port 27017--dbpath /data/db1

5.连接至MongoDB实例

mongo --port 27017

切换至admin库,并登陆

use admin

db.auth("myUserAdmin","abc123")

6.添加普通用户账号

use test

db.createUser({user: "myTester", pwd: "xyz123", roles: [{role: "readWrite", db: "test"}, {role: "read", db: "reporting"}]})

7.使用普通用户账号登陆

mongo --port 27017

use test

db.auth("myTester","xyz123")

向数据集中添加纪录

db.foo.insert({x:1, y:1})

相关文章

  • MongoDB开启访问权限控制

    概述 在MongoDB实例上开启访问权限控制,意味着强制要求用户输入账号密码进行授权认证。在开启了访问权限控...

  • MongoDB权限访问控制

    centos7下安装3.2.6版本的MongoDB参考此篇文章 上述过程安装下的mongodb,在命令窗口中默认是...

  • mongoDB权限配置

    mongoDB的权限配置主要分为两步: 启用访问控制进入mongoDB的安装目录,如:C:\MongoDB\Ser...

  • 3.安全认证

    3.1 MongoDB的用户和角色权限简介 默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,...

  • 【mongoDB】mongoDB设置权限配置

    方法介绍: 启动MongoDB服务(禁用访问权限控制)mongod --port 27017 --dbpath d...

  • MongoDB的权限访问控制

    MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端...

  • MongoDB安全

    MongoDB对数据安全提供了多种保证,其中包含验证、访问控制、加密来确保部署的数据安全。 1.开启访问控制强制校...

  • Java基础学习六 关键字

    java语言中的访问控制权限修饰符 访问控制权限修饰来控制元素的访问范围。 访问控制权限修饰符包括:public ...

  • Ubuntu下开启MongoDB用户权限

    MongoDB默认是没有开启用户权限的,如果直接在公网服务器上如此搭建MongoDB,那么所有人都可以直接访问并修...

  • 进阶:访问控制权限

    访问控制权限 访问控制权限:private、protected、public、 默认。 private:私有的只...

网友评论

  • samfung09:你好,能问个问题吗?开启了权限访问之后用db.shutdownServer()关闭mongodb服务会报错,请问该怎么关闭mongodb服务啊。知识尚浅,如果作者看到,望解答,感谢
    丶_谦信:@痛并快乐着YR http://blog.itpub.net/15498/viewspace-2062668/
    samfung09:@丶_谦信 没开启权限时关闭mongodb是进入admin数据库然后db.shutdownServer()就行了,但开启权限之后,同样是进入admin,然后输入用户名密码,然后db.shutdownServer()却会报错无法关闭mongodb
    丶_谦信:不太清楚你的问题。没有用过你这个命令。
    报的是什么错啊?可能权限不足?可以先用管理员账号登陆再关闭试试。
    用管理员模式启动windows的cmd,或者linux获取root权限
  • wokenshin:--port 27017 --dbpath /data/db1 没有打空格

本文标题:MongoDB开启访问权限控制

本文链接:https://www.haomeiwen.com/subject/hseugttx.html