MongoDB 用戶權限管理

安裝好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數據庫中可用。超級帳號,超級權限
相關文章
相關標籤/搜索