文档章节

mongodb的安全认证和索引的建立和删除

渺渺星辰
 渺渺星辰
发布于 2017/07/26 16:49
字数 696
阅读 10
收藏 0

mongodb的安全认证

1.权限认证:

   1)auth认证

    a) 设置方法:  添加 auth=true  到 mongodb.conf中  

                     或者在启动的时候添加 --auth       -------->重新启动mongodb就可以了(日志文件中可以查看到)

   b)用户设置的语法:         

 db.createUser({

                 user:'用户名',

                 pwd:'密码'

                 customData:'关于用户名密码的一些描述' 

                 roles:['role':'角色类型',db:'针对的数据库名称'] })  #如果不写db,默认针对当前数据库                            

实例:db.createUser({user:"testuser",pwd:"testpass",roles:[role:"readWrite",db:stu]})

     2)角色类型           

       

a)内置的角色类型:

      read : 指定db上做读取操作(find)

      readWrite: 指定db上(增删改查但是不能删除数据库)

      dbAdmin:  指定db上增删改查,数据库类型转换

      dbOwner:   read+readWrite+dbAdmin集合

      userAdmin:对其他用户进行管理

b)集群角色: clusterAdmin,clusterManager等等

c)备份角色:  backup,restore等等

e)其他特权角色:  readAnyDatabase ------>该用户对所有数据库都只有读的权限(其他内置角色也能增加AnyDatabase)

         用户权限认证:

         首先建立一个最大权限的用户:     

 
#建立一个超级用户
use admin
db.createUser({ user: "admin" , pwd: "admin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]});  


在针对数据库建立用户:
#建立一个针对stu数据库读写权限的用户

db.createUser({user:"testuser",pwd:"testpass",roles:[role:"readWrite",db:stu]})    

#建立一个对所有数据库只读权限的用户       
db.createUser({user:"test",pwd:"test",roles:[role:"readAnyDatabase"})                

进入stu数据库:
use stu
db.auth('testuser','testpass')  ---->db.auth('用户名','密码')

 用户信息查询:      

1.全部用户 

 show users                  #查询当前数据库下的用户

 db.system.users.find()    #查询当前数据库所管理的用户

db.getUser('用户名')  或者  db.getUsers()   #在帐号所在数据库下使用

2.新建用户

a)超级用户 root

db.createUser({user: "root",pwd: "123456",roles: [ "root" ]})

// db.addUser("root","123456")         ####mongodb2.6之前的语法

b)用户管理权限 userAdminAnyDatabase

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

c)数据库管理权限 dbAdminAnyDatabase

db.createUser({user:"dbAdmin",pwd:"123456",roles:[{role:"dbAdminAnyDatabase",db:"admin"}]})

e)数据读写用户 readWriteAnyDatabase

use test

db.createUser({user:"sa",pwd:"sa",roles:[{role:"readWrite",db:"test"}]})

f)删除用户(进入到相应的数据库中,并且登陆的用户有用户管理权限):

db.dropUser(username)

g)删除数据库下所有帐号

db.dropAllUsers()

h)修改密码:

db.changeUserPassword("用户名","密码")

角色权限

展示角色 show roles;    ---->查询出所有的数据库中的角色

 

   3)key-file认证:

 

mongodb索引的建立和删除:

建立单索引:    

db.COLLECTION_NAME.ensureIndex({KEY:1})    

复合索引  

db.COLLECTION_NAME.ensureIndex({KEY:1,key1:-1})

注意事项:Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1

删除索引:  

db.COLLECTION_NAME.dropIndex({KEY:1})

查看索引:

db.system.indexes.find()

 

© 著作权归作者所有

共有 人打赏支持
渺渺星辰
粉丝 2
博文 33
码字总数 34632
作品 0
海淀
私信 提问
基于云数据库MongoDB版进行应用开发

MongoDB是一个基于分布式文件存储的数据库,在互联网、物联网、游戏、金融等领域被广泛采用。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是当前最流行的Nosql...

mcy0425
09/14
0
0
浅述MongoDB的管理操作

浅述MongoDB的管理操作 2011-08-22 21:49 不知不觉房产系统已经使用MongoDB一年多了,记得一年多以前,正是NOSQL被热炒时,MongoDB更是作为NOSQL中的佼佼者,被炒得火烫,也应该就在当时被这...

李长春
2011/09/02
0
0
MongoDB集群部署 - 带访问控制的分片副本集

1. 前言   Ceilometer将meter、event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘,而想删除旧数据,...

Sai18
08/16
0
0
mongodb 阶段性技术总结

生产环境最佳实践 1.linux 系统: 1】关闭文件系统/分区的atime 选项 Vi /etc/fstab 在对应的分区项后面添加noatime ,nodiratime LABEL=/1 / ext3 defaults 1 1LABEL=/data1 /data ext4 def...

huzorro
2012/08/21
0
3
mongodb(一)mongodb 副本集配置

---layout: blogistop: truetitle: "mongodb 副本集配置"date: 2018-08-29category: mongodbtags: mongodb --- 环境 下载解压 基本配置: 假定已经解压安装完成,现在所处的目录是 /usr/loc...

开心的哈士奇
10/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

七牛qshell工具 批量删除操作

qshell 下载地址&文档(http://developer.qiniu.com/code/v6/tool/qshell.html) 这里我们演示的是windows下的操作,将下载的工具改名为:qshell.exe 然后将文件的路径添加到PATH 然后 点击 “...

koothon
35分钟前
1
0
Fastjson-fastjson中$ref对象重复引用问题

import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;/** * fastjson中$ref对象......

小黄狗
41分钟前
1
0
mybatis一级缓存

mybatis执行查询的流程,最终都是通过动态代理进入到MapperProxy的invoke方法 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try......

wuyiyi
42分钟前
3
0
安装weblogic wls1033_generic.jar 遇见的坑

接别人的烂摊子,weblogic部署没部署成功不部署了 让我远程给别人部署weblogic 11g 部署完成启动域的时候启动不了报错如下 Unrecognized option: -jrockit Error: Could not create the Ja...

雁南飞丶
42分钟前
1
0
通过7个python函数理解区块链

我想对于那里的很多人来说,区块链就是这种现象,很难不让你头脑发热。我开始观看视频和阅读文章,但对我个人而言,直到我编写自己的简单区块链,我才真正理解它是什么以及它的潜在应用价值。...

笔阁
43分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部