mongodb数据库添加权限及简单数据库命令操作笔记

加固mongodb建议:修改数据库默认端口,添加数据库访问权限:

  • 启动数据库(裸奔):C:\mongodb\bin>mongod --dbpath C:\MongoDB\data(同时用--dbpath指定数据存放地点为“db”文件夹。)
  • 数据库管理:mongo.exe
  • 新版的MongoDB已经不支持addUser方法了,改成createUser了。

启动数据库的注意事项:

  • 指定端口启动数据库(不需要认证):E:\mongodb\bin>mongod --dbpath E:\MongoDB\data --port=27017
  • 指定端口启动数据库(需要认证):E:\mongodb\bin>mongod --auth --dbpath E:\MongoDB\data  --port=27017

登录数据库:(name:root;pwd:root)

本地登录:

  • 指定端口登录数据库:C:\mongodb\bin>mongo --port=27017
  • 用户名密码登录:C:\mongodb\bin>mongo -u root -p root --port=27017
  • 登陆到db1数据库:C:\mongodb\bin>mongo db1 -u root -p root --port=27017

远程登录:

  • 连接远程数据库:E:\mongodb\bin>mongo ip:27017/db -u root -p root

一些命令:

  • show dbs (或者使用show databases  查看当前数据库情况,默认在test下)
  • use test  如果test不存在则创建test数据库,show dbs查看不到,需要插入数据
  • db.test.insert({"aa":"11"})
  • db 查看当前连接在哪个数据库(db.test2.insert()会在当前数据库下创建test2数据表并插入数据)
  • db.test.find() 查看当前数据库的test数据表数据

创建一个用户名和密码为root的管理员(创建在当前db下)

roles角色,指定角色后就有相应权限,一般在admin里定义角色在其他地方用

  • db.createUser({ user: "root",pwd: "root",customData:{name:"root"},roles:[{ role: "userAdminAnyDatabase",db: "admin" }]})
  • db.createUser({ user: "root4",pwd: "root",customData:{name:"root"},roles:[]})

简版:

  • db.createUser({ user: "root5",pwd: "root",customData:{},roles:[]})

创建完后登陆

1.直接命令登录;

2.mongo后缀加用户名密码登录;

3.mongo远程登录;

4.robomongo可视化管理软件登录。

  • db.auth(‘root‘,‘root‘)

修改用户密码

  • use admin
  • db.changeUserPassword("username", "xxx")

查看用户信息

  • db.runCommand({usersInfo:"userName"})

修改密码和用户信息

  • db.runCommand( { updateUser:"username", pwd:"xxx", customData:{title:"xxx"} })

给数据库添加访问权限:(auth)

解决步骤:

1)不带--auth参数启动数据库,所以不需要帐号即可连上MongoDB。

2)新建一个角色,比如叫 sysadmin,需要先切换到admin库进行如下操作:

> use admin

switched to db admin

> db.createRole({role:‘syadmin‘,roles:[],

privileges:[

{resource:{anyResource:true},actions:[‘anyAction‘]}

]})

3)然后,新建一个用户,使用这个角色,注意,这个角色的db是admin,操作如下:

> use woplus

switched to db woplus

> db.createUser({

user:‘root‘,

pwd: ‘root‘,

roles:[

{role:‘syadmin‘,db:‘admin‘}

]})

好了现在重启启动数据库带上  --auth 就可以正常执行了

Node服务器端配置:

var mongoose = require(‘mongoose‘)

var opts = {  server: {  socketOptions: { keepAlive: 1 }    }   }

//  连接地址

mongoose.connect(‘mongodb://uname:[email protected]:27017/db‘, opts);

var db = mongoose.connection;

//在控制台上输出

db.on(‘error‘,()=>{  console.error(‘连接数据库错误‘)})

db.once(‘open‘, () => {  console.log(‘连接成功!‘)})

db.help()

DB methods:

1)      db.adminCommand(nameOrDocument) - switches to ‘admin‘ db, and runs command [ just calls db.runCommand(...) ]

2)      db.auth(username, password)

3)      db.cloneDatabase(fromhost)

4)      db.commandHelp(name) returns the help for the command

5)      db.copyDatabase(fromdb, todb, fromhost)

6)      db.createCollection(name, { size : ..., capped : ..., max : ... } )

7)      db.createView(name, viewOn, [ { $operator: {...}}, ... ], { viewOptions } )

8)      db.createUser(userDocument)

9)      db.currentOp() displays currently executing operations in the db

10)  db.dropDatabase()

11)  db.eval() - deprecated

12)  db.fsyncLock() flush data to disk and lock server for backups

13)  db.fsyncUnlock() unlocks server following a db.fsyncLock()

14)  db.getCollection(cname) same as db[‘cname‘] or db.cname

15)  db.getCollectionInfos([filter]) - returns a list that contains the names and options of the db‘s collections

16)  db.getCollectionNames()

17)  db.getLastError() - just returns the err msg string

18)  db.getLastErrorObj() - return full status object

19)  db.getLogComponents()

20)  db.getMongo() get the server connection object

21)  db.getMongo().setSlaveOk() allow queries on a replication slave server

22)  db.getName()

23)  db.getPrevError()

24)  db.getProfilingLevel() - deprecated

25)  db.getProfilingStatus() - returns if profiling is on and slow threshold

26)  db.getReplicationInfo()

27)  db.getSiblingDB(name) get the db at the same server as this one

28)  db.getWriteConcern() - returns the write concern used for any operations on this db, inherited from server object if set

29)  db.hostInfo() get details about the server‘s host

