关键词

MongoDB数据库授权认证的实现

MongoDB数据库授权认证是保障数据库安全的一个重要措施,本攻略将介绍如何实现MongoDB数据库授权认证。

添加管理员用户

首先,在连接到MongoDB数据库后,创建管理员用户。

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

此处admin为用户名,adminpassword为密码,userAdminAnyDatabase是有关这个用户的角色。你也可以使用其他有关的权限,包括readWriteAnyDatabasedbAdminAnyDatabase。如果你是希望创建一个只能读取数据库数据的用户,应该将roles字段的值设为[ { role: "readAnyDatabase", db: "admin" } ]

开启数据库认证

要开启数据库认证,需要在数据库配置文件中添加一行代码:

security:
  authorization: enabled

在Ubuntu中,该文件的位置为/etc/mongod.conf,而在Windows中,该文件的位置为C:\Program Files\MongoDB\Server\<version>\bin\mongod.cfg。修改配置文件后,需要重启MongoDB使配置生效。

登陆并验证用户

在开启数据库认证后,连接到MongoDB时将需要验证用户身份。连接之前需要使用管理员用户登录,例如:

mongo -u admin -p adminpassword --authenticationDatabase admin

连接到MongoDB后,需要使用下列命令验证用户身份:

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

此时你可以使用你创建的用户访问你的数据库了。如果你想让新创建的用户只访问特定的数据库,可以使用下列命令创建用户:

use yourDb
db.createUser(
  {
    user: "user",
    pwd: "userpassword",
    roles: [ { role: "readWrite", db: "yourDb" }]
  }
)

此处的yourDb是你的数据库名,user是你的用户名,userpassword是你的用户密码,readWrite是用户的角色,表示这个用户能读写yourDb数据。

示例说明

示例一:管理员用户添加用户

在控制台输入以下命令:

use admin
db.createUser(
    {
        user: "myuser",
        pwd: "mypassword",
        roles: [ { role: "readWrite", db: "mydatabase" } ]
    }
)

这将创建一个用户名为myuser,密码为mypassword,角色为readWrite(可读写)的用户,并授权对mydatabase数据库进行操作。

示例二:连接到MongoDB

在控制台输入以下命令:

mongo -u myuser -p mypassword --authenticationDatabase mydatabase

这将连接到MongoDB,并使用myuser的用户名和密码进行身份验证。如果认证成功,你将可以访问mydatabase数据库。

本文链接:http://task.lmcjl.com/news/14314.html

展开阅读全文