• 技术文章 >数据库 >mysql教程

    mongodb管理Security and Authentication

    2016-06-07 14:58:21原创600

    mongodb管理Security and Authentication mongdb自己也提供了验证机制,如果不验证是无法访问数据库对象,一个数据可以有多个用户,用户的权限也可以各不相同,下面具体介绍一下。 use admin ----登录到超级管理员 db.addUser(root, abcd); { _id : ObjectId

    mongodb管理Security and Authentication

    mongdb自己也提供了验证机制,如果不验证是无法访问数据库对象,一个数据可以有多个用户,用户的权限也可以各不相同,下面具体介绍一下。

    > use admin ----登录到超级管理员

    >db.addUser("root", "abcd");

    {

    "_id" : ObjectId("4eaf58af769d879418d93191"),

    "user" : "root",

    "readOnly" : false,

    "pwd" : "1a0f1c3c3aa1d592f490a2addc559383"

    }

    创建了一个超级用户,这个用户可以访问任何数据库,权限最大

    > use test

    switched to db test 切换到test数据库

    > db.addUser("test_user", "efgh");

    {

    "user" : "test_user",

    "readOnly" : false,

    "pwd" : "6076b96fc3fe6002c810268702646eec"

    }

    > db.addUser("read_only", "ijkl", true);

    {

    "user" : "read_only",

    "readOnly" : true,

    "pwd" : "f497e180c9dc0655292fee5893c162f1"

    }

    以上创建两个用户,test_user和read_only,不同的是,read_only用户只有只读权限

    > use test

    switched to db test

    > db.test.find();

    error: { "$err" : "unauthorized for db [test] lock type: -1 " }

    > db.auth("read_only", "ijkl");

    1

    > db.test.find();

    { "_id" : ObjectId("4bb007f53e8424663ea6848a"), "x" : 1 }

    > db.test.insert({"x" : 2});

    unauthorized

    > db.auth("test_user", "efgh");

    1

    > db.test.insert({"x": 2});

    > db.test.find();

    { "_id" : ObjectId("4bb007f53e8424663ea6848a"), "x" : 1 }

    { "_id" : ObjectId("4bb0088cbe17157d7b9cac07"), "x" : 2 }

    以上例子可以看到没有验证用户登录,对数据库读写操作均不能,read_only用户只能查询,不能插入,但是test_user用户验证登录后就可以插入了。

    如果这时,show dbs,还是报错,因为test_user 不是admin用户,所以没有权限。

    > use admin

    switched to db admin

    > db.auth("root", "abcd");

    1

    > show dbs

    admin

    local

    test

    验证了超级用户就可以做相关操作

    创建的这些用户都存在创建时数据库下面一个叫system.users的集合里面,如果要移除一个user,例如移除test_user

    > db.auth("test_user", "efgh");

    1

    > db.system.users.remove({"user" : "test_user"});

    > db.auth("test_user", "efgh");

    0

    启用验证登录:如果是配置文件启动server端,里面可以加入auth = true ,如果是跟参数启动mongod 后面记得跟--auth。

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:MySQL查询表重复数据的SQL 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 实例分析MySQL中pt-query-digest工具的使用记录• 简单聊聊MySQL中join查询• 深入理解MySQL索引优化器工作原理• MySQL子查询详细教程• MySQL关于Count函数的用法区别总结
    1/1

    PHP中文网