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

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

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

启动数据库的注意事项:   shell

  • 指定端口启动数据库(不须要认证):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

远程登陆: app

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

一些命令:socket

  •  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下)mongoose

roles角色,指定角色后就有相应权限,通常在admin里定义角色在其余地方用ui

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

简版:this

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

建立完后登录spa

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:pwd@ip: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

相关文章
相关标签/搜索