MongoDB初了解——用户权限
因为目前有一个试验性的项目想要使用NoSQL,而MongoDB在工作中有一定的接触,所以这个项目打算使用MongoDB,而在真正从下载到安装到使用的时候发现了不少的知识点,以此作为记录。
#mongodb config file
dbpath=/Users/reesemonica/mongodb/data/db
logpath=/Users/reesemonica/mongodb/mongod.log
logappend=true
fork=true
auth=true
Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "command listDatabases requires authentication",
"code" : 13,
"codeName" : "Unauthorized"
}
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
} )
创建用户的命令的各个参数基本上通过参数名就知道是做什么的,其中roles.db参数是指定用户的数据库,admin数据库虽不知道它具体做什么的,但既然创建超级用户需要在这里,想必就是存储一些用户信息的。
在创建好超级用户后,此时还不能执行show dbs命令,还需要做一次权限认证db.auth('root','root'),返回1表示认证成功,此时再输入show dbs会回显以下:
admin 0.000GB
config 0.000GB
local 0.000GB
WriteCommandError({
"ok" : 0,
"errmsg" : "not authorized on recommended to execute command { insert: \"recommended\", ordered: true, lsid: { id: UUID(\"5b1b337e-831a-4fb2-b90c-d6d0b347ad79\") }, $db: \"recommended\" }",
"code" : 13,
"codeName" : "Unauthorized"
})
这意思还是没有授权,但我明明不是已经创建了一个超级用户了吗,MySQL不就能通过一个超级用户畅通无阻吗。
事实是,MongoDB的用户权限和数据库是绑定的。也就是创建一个新的数据库,并在数据库中插入数据的正确操作应该是需要创建与之对应的用户,下面退出MongoDB命令行模式,重新进入:
- 数据库和用户是绑定的,光创建一个超级用户并不能操作在其他新建的数据库中插入数据
- 在切换数据库时,先切换认证用户,不然会出现too many users are authenticated的错误。
以上是学习MongoDB所积累到的第一个知识点**用户权限**,通过命令行模式不足以直观地展示数据,可使用其他可视化工具对MongoDB进行操作,例如Robo 3T。
这是一个能给程序员加buff的公众号
MongoDB初了解——用户权限的更多相关文章
- mongodb副本集用户权限设置
mongodb副本集用户权限设置 用户权限参考文章 一:先看看MongoDB中用户的角色说明 read : 数据库的只读权限,包括: aggregate,checkShardingIndex, ...
- MongoDB 3.X 用户权限控制
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- mongodb 3.2 用户权限管理配置
使用mongodb 有段时间了,由于是在内网使用,便没有设置权限,一直是裸奔. 最近有时间,研究了下mongodb 3.2 的用户权限配置,网上有许多用户权限配置的文章,不过大多是之前版本,有些出入, ...
- MongoDB下配置用户权限
MongoDB默认设置为无权限訪问限制 注:研究成果基于Windows平台 在部署mongodb成功后.进入控制台: 输入命令:mongod use admin,你会发现该DB下包括了一个syste ...
- MongoDB用户权限认证
关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...
- 如何对MongoDB 3.2.7进行用户权限管理配置
转自:https://www.jianshu.com/p/a4e94bb8a052 上次写了一篇在CentOS7上源码安装MongoDB 3.2.7,完成了MongoDB 3.2.7的安装,但需要应用 ...
- 生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)
本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/8,欢迎留言. 安装软件包:mongodb-linux-x86_64-3.4.1.tgz ...
- [MongoDB] 用户权限管理
在新环境按照原来的步骤新装了MongoDB,结果出现了一些错误,才发现版本升到了2.6.1,用户权限相关的内容全部改掉了. 现在使用Role来管理用户,有一些内置的Role,也可以自定义Role. 内 ...
- mongodb用户权限管理(二)
数据库 分配用户权限 有了创建语法,和参数说明,接下来开始实践. 注意,还有一点,账号是跟着数据库绑定的,在那个库里授权,就在那个库里验证(auth) 否则会失败 创建 账号管理授权权限 的账号 &g ...
随机推荐
- input type=passoord 密码框的明密文(显示和隐藏) 显示
最近在写一个新的项目,从头开始写,所以就要从注册登录开始做起.以前写登录注册模块的时候,无外乎给input框一个type=”password”就可以了,近期因为要涉及到显示隐藏状态的切换. 样式代码如 ...
- Dubbo+zookeeper构建高可用分布式集群(二)-集群部署
在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...
- 【计算机篇】Office 2016 for Mac 安装和破解教程
免责声明 请亲们支持正版.这教程旨在分享,供参考. 为啥写这篇文章 对于大多数使用 Mac 的用户而言,虽然有苹果自家的办公软件,但功能少,用起来不舒服.而 Offer 2016 版的需要登录激活购买 ...
- [Swift]LeetCode581. 最短无序连续子数组 | Shortest Unsorted Continuous Subarray
Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...
- [Swift]LeetCode640. 求解方程 | Solve the Equation
Solve a given equation and return the value of x in the form of string "x=#value". The equ ...
- Hystrix概念设计
1. Hystrix概念设计 1.1. 大纲 1.2. 基本的容错模式 1.3. 断路器模式 1.4. 舱壁隔离模式 1.5. 容错理念 凡事依赖都可能失败 凡事资源都有限制 网络并不可靠 延迟是应用 ...
- Android开发:修改eclipse里的Android虚拟机路径
一.发现问题: 今天打开电脑发现C盘缩了不少,这才意识到:eclipse里配置的安卓虚拟机默认放在了C盘里. 当然,在不同的电脑上可能路径有所不同,我的默认路径是:C:\Users\lenovo\.a ...
- 面试题:反转字符串(leetcode344)
编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 你可以 ...
- 十分钟通过 NPM 创建一个命令行工具
大过年的,要不要写点代码压压惊?来花十分钟学一下怎么通过 NPM 构建一个命令行工具. 写了一个小 demo,用于代替 touch 的创建文件命令 touchme ,可以创建自带“佛祖保佑”注释的文件 ...
- Python内置函数(36)——iter
英文文档: iter(object[, sentinel]) Return an iterator object. The first argument is interpreted very dif ...