【Mongo】mongodb的用户认证
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1.创建超级账号> use admin ;> db . createUser ( { user : "admin" , pwd : "123456" , roles : [ { role : "roo
千家信息网最后更新 2026年11月01日【Mongo】mongodb的用户认证
具体角色:
认证方式二
1.创建超级账号
- > use admin ;
- > db . createUser ( { user : "admin" , pwd : "123456" , roles : [ { role : "root" , db : "admin" } ] } )
- Successfully added user : {
- "user" : "admin" ,
- "roles" : [
- {
- "role" : "root" ,
- "db" : "admin"
- }
- ]
- }
user:用户名
pwd:密码
roles :指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。 role里的角色 可以选:
- Built - In Roles(内置角色):
- 1 . 数据库用户角色:read、readWrite ;
- 2 . 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 3 . 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 4 . 备份恢复角色:backup、restore;
- 5 . 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 6 . 超级用户角色:root
- // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
- 7 . 内部角色:__system
具体角色:
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system . profile
- userAdmin:允许用户向system . users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
2.开启权限认证
- 配置文件添加
- [ dbaadmin@ ip - 172 - 31 - 36 - 77 ~ ] $ more /usr/ local / mongodb/conf/mongod . conf
- auth = true
3.重启后认证超级账号
- [ root@iZ2ze66bhrbxkc31nljgjnZ mongodb ] # /usr/ local / mongodb/bin/mongo
- MongoDB shell version : 3 . . 6
- connecting to : test
- > show dbs ; --没权限查看
- 2018 - 05 - 07T14 : 29 : 25 . 847 + 0800 E QUERY Error : listDatabases failed : {
- "ok" : 0 ,
- "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }" ,
- "code" : 13
- }
- at Error ( < anonymous > )
- at Mongo . getDBs ( src/mongo/shell/mongo . js : 47 : 15 )
- at shellHelper . show ( src/mongo/shell/utils . js : 630 : 33 )
- at shellHelper ( src/mongo/shell/utils . js : 524 : 36 )
- at ( shellhelp2 ) : 1 : 1 at src/mongo/shell/mongo . js : 47
- > use admin ;
- switched to db admin
- > db . auth ( 'admin' , '123456' ) ; -admin下认证超级账号, 数据库帐号是跟着数据库来走的,哪里创建哪里认证。
- 1
- > show dbs ;
- admin 0 . 078GB
- local 0 . 078GB
- rundb 0 . 078GB
- rundb2 0 . 078GB
4.添加普通账号
- > use rundb2 ;
- switched to db rundb2
- > db . createUser ( { user : 'runuser2' , pwd : '123456' , roles : [ { role : "dbOwner" , db : " rundb2 " } ] } )
- Successfully added user : {
- "user" : "runuser2" ,
- "roles" : [
- {
- "role" : "dbOwner" ,
- "db" : "rundb2"
- }
- ]
- }
- > show users ; <1pre style="margin-top:0px;margin-bottom:0px;white-space:pre-wrap;text-align:justify;font-family:;" "=""> #查看当前库下的用户
- {
- "_id" : "rundb2.runuser" ,
- "user" : "runuser" ,
- "db" : "rundb2" ,
- "roles" : [
- {
- "role" : "readWrite" ,
- "db" : "rundb2"
- }
- ]
- }
- {
- "_id" : "rundb2.runuser2" ,
- "user" : "runuser2" ,
- "db" : "rundb2" ,
- "roles" : [
- {
- "role" : "dbOwner" ,
- "db" : "rundb2"
- }
- ]
- }
5.普通账号认证
- 认证方式一
- [ root@iZ2ze66bhrbxkc31nljgjnZ mongodb ] # /usr/ local / mongodb/bin/mongo - u runuser - p 123456 rundb2
- MongoDB shell version : 3 . . 6
- connecting to : rundb2
- > show collections ;
- system . indexes
- testcoll
- testcoll2
认证方式二
- [ root@iZ2ze66bhrbxkc31nljgjnZ mongodb ] # /usr/ local / mongodb/bin/mongo
- MongoDB shell version : 3 . . 6
- connecting to : test
- > use rundb2 ;
- switched to db rundb2
- > show dbs ;
- 2018 - 05 - 07T14 : 36 : 46 . 809 + 0800 E QUERY Error : listDatabases failed : {
- "ok" : 0 ,
- "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }" ,
- "code" : 13
- }
- at Error ( < anonymous > )
- at Mongo . getDBs ( src/mongo/shell/mongo . js : 47 : 15 )
- at shellHelper . show ( src/mongo/shell/utils . js : 630 : 33 )
- at shellHelper ( src/mongo/shell/utils . js : 524 : 36 )
- at ( shellhelp2 ) : 1 : 1 at src/mongo/shell/mongo . js : 47
- > db . auth ( 'runuser2' , '123456' )
- 1
- > show collections ;
- system . indexes
- testcoll
- testcoll2
5账号管理
- 修改密码
- MongoDB 修改帐号的密码有两种方式: 1 . 使用 changeUserPassword 方法 2 . 使用 updateUser 方法里面的 pwd 参数
- / / 验证帐号密码
- > db . auth ( "biadmin" , "biadmin" )
- 1
- //修改帐号密码
- > db . changeUserPassword ( "biadmin" , "123" )
- //使用原密码验证失败返回0
- > db . auth ( "biadmin" , "biadmin" )
- Error : Authentication failed .
- 0
- //使用修改后密码验证成功返回1
- > db . auth ( "biadmin" , "123" )
- 1
- //使用updateUser 修改密码
- > db . updateUser (
- "biadmin" ,
- {pwd : "biadmin" } )
- //验证密码成功返回1
- > db . auth ( "biadmin" , "biadmin" )
- 1
- 删除帐号
- MongoDB 删除帐号有两种方式:
- 1 . 使用 dropUser ( "username" ) 删除当前数据库下指定帐号
- 2 . 使用 dropAllUsers ( ) 删除数据库下所有帐号
- / / 已经创建两个测试帐号
- > db . getUser ( "test1" )
- {
- "_id" : "bitest.test1" ,
- "user" : "test1" ,
- "db" : "bitest" ,
- "roles" : [
- {
- "role" : "dbAdmin" ,
- "db" : "bitest"
- }
- ]
- }
- > db . getUser ( "test2" )
- {
- "_id" : "bitest.test2" ,
- "user" : "test2" ,
- "db" : "bitest" ,
- "roles" : [
- {
- "role" : "dbAdmin" ,
- "db" : "bitest"
- }
- ]
- }
- //使用dropUser删除帐号test1成功返回true
- > db . dropUser ( "test1" )
- true
- //查询帐号test1已不存在
- > db . getUser ( "test1" )
- null
- //使用dropAllUsers删除所有帐号
- > db . dropAllUsers ( )
- 2
- //查询帐号 test2,biadmin 都已不存在
- > db . getUser ( "test2" )
- null
- > db . getUser ( "biadmin" )
- null
- //查询数据库下所有帐号返回空数组
- > db . getUsers ( )
- [ ]
6 更改用户信息
更改role,密码都行db.updateUser( "test",{ roles:[ { role: "readWrite", db: "welike_mongo" } ], pwd:"123456" })更多的操作查看参照文档:
https://www.cnblogs.com/shiyiwen/p/5552750.html
https://www.cnblogs.com/damingge/p/6507605.html
数据
数据库
用户
角色
帐号
密码
权限
认证
账号
管理
方式
验证
成功
查询
普通
函数
数组
方法
两个
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网科技工作委员会副主任毛军
互联网科技公司华为
科技互联网政务服务
互联网 科技创新
贷财互联网科技
奇士达互联网科技
互联网科技logo设计
亿人帮互联网科技
居家互联网科技有限公司
博兴的互联网电子科技公司
常德市电业局互联网科技部
昭通互联网科技选哪家
徐州市互联网科技有限公司
为客找房互联网科技公司怎么样
互联网时代的科技公司
锡山区互联网智能科技产品供应
广州千川互联网科技有限公司
广州百诚互联网科技有限公司官网
中国新注册互联网科技
互联网科技工作委员会毛军
金融科技创新监管互联网金融
北京三清互联网科技
隆华科技工业互联网
消费医药和互联网科技
东莞新华互联网科技学校
互联网科技包装股
吉林省码上互联网科技电话
互联网科技和医药行业
小牛互联网科技有限公司地址