mongodb的安全认证和索引的建立和删除
mongodb的安全认证和索引的建立和删除
渺渺星辰 发表于10个月前
mongodb的安全认证和索引的建立和删除
  • 发表于 10个月前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 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
×
渺渺星辰
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: