广告
返回顶部
首页 > 资讯 > 数据库 >如何利用MySQL学习MongoDB中的授权和权限
  • 270
分享到

如何利用MySQL学习MongoDB中的授权和权限

2024-04-02 19:04:59 270人浏览 泡泡鱼
摘要

如何利用Mysql学习mongoDB中的授权和权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  数据库的安全性是每一个DBA重点关注的部分

如何利用Mysql学习mongoDB中的授权和权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

  数据库安全性是每一个DBA重点关注的部分,在数据库建立之后,数据的安全就显得尤为重要。

  如何利用mysql学习MonGoDB之授权和权限

  对于一个数据库管理员来说,安全性就意味着他必须保证那些具有特殊数据访问权限的用户能够登录到数据库服务器,并且能够访问数据以及对数据库对象实施各种权限范围内的操作;同时,DBA还要防止所有的非授权用户的非法操作。

  1、Mysql授权和权限

  MySQL中有两种级别的权限:管理和用户。所有权限都可分别使用GRANT和REVOKE语句授予和收回。可以授予用户create、select、update、delete、insert、execute、index等权限,也可授予alter、drop和shutdown等系统权限。根用户root在默认情况下具有所有权限。

  2、MongoDB授权和权限

  官方文档开启MongoDB服务时不添加任何参数时,可以对数据库任意操作,而且可以远程访问数据库,所以推荐只是在开发是才这样不设置任何参数。如果启动的时候指定--auth参数,可以从阻止根层面上的访问和连接

  (1)、只允许某ip访问

  mongod--bind_ip127.0.0.1

  (2)、指定服务端口

  mongod--bind_ip127.0.0.1--port27888

  (3)、添加用户认证

  mongod--bind_ip127.0.0.1--port27888–auth

  (4)、添加用户

  在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息。

  当admin.system.users中一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作,直到在admin.system.users中添加了一个用户。

  如何利用MySQL学习MongoDB之授权和权限

  下面分别创建两个用户,在foo中创建用户名为user1密码为pwd1的用户,如下:

  [chinastor.com-root@localhostbin]#./mongo--port27888MongoDBshellversion:1.8.1connectingto:test>usefooswitchedtodbfoo>db.addUser("user1","pwd1"){"user":"user1","readOnly":false,"pwd":"35263c100eea1512cf3c3ed83789d5e4"}

  www.itjs.cn

  在admin中创建用户名为root密码为pwd2的用户,如下:www.itjs.cn

  >useadminswitchedtodbadmin>db.addUser("root","pwd2"){"_id":ObjectId("4f8a87bce495a88dad4613ad"),"user":"root","readOnly":false,"pwd":"20919e9a557a9687c8016e314f07df42"}>db.auth("root","pwd2")1>

  如果认证成功会显示1,用以下命令可以查看特定的数据库的用户信息:www.itjs.cn

  >useadminswitchedtodbadmin>db.system.users.find();{"_id":ObjectId("4f8a87bce495a88dad4613ad"),"user":"root","readOnly":false,"pwd":"20919e9a557a9687c8016e314f07df42"}>usefooswitchedtodbfoo>db.system.users.find();{"_id":ObjectId("4f92966d77aeb2b2e730c1bb"),"user":"user1","readOnly":false,"pwd":"35263c100eea1512cf3c3ed83789d5e4"}>

  下面我们试验一下用户的权限设置是否正确:www.itjs.cn

  [chinastor.com-root@localhostbin]#./mongo--port27888MongoDBshellversion:1.8.1connectingto:127.0.0.1:27888/test>usefooswitchedtodbfoo>db.system.users.find();error:{"$err":"unauthorizeddb:foolocktype:-1client:127.0.0.1","code":10057}>useadminswitchedtodbadmin>db.system.users.find();error:{"$err":"unauthorizeddb:adminlocktype:-1client:127.0.0.1","code":10057}>

  通知以上实验结果,说明登录时不指定用户名和口令时会报错,也就是说安全性的部署生效了。下面我再看一下另一个场景:

  [chinastor.com-root@localhostbin]#./mongo--port27888-uroot-ppwd2MongoDBshellversion:1.8.1connectingto:127.0.0.1:27888/testSatApr2119:23:15uncaughtexception:loginfailedexception:loginfailed

  奇怪了,我们明明指定了用户名而且口令也没有错呀,这时我们看一下系统日志上是否有一些有价值的信息:

  auth:couldn'tfinduserroot,test.system.users

  哦,原来是这样,说明连接mongodb时,如果不指定库名,那么会自动连接到test库,但刚才我们新建的用户,都不是在test库上建立的,所以我们需要显示指定需要连接的库名:

  [chinastor.com-root@localhostbin]#./mongo--port27888admin-uroot-ppwd2MongoDBshellversion:1.8.1connectingto:127.0.0.1:27888/admin>showcollections;system.indexessystem.users>usefooswitchedtodbfoo>showcollectionssystem.indexessystem.userst1>

  看到的是root这个用户有所有库的操作权限,那么user1这个用户有什么权限呢我们一试便知:

  [chinastor.com-root@localhostbin]#./mongo--port27888foo-uuser1-ppwd1MongoDBshellversion:1.8.1connectingto:127.0.0.1:27888/foo>showcollections;system.indexessystem.userst1>usetestswitchedtodbtest>showcollectionsSatApr2119:28:25uncaughtexception:error:{"$err":"unauthorizeddb:testlocktype:-1client:127.0.0.1","code":10057}>

  通过结果我们看到,由于user1是在foo库里建立的用户,所以它不具有操作其它数据库,甚至是test库的权限。

