千家信息网

MongoDB用户及权限管理(二):用户管理

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,一、创建管理员账号下面开始创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。> use adminsw
千家信息网最后更新 2026年11月02日MongoDB用户及权限管理(二):用户管理


一、创建管理员账号

  1. 下面开始创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

> use admin

switched to db admin

> db.createUser(

{

user: "dba",

pwd: "dba",

roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

}

)

2.编辑mongodb配置文件,开启验证模块

security:

authorization: enabled

3.重启mongod.

4.再次登录mongodb

#mongo

> show dbs

2017-01-10T19:30:30.924+0800 E QUERY [main] Error: listDatabases failed:{

"ok" : 0,

"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",

"code" : 13,

"codeName" : "Unauthorized"

}

5.会报出如上错误,这是因为开启auth模块后,需要进行验证。如果需要使用刚才创建的管理员账户,则需要到admin库下进行验证,1表示验证成功。

>use admin

>db.auth('dba','dba')

1

6.验证成功,再次执行命令:

> show dbs

admin 0.000GB

local 0.000GB

即可执行成功。


二、创建普通用户账号

userAdminAnyDatabase的角色具有在任何数据库下创建用户的权限,下面用刚刚创建的dba用户创建普通用户。

1.创建只读账号

use db1

db.createUser(

{

user: "test1",

pwd: "test1",

roles: [ { role: "read", db: "db1" } ]

}

)

2.创建读写账号

use db1

db.createUser(

{

user: "test2",

pwd: "test2",

roles: [ { role: "readWrite", db: "db1" } ]

}

)

注意:只有在当前库下创建的用户才能在当前库下进行验证,如果在admin库下创建的其他库的用户则需要在admin下进行验证。


三、创建超级管理员用户

MongoDB在V3.0版本之后内置了root 角色,也就是结合了readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin4个角色权限,类似于ORACLE的sysdba角色,但是MongoDB的超级管理员用户名称是可以随便定义的。当然如此高权限的用户还是不建议使用。

db.createUser(

{

user: "dbroot",

pwd: "dbroot",

roles: [ { role: "root", db: "admin" } ]

}

)


四、查看用户信息

db.getUser("test1")

> db.getUser("test1")

{

"_id" : "admin.test1",

"user" : "test1",

"db" : "admin",

"roles" : [

{

"role" : "clusterAdmin",

"db" : "admin"

}

]

}


五、修改用户信息

可修改用户的如下信息:

角色、密码、customData

db.updateUser( "test1",

{

customData:{employeeID:"0x3039"},

roles:[

{role:"read",db:"admin"}

],

pwd:"test1password"

}

)


六、修改用户密码

db.changeUserPassword("user","password")


七、删除用户

db.system.users.remove({user:"user1"});

db.dropUser("test1")


八、授权给用户

原有权限不变的情况下,授予readWrite,read admin的权限:

db.grantRolesToUser(

"test1",

[ "readWrite",

{ role: "read", db: "admin" }

]

)

九、回收权限

回收test1用户的readWrite和read admin的权限。

db.revokeRolesFromUser(

"test1",

[ { role: "read", db: "admin" },

"readWrite"

]

)


用户 权限 验证 账号 管理 角色 管理员 成功 信息 普通 再次 密码 模块 库里 帐号 也就是 只有 名称 命令 如上 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 博彦科技互联网金融 苏州找大状互联网科技有限公司 互联网通讯科技 互联网金融 金融科技 狮子座互联网科技培训 湖南洣水互联网科技有限公司扣款 广州慧亚互联网科技怎么样 青岛科技大学互联网大赛研究生 未来五年的互联网科技 西安小鹰速贷互联网科技有限公司 互联网在线教育科技创业 佛山市拉法互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 卓翼科技产业互联网合作 恒生互联网科技业指数调整周期 滨湖区互联网智能科技产品有哪些 梅州GM互联网络科技有限公司 工业互联网科技成果转化 宁波跨境商互联网科技有限公司 互联网科技 美国互联网保险保险科技 互联网科技有限公司图片 万易互联网科技 全球顶尖互联网科技公司 互联网数据科技专业 山东星卡互联网科技有限公司官网 互联网科技资金流入 下一代互联网重大应用科技园 广州梦谷互联网科技有限公司领导
0