zoukankan      html  css  js  c++  java
  • mongodb开启权限验证、超级管理员、用户权限管理

    -

    mongodb账户权限配置

    1、创建超级管理员权限用户

    use admin
    db.createUser({
        user:'admin',//用户名
        pwd:'123456',//密码
        roles:[{ role:'root',db:'admin'}]//root 代表超級管理员权限 admin代表给admin数据库加的超级管理员
    })
    
    db.createUser({
        user:'admin',
        pwd:'123456',
        roles:[{ role:'root',db:'admin'}]
    })
     补充说明
    // mongodb数据库角色
    1、数据库用户角色: read、readWrite
    2、数据库管理角色:dbAdmin、dbOwner、userAdmin
    3、集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
    4、备份恢复角色:backup、restore
    5、所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6、超级用户角色:root
    7、内部角色:__system
    8、内建的角色
    
    角色说明:
    read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限
    2、修改吗,mongodb数据库配置文件 注意空格 不能用tab
    // 路径: D:mongodbinmongod.cfg
    security:  
        authorization: enabled

    补充:mongod.cfg 配置前 备份一下  

    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    storage:
      dbPath: D:mongodbdata #配置数据库文件存储目录
      journal:
        enabled: true
    #  engine:
    #  wiredTiger:
    
    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      path:  D:mongodblogmongod.log  #配置日志目录
    
    # network interfaces
    net:
      port: 27017   #配置端口 默认端口为27017
      bindIp: 127.0.0.1  #绑定ip地址
    
    
    #processManagement:
    
    security:  #配置安全相关的东西
        authorization: enabled  #默认没有这个代码 打开注释就开启了权限认证
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp:
    3、重新启动mongodb
    win + r 
    services.msc

    不过权限设置没有生效,尝试了不少,这个5版本的mongodb版本过于新,暂时没有把权限设置成功,不过学到了几个命令

    mongo 启动命令

    net start MongoDB

    mongo停止命令

    net stop MongoDB

    指定mongo配置文件

    mongod --config "D:mongodbinmongod.cfg" --install

    以权限认证的方式启动服务

    mongod --auth --port 27017 --dbpath D:mongodbdata 

    或者

    mongod --auth

    继续往下写

    4、用超管账号连接数据库

    // 第四步:用超级管理员账户连接数据表
    mongo admin -u 用户名 -p 密码
    mongo 127.0.0.1:27017/test -u user -p password //远程连接方式
    
    
    mongo admin -u admin -p 123456   //用admin账户去连接数据库

    5、给其它数据库创建一个账号(用户)

    db.createUser({
        user:'ityingadmin',//创建一个itying
        pwd:'123456',
        roles:[{ role:'dbOwner',db:'itying'}]
    })

    6、删除一个账号(用户)

    db.dropUser('ityingadmin')

    7、给某个账户授权

    //给admin账户授权
    use admin 
    db.auth('admin','123456')
    
    //给ityingadmin账号授权 前提是先创建有这个账户
    
    use admin 
    db.auth('ityingadmin','123456')

    8、用ityingadmin账号连接admin数据库

    mongo admin -u ityingadmin -p 123456

    9、给itying数据库创建一个账号

    通过超管账号连接数据库,切换到itying数据库,创建账号

    use admin
    //在itying数据库下创建一个 账户
    use itying
    db.createUser({
        user:'ityingadmin',
        pwd:'123456',
        roles:[{ role:'dbOwner',db:'itying'}]
    })
    
    //然后就可以用 此账号连接itying数据库
    mongo itying -u ityingadmin -p 123456

    总结一下权限操作命令

    查看当前数据库用户

    show users

    删除当前数据库某一个用户

    db.dropUser('ityingadmin')

    修改用户密码:

    db.updateUser("ityingadmin",{"pwd":"123456"})

    密码认证,权限验证:验证之后就可以用这个账号访问数据库

    db.auth('ityingadmin','123456')

    nodejs连接数据库时需要配置的账户密码

    const url = 'mongodb://admin:123456@localhost:27017';

    -

  • 相关阅读:
    Hdu3022 Sum of Digits
    bzoj3864 Hero meet devil
    bzoj2448 挖油
    poj3783 Balls
    bzoj3802 Vocabulary
    Hdu5181 numbers
    Hdu5693 D Game
    图形填充之边标志算法
    图形填充之栅栏填充算法
    图形填充之种子填充算法
  • 原文地址:https://www.cnblogs.com/fqh123/p/15192146.html
Copyright © 2011-2022 走看看