hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

MongoDB系列---用户及权限治理02

2019-11-18杂谈搜奇网30°c
A+ A-

MongoDB-——Privilege

 

进修纲要:

  1、用户权限治理

  2、用户操纵  

 

学问回忆:

   本系列上一篇博文我们报告了怎样搭建环境以及设置我们的MongoDB,经由过程搭建环境后我们又进修了怎样经由过程简朴的敕令和设置来启动封闭我们的MongoDB。

 

 

 

 一 用户及权限治理

 

 媒介:

  MongoDB 作为时下最为热点的数据库,那末其平安考证也是必不可少的,不然一个没有考证的数据库暴露出去,任何人可随便操纵,这将是异常风险的。我们能够经由过程运用为MongoDB 建立用户的体式格局来下降风险

 1 MongoDB用户权限列表

 

 

 

2 MongoDB用户运用

2.1 建立DB治理用户

mongodb 有一个用户治理机制,简朴形貌为,有一个治理用户组,这个组的用户是特地为治理普通用户而设的,临时称之为治理员。治理员平常没有数据库的读写权限,只要操纵用户的权限, 因而我们只须要给予治理员userAdminAnyDatabase 角色即可。别的治理员账户必须在 admin 数据库下建立,3.0 版本后没有 admin 数据库,但我们可以手动 use 一个。注:use 敕令在切换数据库时,假如切换到一个不存在的数据库,MongodDB会自动建立该数据库

 

 2.1.1 切换到Admin库

  治理员须要再admin数据库下面建立,所以我们须要切换到admin数据库(3.0版本后没有这个数据库,然则我们运用use admin 会自动为我们建立这个数据库)

 

 

 

2.1.2 检察admin中的用户

我们能够经由过程 db.system.users.find()函数来检察 admin 库中的一切用户信息。

 

如今再admin库中没有用户,所以查无效果 

 

2.1.3 db.createUser 函数

再MongoDB中我们能够用db.createUser({用户信息})函数建立用户

db.createUser({ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ] }); 

1)user:新建用户名

2)pwd:新建用户暗码

3)customData:寄存一些用户相干的自定义数据,我们平常省略该属性。

4)roles:数组范例,设置用户的权限

 

2.1.4 建立治理员用户

我们如今须要在 admin 库中建立一个名为 test的治理员用户,暗码为 test,并为其给予userAdminAnyDatabase权限(忘了权限能够看看上面的图片引见),并经由过程'db'参数指定了它所对应的admin库

db.createUser({user:'test',pwd:'test',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})

建立胜利后我们能够看到以下提醒:

 

 接着我们用db.system.users.find()敕令来检察我们建立的用户信息(要起首进入admin数据库下再运用这条敕令!)

 

 假如准确输入敕令后没有检察到新建立的角色信息,那末我们须要重启MongoDB,然后再去检察(重启就是封闭MongoDB效劳,然后开启MongoDB,遗忘的能够看我们系列的上一篇博文)

就此我们建立角色并给予了个简朴的权限就已ok了。

 

2.1.6 运用权限体式格局启动MongoDB

再默许情况下MongoDB是不开启用户认证的。假如我们增加用户,那末须要开启用户认证机制。经由过程修正mongodb.conf设置文件,再文件中增加auth=true即可(上篇博文设置的基础上)

改完后是这个模样。

 

 然后重启我们的MongoDB效劳(就是封闭再从新开启!)

 

5.1.7 用户认证

由于我们方才设置了以权限的体式格局启动MongoDB,那末我们再进入体系的话就不能直接操纵了,须要举行认证!

假如我们没认证直接操纵敕令(能够举行use 数据库)会报错,没有权限

 

 所以我们须要输入认证函数

花样:
    db.auth('user','pwd')

例如用我们方才建立的test账户
    db.auth('test','test')

牢记:

  我们须要起首进入我们该用户所对应的数据库,不然就会像下面第一条敕令如许,

 

 

 0 代表 失利 

1 代表登录胜利

 

 

2.2 建立普通用户