30)  db.isMaster() check replica primary status

31)  db.killOp(opid) kills the current operation in the db

32)  db.listCommands() lists all the db commands

33)  db.loadServerScripts() loads all the scripts in db.system.js

34)  db.logout()

35)  db.printCollectionStats()

36)  db.printReplicationInfo()

37)  db.printShardingStatus()

38)  db.printSlaveReplicationInfo()

39)  db.dropUser(username)

40)  db.repairDatabase()

41)  db.resetError()

42)  db.runCommand(cmdObj) run a database command.  if cmdObj is a string, turns it into { cmdObj : 1 }

43)  db.serverStatus()

44)  db.setLogLevel(level,<component>)

45)  db.setProfilingLevel(level,<slowms>) 0=off 1=slow 2=all

46)  db.setWriteConcern( <write concern doc> ) - sets the write concern for writes to the db

47)  db.unsetWriteConcern( <write concern doc> ) - unsets the write concern for writes to the db

48)  db.setVerboseShell(flag) display extra information in shell output

49)  db.shutdownServer()

50)  db.stats()

51)  db.version() current version of the server



春雷原创转载请注明:http://www.cnblogs.com/chunlei36

时间: 2024-10-10 22:58:15

mongodb数据库添加权限及简单数据库命令操作笔记的相关文章

每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作

准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 > show dbs demo 0.078GB local 0.078GB myDatabase 0.078GB myTest 0.078GB > use myTest switched to db myTest > show collections persons system.indexes

为mongodb数据库添加安全账户

最近的数据库服务器有些不稳定,遇到了黑客的骚扰,mongodb的安全存在一些漏洞.首要任务是给数据库添加账号.之前大家都习惯于mongodb的不加安全账号和密码来连接数据库,那么问题是添加了安全账户后,有些是要改变调整的. 我使用的是mongodb 3.0版本.mongodb创建账户命令的示例如下: use admin db.createUser( { user: "admin", pwd: "12345678", roles: [ { role: "us

MongoDB数据库中更新与删除数据

在MongoDB数据库中,可以使用Collection对象的update方法更新集合中的数据文档.使用方法如下所示: collection.update(selector, document, [options], [callback]); selector参数:该参数值为一个对象,用于查询需要更新的数据文档.该参数值指定的方法和我们前面使用的find方法中使用的selector参数值的指定方法完全相同. document参数:该参数值为一个对象,用于指定用来更新的数据文档. options参数

MongoDb的副本集搭建教程(个人操作笔记)

很多公司都在用MongoDb ,一直没有时间研究,最近好好的整了一下,做下笔记,直接上操作步骤,关于Mongodb的理论知识可以搜索其他资料,也可以联系我索取 mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式,主从模式其实就是一个单副本的应用,没有很好的扩展性和容错性.而副本集具有多个副本保证了容错性,就算一个副本挂掉了还有很多副本存在,并且解决了上面 第一个问题“主节点挂掉了,整个集群内会自动切换”.难怪mongoDB官方推荐使用这种模式.我们来看看mongoDB副本集的

MongoDB之数据库命令操作(二)

现在详细学习一下mongodb的数据库操作. 查询语句 db.xxx(集合name).find() # 查询 db.xxx(集合name).findOne() # 只返回一个 db.xxx(集合name).findOne().pretty() # 返回结果格式化 # 比较运算符 等于,默认是等于判断,没有运算符,如:db.xxx(集合name).find({name:"xiao"}) 小于$lt,如:db.xxx(集合name).find({age:{$lt:30}}) 小于或等于$l

Android数据库表的创建和数据升级操作

之前的文章有提到,可以在xml文件中配置数据库信息:http://www.cnblogs.com/wenjiang/p/4492303.html,现在就讲如何利用这些信息类构建数据库. xml文件大概如下: <?xml version="1.0" encoding="utf-8"?> <database> <!-- 数据库名称 --> <dbname value="zwb.db"></dbna

yii 数据库添加,修改,删除相关操作总结

yii中关于数据信息的添加数据,修改数据,删除数据的相关操作,刚刚学习没几天,仅记录了一些,以后慢慢再充实,有需要的朋友可以看看. 添加数据的方法 (1)save 方法(对象形式操作) $user=new User;$user->username='phpernote';$user->password='123456';if($user->save()>0){    echo '添加成功';}else{    echo '添加失败';} (2)insert 方法(数组形式操作) Y

Windows系统CMD窗口下,MySQL建库、还原数据库命令操作示例

前提条件 已安装Java JDK(以1.8版本为例) 已安装MySQL(以5.7.20版本为例),并配置好环境变量 联接MySQL 1. 打开命令提示符窗口(cmd窗口),可以使用WIN+R键,打开运行窗口,输入cmd来打开命令提示符窗口 2. 使用下面的命令来进入MySQL(以使用root用户联接localhost)为例: mysql -hlocalhost -uroot -p 回车后,会提示输入密码,如下图: 输入密码后,回车键,如果正确,会出现欢迎信息,如下图: 展示数据库列表 使用下面的

关于pgsql 的json 和jsonb 的数据查询操作笔记整理

关于pgsql 的json 和jsonb 的数据处理笔记 1. json 和jsonb 区别两者从用户操作的角度来说没有区别,区别主要是存储和读取的系统处理(预处理)和耗时方面有区别.json写入快,读取慢,jsonb写入慢,读取快. 2. 常用的操作符 操作符: -> // 右边传入整数(针对纯数组),获取数组的第n个元素,n从0开始算,返回值为json 示例: select '[{"a":"foo"},{"b":"bar&qu