mongodb安裝成功後,成功啟動後,用root帳號登錄。(此次啟動的配置中 auth=false 可以直接使用工具登錄 ,同時 配置中 127.0.0.1,所以用局域網登錄得借用ssh)
工具 : NoSQL Manager for MongoDB
登錄成功後,可以看到 admin的庫,右鍵點開shell,創建用戶admin
db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
user->用戶名,pwd->密碼,role->角色,db->指定所屬的數據
role可以有以下選項:
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
7. 內部角色:__system
具體的說明如下:
Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裡創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
我們創建一個 abc的用戶,只對abc的數據庫有讀寫權限。
1.創建abc,數據庫
2.在shell中使用命令如下:
db.createUser( { user: "abc", pwd: "abc", roles: [ { role: "readWrite", db: "abc" } ] })
創建成功後,都會有返回狀態,如下圖
接下來,我們使用abc的用戶來登錄,同時修改mongodb的配置文件中的 auth=true,打開用戶認證。
修改配置文件,需要重啟mongodb,具體命令
# ps -ef|grep mong
# kill -9 1450(具體查看mongo的pid)
# bin/mongod -f conf/mongo.conf
利用工具,用abc來登錄mongo
成功連接後,可以使用mongo的基本語句;
db.user.insert({"name":1111,"pwd":2222})
刷新 Collections 後,就可以看到user這個collection(相當於mysql的表。)mongo,是可以在不創建user這個collection的時候,直接使用添加語句。
閱讀更多 程序從入門到放棄 的文章