zoukankan      html  css  js  c++  java
  • mogodb数据库简单的权限分配

    mongdb数据库默认不需要权限认证,但为了安全起见,最好设置下需要权限认证,启动的时候设置auth=true即可。

    推荐通过mongodb.conf配置文件的形式启动mongodb   进入mongodb bin目录执行./mongod  -f   xxxx/mongodb.conf

    dbpath=/home/dupeidong/data/db
    logpath=/home/dupeidong/mongodb/log/mongodb.log
    port=27017
    fork=true
    logappend=true
    bind_ip=127.0.0.1 
    auth=true  

    设置了auth=true, 那么第一次启动mogodb数据的时候,访问数据库如show dbs,会提示没有权限,需要添加一个超级管理员。然后切换到admin数据库,再以超级管理员的身份登录 ,执行 show dbs,可以成功的查看到当前数据库列表admin数据库和local数据库

    db.createUser({user:'admin', pwd: '12345',roles: [{role: 'userAdminAnyDatabase', 'db': 'admin'}]})
    use admin
    db.auth('admin', '12345')
    show dbs
      admin
      local

    admin虽然是超级管理员,但是对具体的数据库如article却没有操作权限,所以需要针对具体的数据库添加相应的用户管理员。为某个数据库添加用户,应先切换到该数据库,然后添加用户。

    ps: 在执行use article之前要保证已经以超级管理员的身份登录,才能成功给article添加用户,超级管理员有添加用户的权限

    use article
    db.createUser({user:'dpd',pwd:'dpd',roles:[{role:'readWrite',db:'article'}]})
    db.createCollection("test")

    最后如果没有关闭数据库的权限,需要通过下边指令获取授权

    use admin
    db.auth('admin', '12345')
    db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])
  • 相关阅读:
    第一章epoll
    sk_buff结构--转载
    邻居子系统1.5 neigh output
    netfilter内核态与用户态 通信 之 sockopt
    邻居子系统1.4
    邻居子系统 1.3
    邻居子系统 1.2
    邻居子系统 1.1
    linux 内核 tasklets 原理以及工作队列
    linux 内核 同步原理
  • 原文地址:https://www.cnblogs.com/dupd/p/11073299.html
Copyright © 2011-2022 走看看