普通用户由治理员建立。平常须要指定某个数据库来操纵

 2.2.1 需求

  我们建立一个名为day的数据库,给这个数据库增加一个用户,用户名为day,暗码为day。并授与该用户对day数据库举行读写操纵的权限

 

2.2.2 运用治理员用户登录

(假如还坚持方才test账户的状况,那末能够跳过此步骤)

普通用户须要由治理员建立并受权。所以,我们起首做的就是用治理员账户登录数据库。

 

 

 

 

2.2.3 建立day数据库

use敕令举行切换的时刻,假如库不存在则自动建立该数据库

use day

 

 

2.2.4 建立普通用户

依据我们上方的需求来建立。

db.createUser({user:'day',pwd:'day',roles:[{role:'readWrite',db:'day'}]})

 

 

 2.2.5 运用普通用户

翻开一个新的客户端(我这里用的XShell),

 

 由于我们已设置了环境变量,所以我们只须要再恣意目次输入mongo即可启动客户端

 

 

2.2.6 切换到day数据库

由于我们是再day数据库中建立额day用户,所以须要先切换到day库

 

 

2.2.7 登录普通用户

我们起首来认证下。

 

 

 

就此我们的普通用户就已建立胜利了

 

 2.3 更新用户角色

  假如我们须要对已存在的用户的角色做修正,那末我们能够运用db.updateUser()函数来更新用户橘色。注重,该函数须要当前用户具有userAdminAnyDatabase

 2.3.1 更新角色语法花样

db.updateUser( "roles":[{"role":"角色称号"},{"更新项 2":"更新内容"}])

 

2.3.2 需求

  如今test治理员用户具有userAdminAnyDatabase用户治理橘色,我们为该用户增加一个dbAdminAnyDatabase数据库治理角色

 

2.3.3 更新角色

db.updateUser('test',{roles:[{role:'userAdminAnyDatabase',db:'admin'},{role:'dbAdminAnyDatabase',db:'admin'}]})

 

 

 假如没有提醒任何信息则示意更新胜利。退出当前客户端从新衔接即可见效

 

2.3.4 检察用户信息

show usres 敕令

 

 经由过程 show users 敕令检察到test用户的角色已发生了变化,增加了dbAdminAnyDatabase角色权限。

 

 

2.4 更新用户暗码

更新用户暗码的两种体式格局:

1)运用db.updateUser()函数更新暗码,必须有用户治理权限才运用

2)运用db.changeUserPassword()函数更新暗码。必须有用户治理全涌现才运用

 2.4.1 db.updateUser()体式格局更新暗码

  需求:

    运用db.updateUser()函数将test用户的暗码修正为testtest

  语法花样: 

db.updateUser('用户名',{'pwd':'新暗码'})

 

 

 假如未提醒任何信息则示意更新胜利。退出当前客户端从新衔接认证即可。

 

从新运用test用户登录

 

 

2.4.2 db.changeUserPassword() 体式格局更新暗码

 需求:

    运用db.changeUserPassword()函数将test用户的暗码修正为test

  语法花样:

db.changeUserPassword('用户名','新暗码')

 

 假如什么都未提醒则代表更新胜利。退出当前客户端从新衔接认证即可

 

从新运用test用户登录

 

 

就此变动暗码的两种体式格局已完成了。

 

 2.5 删除用户

  经由过程db.dropUser()函数能够删除指定的用户。删除胜利后会返回true。在删除用户时刻须要切换到建立用户所指定的数据库中才够删除。

  注重:须要运用具有userAdminAnyDatabase角色治理员用户才够删除别的用户

2.5.1 需求

我们运用db.dropUser()函数将day用户删除

 

2.5.2 切换数据库

day 用户在day数据库中,所以须要先切换到day数据库中

 

 

 

2.5.3 经由过程函数删除用户

 

 我们能够看到,该函数返回了true,标识删除胜利!

 

 

 

就此我们一样平常操纵权限,治理用户的敕令就已学完了,很死板须要多练喔!

 

 

 

 

 

 

 

 

 

 

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
MongoDB系列---用户及权限治理02

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282192.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>