zoukankan      html  css  js  c++  java
  • mongodb的权限操作

    一、开启权限认证

    1.windows下的mongodb开启权限认证

    C:UsersAdministrator>sc delete MongoDB //原来创建的服务如果没有开启 则删除
    [SC] DeleteService 成功
    C:UsersAdministrator>mongod --dbpath "E:MongoDBdatadb" --logpath "E:MongoDBdatalogMongoDB.log" -auth --install --serviceName "MongoDB" //-auth 参数 开启权限认证

    关闭权限认证就是去掉auth参数重新启动mongodb即可

    2.Linux下的mongodb开启权限认证

    启动配置中加入 auth=true 即可

    二、创建用户

    创建语法:createUser(2.6之前版本为addUser)

    createUser 的参数 {user:"用户名",pwd:"密码",customData:"对当前用户的描述",roles:[{role:"角色",db:"对应角色的数据库"}]}

    mongodb内建了几个数据库角色类型:

    1.read 可执行方法:find

    2.readWrite 可执行方法:find,update,remove,insert

    3.dbAdmin 管理数据库

    4.dbOwner 1,2,3个权限的集合

    5.userAdmin 该角色的用户可以管理其它角色的用户

    db.createUser({user:"test",pwd:123456,roles:[{role:"read",db:"test"}]}) //创建一个在test数据库上只读的test用户
    Successfully added user: {
        "user" : "test",
        "roles" : [
            {
                "role" : "read",
                "db" : "test"
            }
        ]
    }
    [c:~]$ mongo -u test -p 123456 //exit 退出后用刚才创建的帐号登录 
    MongoDB shell version: 2.6.5
    connecting to: test //默认连接到test
    show dbs //显示数据库被拒绝
    2015-09-17T12:03:20.445+0800 listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13
    } at src/mongo/shell/mongo.js:47
    show tables //显示test数据库上的表被允许
    local
    localtest
    system.indexes
    system.profile
    user3_collection

     三、创建角色

    创建格式:

    db.createRole({
        role:"角色名字",
        privileges:[
            {resource:{db:"数据库名字",collection:"集合名 不填则是任意集合"},actions:["权限名称"]}
        ],
        roles:[]
    })

    > db.createRole({
        role:"profile_find",
        privileges:[
        {resource:{db:"test",collection:"system.profile"},actions:["find"]}
        ],
        roles:[]
        })
    {
            "role" : "profile_find",
            "privileges" : [
                    {
                            "resource" : {
                                    "db" : "test",
                                    "collection" : "system.profile"
                            },
                            "actions" : [
                                    "find"
                            ]
                    }
            ],
            "roles" : [ ]
    }
  • 相关阅读:
    PHP数据库备份文件分卷导入的实现思路
    用delphi如何实现启动停止windows服务
    【创意logo】第23个世界无烟日 让烟草远离女性
    修改“windows xp资源管理器”的默认打开路径
    PHP百行代码快速构建简易聊天室
    简单的方法实现判断Mysql内某个字段Fields是否存在
    Blackhand的插件管理部分
    PHP 与 ASP.NET 正面交锋
    C语言运算符
    功能齐全的发送邮件类
  • 原文地址:https://www.cnblogs.com/buexplain/p/4816028.html
Copyright © 2011-2022 走看看