MongoDB 入門之基礎 DCL

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   使用   ar   sp   資料   

此文章主要記錄部分主要的 MongoDB 的 DCL 操作。

MongoDB 預設不需要使用者名稱和密碼就可以用 mongodb.exe 登入

一、開啟 MonogoDB 的許可權模式

修改 MongoDB 服務的註冊語句,修改加入 --auth 參數,詳情見MongoDB 入門之安裝篇

"$MONGODB_HOME\bin\mongod.exe" --config "$MONGODB_HOME\mongo.cfg" --install --auth
C:\Windows\System32\sc.exe create MongoDB binPath= "\"$MONGODB_HOME\bin\mongod.exe\" --service --auth --config=\"$MONGODB_HOME\mongo.cfg\"" DisplayName= "MongoDB 2.6 Standard" start= "auto"

或者在mongod.cfg 中添加配置

auth=true
二、使用者權限管理
  • 建立使用者
    > db.addUser("user","abc123_")WARNING: The ‘addUser‘ shell helper is DEPRECATED. Please use ‘createUser‘ insteadSuccessfully added user: { "user" : "user", "roles" : [ "dbOwner" ] }>

    可以看到當執行 addUser 命令是出現 wraning,雖然建立成功了,但是 MongoDB 建議使用 createUser。

    > db.createUser({...   user:"user",...   pwd:"abc123_",...   roles:[... {... role:"dbOwner",... db:"mydb"... }...   ]... })Successfully added user: {        "user" : "user",        "roles" : [                {                        "role" : "dbOwner",                        "db" : "mydb"                }        ]}>

    如果 MongoDB 開啟了許可權模式,並且某一個資料庫沒有任何使用者時,在不驗證許可權的情況下,可以建立一個使用者,當繼續建立第二個使用者時,會返回錯誤,若想繼續建立使用者則必須登入。

    2014-10-16T10:40:41.904+0800 Error: couldn‘t add user: not authorized on mydb to execute command { createUser: "test", pwd: "xxx", roles: [ { role: "dbOwner", db: "mydb" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } } at src/mongo/shell/db.js:1004>
  • 建立超級管理員
    建立超級管理員需要未開啟許可權模式的情況下執行。如果已開啟許可權而在 admin 下建立超級管理員,會出現如下錯誤

    > db.createUser({...   user:"admin",...   pwd:"admin",...   roles:[... {... role:"userAdminAnyDatabase",... db:"admin"... }...   ]... })2014-10-16T10:48:01.223+0800 Error: couldn‘t add user: not authorized on admin to execute command { createUser: "admin", pwd: "xxx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } } at src/mongo/shell/db.js:1004>

    關閉許可權模式建立超級管理員

    > use adminswitched to db admin> db.createUser({...   user:"admin",...   pwd:"admin",...   roles:[... {... role:"userAdminAnyDatabase",... db:"admin"... }...   ]... })Successfully added user: {        "user" : "admin",        "roles" : [                {                        "role" : "userAdminAnyDatabase",                        "db" : "admin"                }        ]}>

    如果使用 addUser 建立超級管理員還必須切換到 admin 資料庫。

  • 刪除使用者
    > db.dropUser("user")true> 
  • 登入
    anth 需要登入使用者有該資料庫的許可權
    > use mydbswitched to db mydb> db.auth("user","abc123_")1>

MongoDB 入門之基礎 DCL

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.