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. Build 2017 | 今儿来说说火得不行的认知服务吧(内附微软开发者大会在线峰会报名地址)

    Everybody,新一期的 Build 2017 大会新技术详谈又来了,今天小编给大家带来了一个既智能又有趣的技术,你一定喜欢!不卖关子了,直奔我们本期的主题: [只需几行代码,就能让任何应用更智能 ...

  2. java读取指定package下的所有class

     JAVA如何扫描一个包下面的所有类,并加载到内存中去? spring中有一个<context:component-scan base-package="com.controller& ...

  3. 笨办法学Python(三十四)

    习题 34: 访问列表的元素 列表的用处很大,但只有你能访问里边的内容时它才能发挥出作用来.你已经学会了按顺序读出列表的内容,但如果你要得到第 5 个元素该怎么办呢?你需要知道如何访问列表中的元素.访 ...

  4. April 7 2017 Week 14 Friday

    A good heart is better than all the brains in the world. 聪明绝顶,不如宅心仁厚. A good heart can be useful to ...

  5. Selenium入门6 操作元素,获取元素属性

    取元素的text,属性get_attribute,标签名tag_name 操作元素:send_keys输入,click点击,submit提交,clear清除输入 状态判断:is_display,is_ ...

  6. 好的学习网站和app推荐

    1  W3cschool: http://www.w3school.com.cn/ 菜鸟教程: http://www.runoob.com/ 2 视频学习网站和app:网易云课堂.腾讯课堂.慕课网(h ...

  7. kmeans聚类中的坑 基于R shiny 可交互的展示

    龙君蛋君 2015年5月24日 1.背景介绍 最近公司在用R 建模,老板要求用shiny 展示结果,建模的过程中用到诸如kmean聚类,时间序列分析等方法.由于之前看过一篇讨论kmenas聚类针对某一 ...

  8. css中有些属性的前面会加上“*”或“_”,请问分别表示什么意思?

    给不同的浏览器识别 例如: color{ background-color: #CC00FF; /*所有浏览器都会显示为紫色*/ background-color: #FF0000\9; /*IE6. ...

  9. 调整JVM占用内存空间方法

    JVM默认占用空间为64M 调整方法如下图 在虚拟机参数中调整为80M 调试可以用 Byte[] arr=new Byte[1024*1024*64];

  10. 顺序语句:GOTO和NULL语句

    一 标号和GOTO 1 语法: PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思.语法如下: GOTO label;......<<label>> /*标号是用< ...