MongoDB 3.0+安全許可權存取控制

來源:互聯網
上載者:User

標籤:Java

1、啟動沒有存取控制的MongoDB服務
sudo service mongod start

2、串連到執行個體
mongo --port 27017
指定額外的命令列選項來串連Mongo shell到部署Mongodb伺服器, 如--host

3、建立的使用者管理員
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

4、重新啟動MongoDB執行個體,並啟用存取控制
1、重新啟動mongod執行個體,如果使用設定檔的設定,security.authorization:
vi /etc/mongod.conf
修改內容:

    security:      authorization: enabled2、注意:keys and values之間一定要加空格, 否則解析會報錯    重啟服務:    sudo service mongod start

5、使用者管理員身分識別驗證
1、建立串連mongo shell 時進行授權,指定-u <username>, -p <password>, and the --authenticationDatabase <database>
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

2、mongo shell串連時不認證,使用db.auth()授權    use admin    db.auth("myUserAdmin", "abc123" )

--------------------伺服器以開啟認證後,如何添加使用者--------------------
1、啟動MongoDB執行個體的存取控制
啟動mongod執行個體 AUTH命令列選項,如果使用設定檔的設定,security.authorization。
sudo service mongod start

2、通過localhost exception 串連MongoDB執行個體
添加第一個使用者, 使用Localhost Exception,串連一個mongod執行個體。運行Mongo shell和mongod執行個體必須來自同一主機

3、同上建立使用者方式相同

--------------------普通使用者安全存取權限--------------------
1、啟動MongoDB
service mongod start

2、再次開啟MongoDB shell
1、mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

2、mongo    use admin    db.auth("myUserAdmin","abc123")3、show collections:報錯    因為使用者myUserAdmin只用使用者的系統管理權限

3、建立使用者,使用者都跟著資料庫走
為myuseradmin建立使用者myUserAdmin在admin 資料庫
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

4、查看剛剛建立的使用者
show users

5、查看整個MongoDB全部的使用者
use admin
db.system.users.find()

db.system.users.find().pretty()

6、建立完畢、進行驗證

use test
db.auth(‘test1‘,‘test1‘)
1
show collections
ypmlist

--------------------修改許可權--------------------
1、updateuser()方法:
1、執行個體
db.updateUser(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> }
)

2、參數介紹:       1、username:要更新的使用者名稱。    2、update:替換使用者資料的文檔,此資料完全取代了使用者的相應資料。    3、writeConcern:可選,寫操作層級。3、指定要更新的欄位和他們的新值:    1、customData:可選。任意資訊。    2、roles:可選。授予使用者的角色。對角色數組覆蓋以前的數組的值更新    3、pwd:可選。使用者密碼

--------------------修改許可權操作--------------------
執行個體:

use admin
switched to db admin
db.auth("myUserAdmin", "abc123" )
1
use test
db.updateUser(
"test1",
{
pwd: "itcast",
customData: { title: "Senior Manager" },
"roles" : [
{
"role" : "readWrite",
"db" : "test"
},
{
"role" : "readWrite",
"db" : "example"
}

   })

--------------------超級使用者--------------------
use admin
db.createUser(
{
user: "itcast",
pwd: "itcast",
roles: [ { role: "root", db: "admin" } ]
}
)

2、系統預設角色:
1、Read:允許使用者讀取指定資料庫

2、readWrite:允許使用者讀寫指定資料庫3、dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile4、userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和系統管理使用者5、clusterAdmin:只在admin資料庫中可用,賦予使用者所有分區和複製集相關函數的系統管理權限。6、readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權7、readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限8、userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權9、dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。10、root:只在admin資料庫中可用。超級帳號,超級許可權

MongoDB 3.0+安全許可權存取控制

相關文章

聯繫我們

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