看完上述内容,你们掌握如何利用MySQL学习MongoDB中的授权和权限的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: 如何利用MySQL学习MongoDB中的授权和权限

本文链接: https://www.lsjlt.com/news/61386.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用MySQL学习MongoDB中的授权和权限
    如何利用MySQL学习MongoDB中的授权和权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  数据库的安全性是每一个DBA重点关注的部分...
    99+
    2022-10-18
  • mysql的用户权限如何授权
    下面一起来了解下mysql的用户权限如何授权,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql的用户权限如何授权这篇短内容是你想要的。 mysql> grant 权限1,权限2,…...
    99+
    2022-10-18
  • Linux中如何对用户授权和移除sudo权限
    小编给大家分享一下Linux中如何对用户授权和移除sudo权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如你所知,用户可以在 Ubuntu 系统上使用 sud...
    99+
    2023-06-27
  • 如何利用phpmyadmin设置mysql的权限
    小编给大家分享一下如何利用phpmyadmin设置mysql的权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一步:登陆ro...
    99+
    2022-10-18
  • 在MySQL中创建用户和授予权限的方法
    这篇文章给大家分享的是有关在MySQL中创建用户和授予权限的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 如何创建MySQL用户并授予权限?为了实现良好的安全性,...
    99+
    2022-10-18
  • MySQL如何使用GRANT授权某用户浏览和修改表权限操作
    小编给大家分享一下MySQL如何使用GRANT授权某用户浏览和修改表权限操作,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 下面的例子是授权logger用户查...
    99+
    2022-10-18
  • MySQL如何利用DCL管理用户和控制权限
    DCL(Data Control Language):数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。 一、管理用户 1、创建用户 -- 创建用户 CREATE USER '用户名'@'主机名' ...
    99+
    2022-05-30
    MySQL DCL MySQL 管理用户 MySQL 控制权限
  • MySQL中如何添加删除用户和授权
    这篇文章将为大家详细讲解有关MySQL中如何添加删除用户和授权,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面给大家了解一下MySQL中的用户管理,介绍一...
    99+
    2022-10-18
  • 怎样利用MySQL学习MongoDB中的备份和恢复
    这期内容当中小编将会给大家带来有关怎样利用MySQL学习MongoDB中的备份和恢复,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在数据库表丢失或损坏的情况下,备份你...
    99+
    2022-10-18
  • 介绍如何在 MySQL 中创建新用户并授予权限?
    MySQL 是一个开源的关系型数据库管理系统,常用于存储和管理大量的结构化数据。在使用 MySQL 进行数据管理时,为了安全和方便管理,通常需要创建新用户并授予相应的权限。本文将介绍如何在 MySQL 中创建新用户并授予权限的方法。 创建...
    99+
    2023-08-21
    mysql 数据库 服务器
  • MySQL的用户和权限如何管理
    下面讲讲关于MySQL的用户和权限如何管理,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL的用户和权限如何管理这篇文章你一定会有所受益。MySQL的用户账号: 用户名@...
    99+
    2022-10-18
  • DBA应用技巧中如何利用MySQL技能学习MongoDB
    DBA应用技巧中如何利用MySQL技能学习MongoDB,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。(1)、mongorestore恢复...
    99+
    2022-10-18
  • 如何实现MySQL中授权用户的语句?
    如何实现MySQL中授权用户的语句?MySQL是一种广泛使用的关系型数据库管理系统,通过使用授权语句,可以控制用户对数据库的访问权限。在本文中,将介绍如何通过具体的代码示例来实现MySQL中授权用户的语句。在MySQL中,可以使用GRANT...
    99+
    2023-11-08
    MySQL授权 用户语句
  • 如何实现MySQL中授权用户角色的语句?
    在MySQL数据库中,用户需要授予特定的权限来访问和操作数据库中的对象,例如表、视图、存储过程等等。对于大型数据库系统,管理和维护访问和权限变得非常困难,因此引入了用户角色概念。在本文中,我们将介绍如何在MySQL数据库中实现授权用户角色的...
    99+
    2023-11-09
    MySQL 授权 用户角色
  • nginx、php-fpm和mysql的用户权限如何配置
    这篇文章主要介绍了nginx、php-fpm和mysql的用户权限如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nginx、php-fpm和mysql的用户权限如何配置文章都会有所收获,下面我们一起来看...
    99+
    2023-07-02
  • 如何实现MySQL中收回用户权限的语句?
    如何实现MySQL中收回用户权限的语句?在MySQL数据库中,我们经常需要管理用户权限。然而,有时候我们可能需要收回某些用户的权限,以保障数据库的安全性。本文将介绍如何使用具体的代码示例来实现在MySQL中收回用户权限的方法。首先,我们需要...
    99+
    2023-11-08
    权限 语句
  • 如何实现MySQL中查看用户权限的语句?
    MySQL是企业级关系型数据库管理系统,其安全性非常重要。在MySQL中,管理员可以为每个用户分配不同的权限,以保证数据库的安全和可靠性。但是,管理员也需要经常检查和管理用户的权限,以确保他们只能访问他们需要的数据。如何在MySQL中查看用...
    99+
    2023-11-08
    MySQL 语句 查看权限
  • 如何处理PHP开发中的用户认证和授权
    随着互联网的快速发展,网站和应用程序的用户认证和授权变得越来越重要。对于PHP开发者来说,确保用户的身份验证和权限管理是至关重要的。本文将介绍PHP开发中的用户认证和授权的基本概念,并提供具体的代码示例,以帮助读者更好地理解和实践。用户认证...
    99+
    2023-10-21
    PHP开发 授权 用户认证
  • Spring Boot中的权限系统如何利用Spring Security 进行构建
    本篇文章为大家展示了Spring Boot中的权限系统如何利用Spring Security 进行构建,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring Security是一个能够为基于Sp...
    99+
    2023-05-31
    spring boot spring security
  • 如何实现MySQL中查看用户角色权限的语句?
    如何实现MySQL中查看用户角色权限的语句?MySQL是一种流行的关系型数据库管理系统,它具有灵活的权限管理机制。在MySQL中,可以为用户赋予不同的角色,并为每个角色分配特定的权限。本文将介绍如何使用MySQL语句来查看用户的角色权限。在...
    99+
    2023-11-08
    用户角色 MySQL权限 查看语句
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作