博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 权限认证
阅读量:5950 次
发布时间:2019-06-19

本文共 1360 字,大约阅读时间需要 4 分钟。

  MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),因为考虑到数据安全的原因特地花了一点时间研究了一下,网上搜出来的解决方法大都是3.0以下的版本的,所以不适合3.0+以上的版本。我现在用的版本是MongoDB3.2.7,在windows10系统上进行的验证,估计在win7/win8上应该类似。

  和其它数据库一样,权限的管理都差不多一样。mongodb存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。mongodb默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件参数auth

  1、首先,不使用--auth参数启动MongoDB

  

systemLog:    destination: file    path: C:\data\dblog\mongod.log    logAppend: truestorage:    journal:        enabled: true    dbPath: C:\data\dbnet:    port: 27017#security:    #authorization: enabled

 

  mongod -f C:\data\mongodb.conf

  

 

  2、启动mongo, 启用admin数据库

  

 3、建立一个超级用户admin,命令如下:  

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

  

  4、查看用户集合

  db.system.users.find()

  

  5、现在启用auth

  在重启mongod之前,修改配置文件mongo.config,在最下面加入这么一行

  auth = on

   重启mongod

  mongod -f C:\data\mongodb.conf 

  

  然后重启mongo,启用admin数据库,

  显示所有数据库 : show dbs, 发现已经没有权限了

  

  启用 auth

  db.auth('admin', 'admin123')  返回1表示成功

  

 

  再次执行show dbs

  

  6、 启用ta数据库,查看该数据库集合

  

  很遗憾没有权限,admin虽然是超级管理员,但是对具体的数据库,还是需要有对应的用户,用户是和数据库走的,因此还需要建立ta数据库的用户

  建立针对ta数据库的用户

  db.createUser({user:'test1',pwd:'test1',roles:[{role:'readWrite',db:'ta'}]})

  需要注意的是在建立ta数据库用户的时候一定要先启用ta数据库,否则会出现问题

  use ta

  

 

   

  执行 db.auth('test1','test1')

  然后再对ta数据库进行相应的操作。

  

 

转载地址:http://cnsxx.baihongyu.com/

你可能感兴趣的文章
Harmonic Number (II)
查看>>
长连接、短连接、长轮询和WebSocket
查看>>
day30 模拟ssh远程执行命令
查看>>
做错的题目——给Array附加属性
查看>>
Url.Action取消字符转义
查看>>
JQuery选择器大全
查看>>
Gamma阶段第三次scrum meeting
查看>>
python3之装饰器修复技术@wraps
查看>>
[考试]20150606
查看>>
Javascript_备忘录5
查看>>
Can’t create handler inside thread that has not called Looper.prepare()
查看>>
敏捷开发方法综述
查看>>
Hadoop数据操作系统YARN全解析
查看>>
Django 运行报错 ImportError: No module named 'PIL'
查看>>
修改数据库的兼容级别
查看>>
Windows下同时安装两个版本Jdk
查看>>
uoj#228. 基础数据结构练习题(线段树)
查看>>
JS键盘事件监听
查看>>
ios开发周期之--(向上,向下,四舍五入)取整
查看>>
加油!
查看>>