1.linux安装mongo

conf文件配置:
配置文件:
dbpath=/home/data/mongodb/mongodb
logpath=/home/data/logs/mongodb.log
port=27017
fork=true
auth=true
#journal=false
#storageEngine=mmapv1
bind_ip=0.0.0.0
2.创建库和授权

2.1、添加一个 userAdminAnyDatabase 用户,这是一个能够管理所有用户的的用户, 类似于超级管理员吧

#打开mongo shell
[root@localhost]# mongo#添加超级管理账号
> use admin #进入admin表
> db.createUser(
{
user:"myadmin",
pwd:"secret",
roles:[{role:"root",db:"admin"}]
}
)
# 查看用户是否创建成功
>show users
# 输出以下内容表示添加成功
{
"_id" : "admin.myadmin",
"user" : "myadmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
>exit
mongodb 有哪些权限:
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
 
read:允许用户读取指定数据库 
readWrite:允许用户读写指定数据库 
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile 
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 
root:只在admin数据库中可用。超级账号,超级权限

2.2、验证用户登录

[root@localhost]# mongo# 注意: 这里要验证刚才创建的用户,必须要先切换到admin库
>use admin
>show dbs
# 这里会报错2016-12-11T13:11:01.981+0800 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:23:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:53:1
shellHelper.show@src/mongo/shell/utils.js:700:19
shellHelper@src/mongo/shell/utils.js:594:15
@(shellhelp2):1:1
 
# 验证用户
>db.auth('myadmin', 'secret')
1 # 输出1 表示验证成功# 再次执行
>show dbs
# 这次就会列出所有数据库

2.3、创建数据库

语法: 
use DATABASE 语句的基本语法如下:
use DATABASE_NAME
示例: 
如果想创建一个数据库名称 , 那么 use DATABASE 语句如下:
>use mydb
switched to db mydb
 
要检查当前选择的数据库使用命令 db
>db
mydb
 
如果想检查数据库列表,使用命令show dbs
>show dbs
local 0.78125GB
test 0.23012GB
 
创建的数据库mydb 列表中是不存在的。要显示的数据库,需要把它插入至少一个文件。
>db.movie.insert({"name":"aaa"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

2.4、为单个数据库添加管理用户

# 切换到要添加用户的数据库中
>use mydb
>db.createUser({
user: 'test',
pwd: 'test123',
roles: [ { role: "readWrite", db: "mydb" } ]
})
Successfully added user: {
"user" : "test",
"roles" : [
{
"role" : "readWrite",
"db" : "mydb"
}
]
}
#返回fuccessfully 表示成功了~~~# 查看刚才创建的用户
show users

mongo创建数据库和用户的更多相关文章

  1. oracle创建数据库和用户

    以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在 ...

  2. MySQL创建数据库与用户

    root远程访问授权 mysql> SHOW DATABASES; +--------------------+ | Database           | +---------------- ...

  3. mysql 创建数据库,添加用户,用户授权

    一.创建mysql数据库 1.创建数据库语法 --创建名称为"testdb"数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb ...

  4. Mysql创建数据库以及用户分配权限

    一.创建mysql数据库 1.创建数据库语法 --创建名称为“testdb”数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb DEFAULT C ...

  5. 使用命令在navicat中创建数据库和用户

    一.用高权限账号登录,即创建连接 二.选择高权限用户右键,调出命令窗口 三.使用sql语句创建数据库 create database 数据库名 DEFAULT CHARACTER SET gbk CO ...

  6. 【转载】Oracle创建数据库和用户

    以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在 ...

  7. mysql创建用户和创建数据库赋值用户操作权限

    mysql 进入mysqldb SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; ...

  8. centos7下创建数据库和用户

    首先需要在centos系统下安装好mysql,这个我已经安装好了,这里就不把过程贴出来了. 第一步:使用root用户登录到mysql数据库: 第二步:创建一个mysql数据库.当第一步登录成功后,便会 ...

  9. mysql创建数据库和用户

    create database sonar character set utf8 collate utf8_general_ci; flush privileges; grant all privil ...

随机推荐

  1. HCNA配置接口IP地址

    1.拓扑图 2.R1配置 The device is running! <Huawei>sys <Huawei>system-view Enter system view, r ...

  2. leetcode: 贪心

    1. jump game Given an array of non-negative integers, you are initially positioned at the first inde ...

  3. Altium_Designer17-PCB-如何重新定义板子外形

    当我们绘制完电路图.完成PCB布局和布线后,我们会遇到下面这种情况: 发现什么了吗?那么大的黑框框,我们只用到了很少的一部分.那有啥?告诉你黑框框的大小就是你最后将要印刷的PCB板的实际大小!大家都知 ...

  4. 转载:手把手教你搭建 vue 环境

    以下内容转自: https://segmentfault.com/a/1190000008922234 第一步 node环境安装 1.1 如果本机没有安装node运行环境,请下载node 安装包进行安 ...

  5. POJ-2139 Six Degrees of Cowvin Bacon---Floyd

    题目链接: https://vjudge.net/problem/POJ-2139 题目大意: 给定一些牛的关系,他们之间的距离为1. 然后求当前这只牛到每只牛的最短路的和,除以 n - 1只牛的最大 ...

  6. CPU的段寄存器

    http://www.cnblogs.com/tolimit/p/4775945.html?utm_source=tuicool&utm_medium=referral CPU的段寄存器 在C ...

  7. 单源最短路模板(dijkstra)

    单源最短路(dijkstra算法及堆优化) 弱化版题目链接 n^2 dijkstra模板 #include<iostream> #include<cstdio> #includ ...

  8. HTTP head meta

    HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应.就整个网络资源传 ...

  9. JavaEE 面试题总结

    一. JDBC 4 1. Java中访问数据库的步骤 4 2. Statement,PreparedStatement,CallableStatement的功能.特点. 4 3. 如何利用JDBC的A ...

  10. ES6初识-Decorator

    开始先按照个插件 npm install babel-plugin-transform-decorators-lagacy --save-dev 1.扩充和修改类的行为 2.修改的行为@readonl ...