MongoDB数据库授权认证是保障数据库安全的一个重要措施,本攻略将介绍如何实现MongoDB数据库授权认证。
首先,在连接到MongoDB数据库后,创建管理员用户。
use admin
db.createUser(
{
user: "admin",
pwd: "adminpassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
此处admin
为用户名,adminpassword
为密码,userAdminAnyDatabase
是有关这个用户的角色。你也可以使用其他有关的权限,包括readWriteAnyDatabase
和dbAdminAnyDatabase
。如果你是希望创建一个只能读取数据库数据的用户,应该将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
数据库进行操作。
在控制台输入以下命令:
mongo -u myuser -p mypassword --authenticationDatabase mydatabase
这将连接到MongoDB,并使用myuser
的用户名和密码进行身份验证。如果认证成功,你将可以访问mydatabase
数据库。
本文链接:http://task.lmcjl.com/news/14314.html