標籤:
首先應該明確的是為什麼要學MongoDB。OK,如果是僅僅出於對於流行技術的原始興趣,可能並不能深入學習,還必須有應用需求。剛開始學習MongoDB,因為以前對其它資料庫的瞭解也不是特別深入,所以許多概念和原理需要梳理。
本節主要是學習存取控制許可權的問題。第一步就需要建立使用者,手頭有一些mongodb的文檔,然而估計是出版時間和版本太老了,基本都說用db.addUser建立使用者,結果執行不成功。原因在於我所使用的mongodb版本是3.0.6,而從2.6版本起已經deprecated了addUser這個方法,取而代之的是createUser(看來還是得多看官方手冊)。
1.串連上資料庫後,切換到admin資料庫。mongodb預設會有一個admin資料庫,建立使用者需要使用這個資料庫。
>use admin
2.建立一個具有root許可權的使用者
>db.createUser( { user:"username", pwd:"123456", roles:["root"] } )
3.更改使用者密碼
>db.changeUserPassword("username","newpassword");
4.查看使用者資訊
>db.runCommand({userInfo:"username"}){ "ok" : 0, "errmsg" : "no such command: userInfo", "code" : 59, "bad cmd" : { "userInfo" : "username" }}
5.登入
$mongo -u username -p password --authenticationDatabase admin
6.驗證使用者,auth方法驗證通過返回數值1,錯誤返回0。
>db.auth("username","password");
7.查看目前使用者擁有許可權
>db.runCommand( { usersInfo:"username", showPrivileges:true })
有了root使用者以後,可以進一步增加一些普通使用者,比如只有唯讀許可權。
> db.createUser({ user:‘xiaoh‘, pwd:‘123456‘, roles:[ ‘read‘, ‘dbAdminAnyDatabase‘] })
我們還可以為伺服器綁定IP和連接埠,這樣在服務端限定了能夠訪問mongodb的IP和連接埠。
$mongod --bind_ip 192.168.1.28 --port 28018
先寫這麼多吧,最後附上最近的一幅個人習作(被《駭客與畫家洗過腦》)。立個Flag在這裡吧,以後每篇文章都得帶一幅手繪否則不發,若哪次食言則請所有留言的網友吃飯。
一手畫筆,一手代碼 行走江湖,笑傲天涯
References:
1.《深入學習MongoDB》
2.《MongoDB權威指南》
Links:
1.https://docs.mongodb.org/master/reference/built-in-roles/#database-administration-roles
2.http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
3.http://blog.csdn.net/yenange/article/details/43966799
MongoDB自學日記2