MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作。
MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录
一、开启 MonogoDB 的权限模式
修改 MongoDB 服务的注册语句,修改加入 --auth 参数,详情见MongoDB 入门之安装篇
"$MONGODB_HOME\bin\mongod.exe" --config "$MONGODB_HOME\mongo.cfg" --install --auth
C:\Windows\System32\sc.exe create MongoDB binPath= "\"$MONGODB_HOME\bin\mongod.exe\" --service --auth --config=\"$MONGODB_HOME\mongo.cfg\"" DisplayName= "MongoDB 2.6 Standard" start= "auto"
或者在mongod.cfg 中添加配置
auth=true
二、用户权限管理
- 创建用户
> db.addUser("user","abc123_")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "user", "roles" : [ "dbOwner" ] }
>可以看到当执行 addUser 命令是出现 wraning,虽然创建成功了,但是 MongoDB 建议使用 createUser。
> db.createUser({
... user:"user",
... pwd:"abc123_",
... roles:[
... {
... role:"dbOwner",
... db:"mydb"
... }
... ]
... })
Successfully added user: {
"user" : "user",
"roles" : [
{
"role" : "dbOwner",
"db" : "mydb"
}
]
}
>如果 MongoDB 开启了权限模式,并且某一个数据库没有任何用户时,在不验证权限的情况下,可以创建一个用户,当继续创建第二个用户时,会返回错误,若想继续创建用户则必须登录。
--16T10::41.904+ Error: couldn't add user: not authorized on mydb to execute command { createUser: "test", pwd: "xxx", roles: [ { role: "dbOwner", db: "mydb" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } } at src/mongo/shell/db.js:1004
> 创建超级管理员
创建超级管理员需要未开启权限模式的情况下执行。如果已开启权限而在 admin 下创建超级管理员,会出现如下错误> db.createUser({
... user:"admin",
... pwd:"admin",
... roles:[
... {
... role:"userAdminAnyDatabase",
... db:"admin"
... }
... ]
... })
--16T10::01.223+ Error: couldn't add user: not authorized on admin to execute command { createUser: "admin", pwd: "xxx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } } at src/mongo/shell/db.js:1004
>关闭权限模式创建超级管理员
> use admin
switched to db admin
> db.createUser({
... user:"admin",
... pwd:"admin",
... roles:[
... {
... role:"userAdminAnyDatabase",
... db:"admin"
... }
... ]
... })
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
>如果使用 addUser 创建超级管理员还必须切换到 admin 数据库。
- 删除用户
> db.dropUser("user")
true
> - 登录
anth 需要登录用户有该数据库的权限> use mydb
switched to db mydb
> db.auth("user","abc123_") >
MongoDB 入门之基础 DCL的更多相关文章
- MongoDB 入门之基础 DDL
此文章主要记录部分主要的 MongoDB 的 DDL 操作. db 查看当前所在的数据库(默认 test) > db test > show dbs 查看当前数据库服务器上的数据库名字 ...
- MongoDB 入门之基础 DML
此文章主要记录部分主要的 MongoDB Collection 的 DML 操作. 文章中的 Collection 名字为 yourColl,每一次操作包含以下两条初始数据 { "_id&q ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
- mongodb入门篇
MongoDB 入门篇 分类: NoSQL, 故障解决 undefined 1.1 数据库管理系统 在了解MongoDB之前需要先了解先数据库管理系统 1.1.1 什么是数据? 数据(英语:data) ...
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- Mongodb FAQ fundamentals(基础篇)
Mongodb FAQ(基础篇),是官方文档的翻译.如有翻译不到之处,还请谅解. 1.Mongdb是什么数据库? mongodb是一个面向文档(document)的数据库,既不支持表连接,也不支持事务 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
- MongoDB入门简介
MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...
随机推荐
- July 9th, Week 28th Saturday, 2016
Every cloud has a silver lining. 山穷水尽疑无路,柳暗花明又一村. Every cloud has a silver lining, that just because ...
- Web前端开发工程师的就业前景
Web前端开发工程师的就业前景 Web前端开发工程师是一个全新的职业,在IT行业真正受到重视的时间不超过5年.因此,大家越来越关心web前端工程师前景怎么样?web前端工程师就业如何?Web前端开发是 ...
- oracle默认配置ora文件位置
unix:$ORACLE_HOME/dbsnt:c:\Oracle\ora81\database create spfile from pfile = '/home/oracle/initora11g ...
- 假期(codevs 3622)
题目描述 Description 经过几个月辛勤的工作,FJ决定让奶牛放假.假期可以在1-N天内任意选择一段(需要连续),每一天都有一个享受指数W.但是奶牛的要求非常苛刻,假期不能短于P天,否则奶牛不 ...
- 零基础十分钟学会用git在coding.net上传(pull)和push
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
- python中统计列表各个元素的个数
- ViewPager部分源码分析一:加载数据
onMeasure()调用populate(),完成首次数据初始化. populate()维护ViewPager的page,包括mItems和mAdapter. populate(): if (cur ...
- CLR via C#(16)--泛型
泛型就像是一个模板,常常定义一些通用的算法,具体调用时再替换成实际的数据类型,提高了代码的可重用性. 一.初识泛型 1. 简单实例 以最常用的FCL中的泛型List<T >为例: stat ...
- 数据结构和算法 – 7.散列和 Hashtable 类
7.1.散列函数 散列是一种常见的存储数据的技术,按照这种方式可以非常迅速地插入和取回数据.散列所采用的数据结构被称为是散列表.尽管散列表提供了快速地插入.删除.以及取回数据的操作,但是诸如查找最大值 ...
- C++ 内联函数笔记
要使用内联函数,必须采取下述措施之一: +在函数声明前加上关键字inline: +在函数定义前加上关键字inline. 通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供原型的地方 ...