首先,我们先对mongodb 数据库的权限做一点说明:

1 默认情况下,mongodb 没有管理员账号

2 只有在 admin 数据库中才能添加管理员账号并开启权限

3 用户只能在所在的数据库中登录,包括管理员账号

4 管理员可以管理所有数据库,但不能直接管理,需要在 admin 里认证后才能

一、设置管理员账号

ssh 登录服务器,执行:

// 开启ubuntu上的数据库
sudo mongod service start // 使用shell
mongo --port 19999 // 切换到 admin 数据库
use admin // 创建管理员 fayin
db.createUser({user: 'fayin', pwd: 'fayin@39.108', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]}) // 为账号授权,返回 1 表示成功
db.auth('fayin', 'fayin@39.108')

二、设置单数据库用户权限

接着上一个步骤,我们分别为不同的数据库创建不同的用户角色。注意:每次创建新的用户之前,需要use admin db.auth('fayin', 'fayin@39.108').


// 创建用户 fayin_blog 对数据库 vueBlog 拥有读写权限。
use vueBlog db.createUser({user: 'fayin_blog', pwd: 'fayin_blog@39.108', roles: [{
role: 'readWrite',
db: 'vueBlog'
}]) // 创建用户 fayin_blog_read 对数据库 vueBlog 拥有读权限。
use vueBlog db.createUser({user: 'fayin_blog_read', pwd: 'fayin_blog_read@39.108', roles: [{role: 'read',db: 'vueBlog'}])

三、修改配置文件,开启数据库登录验证

sudo vi /etc/mongod.conf

找到 security 项,键入:

security
authorization: 'enabled'

保存并退出,重启mongodb:sudo service mongod restart

四、重新登录数据库

当重启生效后,我们再次使用数据库,会报错:not authorized on admin to execute command ,所以,我们需要先登录 admin 数据库:即使用哪个数据库之前,需要先对用户进行授权。

use admin

db.auth('fayin', 'fayin@39.108')

ubuntu 中 mongodb 数据读写权限配置的更多相关文章

  1. Ubuntu中MongoDB安装

    在Ubuntu中MongoDB有时候启动不起来,可以参考以下方法从新安装: 1.导入包管理系统使用的公钥 Ubuntu 的软件包管理工具(即dpkg和APT)要求软件包的发布者通过GPG密钥签名来确保 ...

  2. python中在ubuntu中安装虚拟环境及环境配置

    python中在ubuntu中安装虚拟环境及环境配置 1.升级python包管理工具pip pip install --upgrade pip 备注:当你想升级一个包的时候 `pip install ...

  3. mongodb安装与权限配置

    mongodb下载地址:官方下载IDE工具:Robo 3T:官方下载 windows系统要求64位,最低2g内存,推荐8g内存及以上 安装过程没有需要配置的地方,直接下一步到结束,如果想要方便可以在环 ...

  4. Ubuntu设置目录的读写权限(Linux命令chmod 777 dirName)

    更改文件所有者 sudo chown system_username /location_of_files_or_folders 更改文件的权限 鼠标右按钮点击文件/目录 -> 属性 权限 分页 ...

  5. Ubuntu 中sendmail 的安装、配置与发送邮件的具体实现

    一.安装 ubuntu中sendmail函数可以很方便的发送邮件,ubuntu sendmail先要安装两个包. 必需安装的两个包: 代码  sudo apt-get install sendmail ...

  6. OA项目实战学习(7)——初始化数据&权限配置显示

    详细有哪些功能: 初始化数据 权限数据. 超级管理员. Installer.java package cn.xbmu.oa.install; import javax.annotation.Resou ...

  7. Ubuntu 中 java 环境 (sunjdk) 的配置 (附详细说明)

    暑假以来为了鼓捣双系统废了很大的劲儿,本来一股脑想装 CentOS,无奈怎么处理分区引导都不能成功地与 Win8 共存,最终用 Ubuntu 一句 "检测到系统上有 Windows Boot ...

  8. Environment中针对的读写权限判断

    Android应用开发中,常使用Environment类去获取外部存储目录,在访问外部存储之前一定要先判断外部存储是否已经是可使用(已挂载&可使用)状态,并且需要在AndroidManifes ...

  9. Ubuntu中Nginx的安装与配置

    原文地址:http://www.cnblogs.com/languoliang/archive/2013/04/01/nginx.html 1.Nginx介绍 Nginx是一个非常轻量级的HTTP服务 ...

随机推荐

  1. apache的80端口被占用

    1.netstart -ano | findstr "80":查看80端口是否被占用,并找出对应的pid 2.关掉pid对应的进程

  2. 深入浅出 JMS(三) - ActiveMQ 安全机制

    深入浅出 JMS(三) - ActiveMQ 安全机制 一.认证 认证(Authentication):验证某个实体或者用户是否有权限访问受保护资源. MQ 提供两种插件用于权限认证: (一).Sim ...

  3. oracle执行多个pl/sql块

    DECLARE    V_SQL_DROP_TABLE   VARCHAR2(50) := 'DROP TABLE MY_TEST2';    V_SQL_CREATE_TABLE VARCHAR2( ...

  4. C# 如何操作串口

    1.首先要引用  System.IO.Ports using System; using System.Collections.Generic; using System.ComponentModel ...

  5. 2018.09.16 bzoj1086: [SCOI2005]王室联邦(贪心)

    传送门 就是给树分块. 对于一个节点. 如果它的几棵子树加起来超过了下限,就把它们分成一块. 这样每次可能会剩下几个节点. 把它们都加入栈中最顶上那一块就行了. 代码: #include<bit ...

  6. StackView实现叠加在一起的图片循环移动像循环队列一样

    MainActivity.java public class MainActivity extends Activity {   StackView stackView; int[] imageIds ...

  7. centos下安装visual studio code出现can't find libXss.so.1,出现这在类似怎么查找相关包

    在安装visual studio code时候.出现libXss.so.1被依赖,这个so文件要查看是属于那个包,通过此命令repoquery --nvr --whatprovides libXss. ...

  8. python-optparse模块给脚本增加参数选项

    import optparse parser = optparse.OptionParser('[-] Usage %prog '+ '-H <RHOST[s]> -l [-p -F ]' ...

  9. follow me

    IM InfoSphere Information Server for Data Integration Fundamentals Bootcamp 7月15日 5 北京 IM InfoSphere ...

  10. 用Java取指定时区的时间 北京时间,纽约时间,班加罗尔时间

    /** * 取北京时间 * @return */ public static String getBeijingTime(){ return getFormatedDateString(8); } / ...