MongoDB数据库用户名和密码的设置
首先是对MongoDB用户和权限的设置,如果不设置用户的话,直接使用mongo命令就可以进入客户端shell界面进行操作了,但是如果没有设置用户的话,总感觉少了点什么,于是经过半天的查找和实践,差不多把用户和权限弄明白了。总结如下:
如果按照以下这个指令安装的话:
mongod --install --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log"
如下:
c:\Program Files\mongodb\bin>mongod --install --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log"
Fri Apr 05 13:47:43.164
Fri Apr 05 13:47:43.168 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Fri Apr 05 13:47:43.169
Fri Apr 05 13:47:43.169 Trying to install Windows service 'MongoDB'
Fri Apr 05 13:47:43.170 There is already a service named 'MongoDB', aborting
c:\Program Files\mongodb\bin>net start MongoDB
Mongo DB 服服务务已已经经启启动动成成功功。。
c:\Program Files\mongodb\bin>mongo
MongoDB shell version: 2.4.1
connecting to: test
Server has startup warnings:
Fri Apr 05 13:48:02.516 [initandlisten]
Fri Apr 05 13:48:02.516 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Apr 05 13:48:02.516 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Apr 05 13:48:02.516 [initandlisten] ** Note that journaling defaults to off for 32 bit and is currently off.
Fri Apr 05 13:48:02.516 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Fri Apr 05 13:48:02.516 [initandlisten]
> show dbs
admin (empty)
local 0.03125GB
>
可以看到有两个默认的数据库admin和local
实例1:创建一个用户名为root,密码为admin的用户,如下:
> use admin
switched to db admin
> db.addUser("root","admin")
{
"user" : "root",
"readOnly" : false,
"pwd" : "bde0d84f6749c235a6b4e36d945eb666",
"_id" : ObjectId("515e662430d89f61f6991c91")
}
> show collections
Fri Apr 05 13:50:36.685 JavaScript execution failed: error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 16550
} at src/mongo/shell/query.js:L128
>
说明:使用以上指令show collections的时候,发现报错了。是因为没有权限。做如下操作:
> db.auth("root","admin");
1
说明:返回1表示验证成功了,返回0表示验证失败。
此时,输入以下指令:show collections则可以看到admin下的集合了。
> show collections
system.indexes
system.users
> db.system.users.find()
{ "_id" : ObjectId("515e662430d89f61f6991c91"), "user" : "root", "readOnly" : false, "pwd" : "bde0d84f6749c235a6b4e36d945eb666" }
>
实例2:在用户名为root,密码为admin的用户下创建一个student数据库,并在student数据库中创建一个stu的集合并插入一个文档,如下:
> use student
switched to db student
> db.stu.insert({"name":"maoyuanjun","age":25,"sex":"male"})
> db.stu.find()
{ "_id" : ObjectId("515e676630d89f61f6991c92"), "name" : "maoyuanjun", "age" : 25, "sex" : "male" }
退出服务器,重新登陆如下:
c:\Program Files\mongodb\bin>mongo
MongoDB shell version: 2.4.1
connecting to: test
> show dbs
Fri Apr 05 13:58:05.420 JavaScript execution failed: listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" }
at src/mongo/shell/mongo.js:L46
出错原因:是没有权限。则先判断是否有权限,如下:
> use admin
switched to db admin
> db.auth("root","admin")
1
> show dbs
admin 0.0625GB
local 0.03125GB
student 0.0625GB
>
这时,我们可以看到用户root,密码admin的用户下多了一个student数据库。
实例3:在创建一个用户
c:\Program Files\mongodb\bin>mongo
MongoDB shell version: 2.4.1
connecting to: test
> use admin
switched to db admin
直接添加用户会报错:
> db.addUser("test","123456")
Fri Apr 05 14:01:31.404 JavaScript execution failed: error: { "$err" : "not authorized for query on admin.system.users", "code" : 16550 } at src/mongo/shell/query.js:L128
做权限的判断:
> db.auth("root","admin");
1
> use admin
switched to db admin
> db.addUser("test",123456)
{
"user" : "test",
"readOnly" : false,
"pwd" : "c8ef9e7ab00406e84cfa807ec082f59e",
"_id" : ObjectId("515e68e2be252e81c5dee198")
}
> show collections
system.indexes
system.users
> db.system.users.find()
{ "_id" : ObjectId("515e662430d89f61f6991c91"), "user" : "root", "readOnly" : fa
lse, "pwd" : "bde0d84f6749c235a6b4e36d945eb666" }
{ "_id" : ObjectId("515e68e2be252e81c5dee198"), "user" : "test", "readOnly" : fa
lse, "pwd" : "c8ef9e7ab00406e84cfa807ec082f59e" }
>
MongoDB数据库用户名和密码的设置的更多相关文章
- MongoDB 添加用户名和密码
MongoDB 添加用户名和密码 我用的是 mongodb3.6,如果没有的话先安装. sudo apt install mongodb 终端输入mongo,首先添加管理用户, show dbs // ...
- cassandra用户名和密码的设置
设置Cassandra使用用户名和密码验证的步骤如下: 1.修改${CASSANDRA_HOME}/conf/cassandra.yaml,把authenticator: AllowAllAuthen ...
- 修改oralce数据库用户名和密码
首先以sys用户登录数据库 一.修改用户名 查到到所需修改用户名称的用户需要:select user#,name from user$;(例如查到有一个normal的用户对应的user#=61) 修改 ...
- 修改oracle数据库用户名和密码
第一步:连接数据库 使用ssh工具以root身份连接服务器, 然后切换到oracle用户:su - oracle(回车) 使用sqlplus连接数据库:sqlplus /nolog(回车) 以管理员身 ...
- DB 从zl.xml中导入数据库用户名及密码等!
package com.dy.java; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- window系统中 mongodb创建用户名和密码
use admindb.createUser({user:"root",pwd:"root",roles:[{"role":"us ...
- mongodb设置用户名和密码
需求:我们需要在一个mongodb上面新建两个数据库,每个数据库的用户名和密码不一样,讲道理来说我们直接设置admin,就可以控制所有的数据库,不过用起来总是感觉有各种问题,目前还不太熟悉mongod ...
- spring boot 配置文件加密数据库用户名/密码
这篇文章为大家分享spring boot的配置文件properties文件里面使用经过加密的数据库用户名+密码,因为在自己做过的项目中,有这样的需求,尤其是一些大公司,或者说上市公司,是不会把这些敏感 ...
- 使用navicat 使用IP、用户名、密码直接连接linux服务器里面的数据库
一般新申请的服务器,没有开通3306端口的吧,反正我遇到的,要用Navicat去连接linux下的数据库,都必须填写两个地方的信息,才能链接成功. 如果想要只通过填写ip还有数据库用户名还有密码就可以 ...
随机推荐
- 用于后台管理的列表数据控件:DataGrid和Select
常听人说不喜欢javascript.然而我一个一直用C#做后端的人,最喜欢的编程语言就是javascript了,我接收它的优点,也接收它的缺点! 前段时间接触过easyui,用过里面的DataGrid ...
- 4年,如何从草根成长成为CTO-(第一篇)
茫然的求索 那一年,刚好经济危机,毕业了.经过了很长时间的“网上海投”而杳无音讯之后,终于发现“经济危机真的和自己有点关系了” ,曾经以为经济危机和自己巴刚子打不着. 拿着简历,开始到处去跑招聘市场, ...
- NanUI for Winform发布,让Winform界面设计拥有无限可能
如今,尽管WPF.UWP大行其道,大有把Winform打残干废的趋势.但是还是有那么一波顽固不化的老家伙们固守着Winform,其中就包括我. 好吧,既然都说Winform做得软件不如WPF界面美观效 ...
- jenkins中使用tfs插件做增量的版本发布部署
一 配置介绍 使用jenkins的tfs插件进行,源码的下载,编译,打包的操作,然后使用windows的批处理命令,在局域网内(或者本机)把打包的release包,删除掉web.config,然后靠配 ...
- javascript严格模式
设立"严格模式"的目的,主要有以下几个: 1. 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; 2. 消除代码运行的一些不安全之处,保证代码运行的安全: ...
- JFreechart在linux下不显示及中文乱码问题
一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库 ...
- 如何在一个MyEclipse2014GA配置多个Tomcat8.X系列的应用服务器,同时运行
1.我下载了两个版本的Tomcat8.X的,一个Tomcat8.0.17和Tomcat8.0.20. 2.分别更改对应目录下的server.xml. 第一处要改的地方: <Server port ...
- Lind.DDD.UoW~方法回调完成原子化操作
回到目录 本文来自于实践中的不足 在最近开始过程中,遇到了一个问题,之前设计的工作单元UoW只支持Insert,Update,Delete三种操作,即开发人员可以将以上三种操作同时扔进工作单元,由工作 ...
- Sublime Text 3 快捷键精华版
Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格 ...
- HIVE 在执行大量数据JOIN的时候,容易产生内存不足的情况
情况 很多时间遇到 "Caused by: java.lang.OutOfMemoryError: Java heap space" Caused by: java.lang.Ou ...