標籤: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+安全許可權存取控制