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: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM