帮助中心/最新通知

质量为本、客户为根、勇于拼搏、务实创新

< 返回文章列表

【服务器相关】详解MongoDB数据库 用户角色和权限管理实战

发表时间:2025-06-16 03:46:00 小编:主机乐-Yutio

查看数据库

使用终端命令行输入 mongo 登陆 mongodb 之后切换到 admin 库,并认证后可查看所有数据库,操作如下所示:


[root@renwole.com ~]# mongoMongoDB shell version v4.4.0connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("1ea1-4343-9523-167a101973a9") }MongoDB server version: 4.4.0> use admin> db.auth("admin","InaM6Aip#2JBlWwY")1> show dbsadmin0.000GBconfig0.000GBlocal0.000GB

说明:1 表示认证成功,0 表示认证失败,认证失败后查看数据库无任何返回。

创建数据库及用户

创建一个 renwoledb 数据库并授权 renwole 用户为该库的 dbOwner 角色。另外、MongoDB数据库实行注册制,数据库内无内容时,无法查看到新建的数据库,操作如下:


> use renwoledb> db.createUser({ user:"renwole", pwd:"renwolecom", roles:[{role:"dbOwner",db:"renwoledb"}]})

此时已完成了一库一账号的创建。如果创建用户提示无权限,请先使用超级管理员登录之后切换到对应的数据库再创建即可,如下所示:


MongoDB shell version v4.4.0connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("7be9-4c30-ad2e-2a5b58127ab7") }MongoDB server version: 4.4.0> use renwoledbswitched to db renwoledb> db.createUser( {user:"renwole",pwd:"renwolecom",roles:[{role:"dbOwner",db:"renwoledb"}] } )uncaught exception: Error: couldn't add user: command createUser requires authentication :_getErrorWithCode@src/mongo/shell/utils.js:25:13DB.prototype.createUser@src/mongo/shell/db.js:1343:11@(shell):1:1> use adminswitched to db admin> db.auth("root","renwolecompassword")1> use renwoledbswitched to db renwoledb> db.createUser( {user:"renwole",pwd:"renwolecom",roles:[{role:"dbOwner",db:"renwoledb"}] } )Successfully added user: {	"user" : "renwole",	"roles" : [		{			"role" : "dbOwner",			"db" : "renwoledb"		}	]}

添加 root 用户,拥有整个 MongoDB 最高权限,建议取消认证模式后,先进入到 admin 库,再添加 root 用户权限


> use admin> db.createUser({user: "root",pwd: "renwolecom",roles: [ { role: "root", db: "admin" } ]})

密码修改

修改某个账号的数据库密码需要进入到该数据库,认证后再修改,否则报错,操作如下:


> use renwoledb> db.changeUserPassword("renwole", "renwolecompwdnew")> db.auth("renwole","renwolecompwdnew")1

删除用户及数据库

删除用户(必须切换到admin使用最高权限删除某个用户角色)


> db.system.users.remove({user:"renwole"});WriteResult({ "nRemoved" : 1 })

删除所有用户(必须具备超级管理权限才能删除)


> db.system.users.remove({})

删除数据库(必须切换到指定的数据库,然后再删除)


> use renwoledbswitched to db renwoledb> db.dropDatabase(){ "ok" : 1 }>

总结

到此这篇关于MongoDB数据库用户角色和权限管理的文章就介绍到这了,更多相关MongoDB用户角色和权限管理内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


联系我们
返回顶部