安裝好mongdb 配置用戶訪問權限後,在命令模式下發現show dbs 報錯,懵逼了不是配置權限了麼。下面是個人解決回放:mongodb
#進入mongo 命令模式發現撥錯 r@iZwz947cvofre97sstzcmuZ ~]# mongo MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 > show dbs 2017-04-03T09:27:05.069+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }", "code" : 13, "codeName" : "Unauthorized" }
彷佛是沒權限操做。shell
#use admin 添加用戶 db.createUser({user:"test",pwd:"123456",roles:[{role:'readAnyDatabase',db:'admin'}]}) Successfully added user: { "user" : "test", "roles" : [ { "role" : "readAnyDatabase", "db" : "admin" } ] }
退出mongo 命令模式,從新進入 發現能夠了,?數據庫
[r@iZwz947cvofre97sstzcmuZ ~]# mongo MongoDB shell version v3.4.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.2 > use admin switched to db admin > db.auth('test','123456') 1 > show dbs admin 0.000GB local 0.000GB test 0.000GB
角色具體說明: Read:容許用戶讀取指定數據庫 readWrite:容許用戶讀寫指定數據庫 dbAdmin:容許用戶在指定數據庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile userAdmin:容許用戶向system.users集合寫入,能夠找指定數據庫裏建立、刪除和管理用戶 dbOwner:數據庫擁有者,包含readWrite、dbAdmin、userAdmin clusterAdmin:只在admin數據庫中可用,賦予用戶全部分片和複製集相關函數的管理權限 readAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀權限 readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀寫權限 userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的userAdmin權限 dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的dbAdmin權限 root:只在admin數據庫中可用。超級帳號,超級權限