文档章节

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()

 

© 著作权归作者所有

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

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

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

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

李长春
2011/09/02
0
0
提升 MongoDB 安全性的 10 个提示

MongoDB提供了一系列组件来提升数据的安全性。数据安全在MongoDB中是最重要的——因此它利用这些组件来减少曝光面。下面是10个可以用来改善你个人或云中MongoDB服务器安全的小提示。 1. 启用...

oschina
2014/01/26
6.1K
4
MongoDB集群部署 - 带访问控制的分片副本集

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

Sai18
2018/08/16
0
0
mongodb(一)mongodb 副本集配置

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

开心的哈士奇
2018/10/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

tac 与cat

tac从后往前看文件,结合grep使用

writeademo
今天
2
0
表单中readonly和dsabled的区别

这两种写法都会使显示出来的文本框不能输入文字, 但disabled会使文本框变灰,而且通过通过表单提交时,获取不到文本框中的value值(如果有的话), 而readonly只是使文本框不能输入,外观没...

少年已不再年少
今天
2
0
SpringBoot上传图片操作

首先有个上传文件的工具类 /** * 文件上传 * @param file * @param filePath * @param fileName * @throws Exception */public static void uploadFile(byte[] file, String ...

_liucui_
今天
6
0
DrawerLayout

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener,OnFragmentInteractionListener{ public NavigationView navView; ......

安卓工程师王恒
今天
2
0
python精简笔记

python精简笔记-字符串基本用法 字符串常见用法: * encode() # 编码成bytes类型 * find() # 查找子串 * index() # 获取下标 * replace() # 替换子串 * len(string) # 返回字符串长度,...

平头哥-Enjoystudy
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部