• 为mongoDB加用户权限管理


    MongoDB常用命令

    > show dbs                  #显示数据库列表
    > show collections        #显示当前数据库中的集合(类似关系数据库中的表)
    > show users               #显示用户
    > use <db name>        #切换当前数据库,如果数据库不存在则创建数据库。
    > db.help()                 #显示数据库操作命令,里面有很多的命令
    > db.foo.help()            #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
    > db.foo.find()            #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
    > db.foo.find({a: 1})   #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
    > db.dropDatabase()   #删除当前使用数据库
    > db.cloneDatabase("127.0.0.1")                            #将指定机器上的数据库的数据克隆到当前数据库
    > db.copyDatabase("mydb", "temp", "127.0.0.1")    #将本机的mydb的数据复制到temp数据库中
    > db.repairDatabase() #修复当前数据库
    > db.getName()          #查看当前使用的数据库,也可以直接用db
    > db.stats()                #显示当前db状态
    > db.version()            #当前db版本
    > db.getMongo()        #查看当前db的链接机器地址
    > db.serverStatus()    #查看数据库服务器的状态

    1、添加管理员账号

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

    2、添加普通用户(假定数据库名是test)

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

    role(角色)

    简要说

    数据库用户角色(DB User Roles)

    read readWrite

    为某个数据库创建一个用户, 分配该数据库的读写权力

    数据库管理员角色(DB Admin Roles)

    dbAdmin  dbOwner  userAdmin

    拥有创建数据库, 和创建用户的权力

    集群管理角色(Culster Administration Roles)

    clusterAdmin  clusterManager  clusterMonitor  hostManager

    管理员组, 针对整个系统进行管理

    备份还原角色(Backup and Restoration Roles)

    backup  restore

    备份数据库, 还原数据库

    所有数据库角色(All-Database Roles)

    readAnyDatabase  readWriteAnyDatabase  userAdminAnyDatabase  dbAdminAnyDatabase

    拥有对admin操作的权限

    Superuser Roles(超级管理员)

    root

    dbOwner userAdmin userAdminAnyDatabase这几个角色角色提供了任何数据任何用户的任何权限的能力,拥有这个角色的用户可以在任何数据库上定义它们自己的权限

    3、更新用户

    > db.updateUser('test', {user: "test", pwd: "test", roles: [{role: "readWrite", db: "test"}]})

    4、删除用户

    > db.dropUser('admin')

    5、开启权限验证

    在mongod.conf中的 security 节点中添加

    security:
      authorization: enabled

    并重启mongod服务

    如果从命令行启动数据库需加 --auth 参数

    # mongod --auth

    命令行使用开启用户权限的数据库

    > use test
    > db.auth('test', 'test')
    1
    > show collections

    使用mongoose链接开启用户权限的数据库

    1、使用mongoose.connect和mongoose.createConnection

    db = mongoose.createConnection('mongodb://test:test@localhost:27017/test');

    2、使用Connection#open

    db.open('localhost', 'test', 27017, {user:'test', pass:'test'});

    注意:如果链接有用户权限的数据库,port端口号是必须的,哪怕是默认的27017。

  • 相关阅读:
    [珠玑之椟]字符串和序列:左移、哈希、最长重复子序列的后缀数组解法、最大连续子序列
    [珠玑之椟]二分思想与分治法、排序思想
    [珠玑之椟]浅谈代码正确性:循环不变式、断言、debug
    [珠玑之椟]随机数函数取样与概率
    逆序对:从插入排序到归并排序
    [珠玑之椟]估算的应用与Little定律
    [珠玑之椟]位向量/位图的定义和应用
    lua----------------使用VS2015搭建lua开发环境的一些侥幸成功经验,
    Lua--------------------unity3D与Slua融合使用
    lua------------------Unity3D研究院编辑器之打开unity不可识别的文件(十三)
  • 原文地址:https://www.cnblogs.com/liuzhenwei/p/7002509.html
Copyright © 2020-2023  润新知