mongodb資料庫添加許可權及簡單資料庫命令操作筆記

來源:互聯網
上載者:User

標籤:output   man   cal   down   any   gdb   角色   pat   管理軟體   

加固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

 

mongodb資料庫添加許可權及簡單資料庫命令操作筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.