真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mongodb七天總結(jié)—權(quán)限管理(2)-創(chuàng)新互聯(lián)

Mongodb權(quán)限管理

站在用戶的角度思考問題,與客戶深入溝通,找到克什克騰網(wǎng)站設(shè)計(jì)與克什克騰網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋克什克騰地區(qū)。

版本:Mongodb3.0

說(shuō)到對(duì)數(shù)據(jù)庫(kù)我安全問題我們一般就會(huì)從以下幾點(diǎn)考慮怎么去解決數(shù)據(jù)庫(kù)安全的問題。

1.最安全的是物理隔離:

2.網(wǎng)絡(luò)隔離:

3.防火墻隔離:

4.用戶名和密碼:

下面我們來(lái)說(shuō)說(shuō)mongodb的用戶名和密碼認(rèn)證:

認(rèn)證是確定client身份的機(jī)制,默認(rèn)情況下mongodb并沒有開啟權(quán)限認(rèn)證,我們部署好MGDB之后需要進(jìn)行,一般常用mongodb權(quán)限認(rèn)證的方式有:

    1.auth開啟(在啟動(dòng)的時(shí)候知道--auth=true)

    2.Keyfile開啟

怎么進(jìn)行認(rèn)證,在命令行mongo --auth或者在配置文件里加入配置信息,來(lái)開啟認(rèn)證;auth是一個(gè)布爾值,只需要在配置文件里加入auth=ture就開啟認(rèn)證了,那Keyfile呢?

Auth和keyfile的區(qū)別:

  Auth : 單機(jī)實(shí)例認(rèn)證,

  Keyfile : 副本集和分片之間驗(yàn)證;

復(fù)制集是一個(gè)整體,復(fù)制集之間通信需要驗(yàn)證對(duì)方的身份,因?yàn)闆]有Keyfile,所以節(jié)點(diǎn)之間是不知道其他節(jié)點(diǎn),Keyfile是集群節(jié)點(diǎn)間的一個(gè)×××明,怎么去創(chuàng)建keyfile,我們可以去使用openssl命令;

[root@localhost ~]# openssl rand -base64 111  .keyFile

[root@localhost ~]# cat .keyFile

EG8ABQZU9C87lPRKFVbClBYhxTw8Hyv91NkOoqLBF3eRfnAUxPCTcevB82fYM+Zo+tPOjnsPiVZrCZmAsG26ZFrB/SHhTj/E+F3QARFWKnm4DJNBhzLnjZOKtoao61BMcRAye0H7HG0geMQtbGBX

在未開啟keyfile認(rèn)證的時(shí)候不去創(chuàng)建用戶,否則也會(huì)當(dāng)keyfile配置重啟后,用戶創(chuàng)建可能進(jìn)行回滾,當(dāng)我們進(jìn)行創(chuàng)建完成keyfile后再進(jìn)行認(rèn)證創(chuàng)建用戶;

Keyfile的注意:

    1.內(nèi)容 base64編碼集【a-z A-Z + /】

    2.長(zhǎng)度 1000bytes

    3.權(quán)限 chmod 600 keyfile

現(xiàn)在我們開始傳教

創(chuàng)建用戶

語(yǔ)法;

db.createUser(

{

User:,                   #字符串

pwd:                 #字符串

Roles:,db:>  #數(shù)組+對(duì)象

}

)

創(chuàng)建root用戶,在創(chuàng)建之前我們開啟的auth認(rèn)證,但是庫(kù)沒有任何用戶,那我們需要添加參數(shù)setParametmer=enableLocalhostAuthBypass=1,來(lái)跳過認(rèn)證情況下本機(jī)登錄無(wú)需認(rèn)證。

創(chuàng)建root用戶的時(shí)候,是一個(gè)全局用戶,必須只能創(chuàng)建在admin庫(kù)

> db.createUser({user:'admin',pwd:'123123',roles:[{role:'root',db:'admin'}]})

Successfully added user: {

    "user" : "admin",

    "roles" : [

        {

           "role" : "root",

            "db" : "admin"

        }

    ]

}

[root@localhost ~]# mongo localhost:27017

MongoDB shell version: 3.0.12

connecting to: localhost:27017/test

> show dbs

admin  0.078GB

local  0.078GB

> use admin

switched to db admin

> show users

{

        "_id" : "admin.admin",

        "user" : "admin",

        "db" : "admin",  #你這個(gè)用戶是創(chuàng)建在admin庫(kù)

        "roles" : [

                {

                        "role" : "root",

                        "db" : "admin"  #角色的作用域

                }

        ]

}

> db.auth('admin','123123')   #認(rèn)證

>1   #認(rèn)證成功

刪除用戶:

1、db.dropUser()  刪除某個(gè)用戶,

2、db.dropAllUser()           刪除所有用戶,

如何修改用戶密碼:

角色:

什么是角色:對(duì)某一個(gè)資源的權(quán)限的集合

mongodb有什么角色:

MongoBD有兩種角色

1.自帶 的角色(bulid-in roles)

  讀寫:

read 、readWrite

  管理員:

dbAdmin、dbOwner、userAdmin、clusterAdmin

clusterManager、clusterMonitor、hostManager

  備份:

        backup、restore

  全局:

readAnyDatabase、readWriteAnyDatabase、

userAdminAnyDatabase、dbAdminAnyDatabase

  超級(jí)用戶:

root

2.自定義角色

 語(yǔ)法:

Use admin

dbCreateRole(

{

role:, #角色名字

Privileges:[

{resource:{db:,collection:},

 actions:[]} #操作的力度很小。不同的操作對(duì)應(yīng)不同的命令

],

Roles:[{role:},db:] #你所創(chuàng)建的角色是否需要繼承其他的role

}

)

創(chuàng)建角色:

>use ycj

>db

>ycj

>db.createRole({role:'testycj',privileges:[{resource:{db:'ycj',collection:''},actions:['find','insert','re

move']}],roles:[{role:'read',db:'test'}]})

Error: Roles on the 'ycj' database cannot be granted roles from other databases(不能再其他數(shù)據(jù)庫(kù)下創(chuàng)建角色)

這個(gè)時(shí)候我們切到admin庫(kù)下,>use admin,創(chuàng)建用戶成功;因?yàn)槲覀儎?chuàng)建的角色是在admain下創(chuàng)建的。

> show users #查看db的用戶

{

        "_id" : "admin.admin",

        "user" : "admin",

        "db" : "admin",

        "roles" : [

                {

                        "role" : "root",

                        "db" : "admin"

                }

        ]

}

查看admin的權(quán)限:

> show roles;

{

        "role" : "readWriteAnyDatabase",

        "db" : "admin",

        "isBuiltin" : true,

        "roles" : [ ],

        "inheritedRoles" : [ ]

}

...........

...........

...........

{

        "role" : "testycj",

        "db" : "admin",

        "isBuiltin" : false,

        "roles" : [

                {

                        "role" : "read",

                        "db" : "test"

                }

        ],

        "inheritedRoles" : [

                {

                        "role" : "read",

                        "db" : "test"

                }

        ]

}

{

        "role" : "userAdmin",

        "db" : "admin",

        "isBuiltin" : true,

        "roles" : [ ],

        "inheritedRoles" : [ ]

}

可以看到我們的admin的root權(quán)限中,已經(jīng)存在我們傳教的testycj權(quán)限,同時(shí)我們也發(fā)現(xiàn)的root權(quán)限其實(shí)就是其他的權(quán)限的集合組成,比如readwrite、restore、readWriteAnyDatabase...,因?yàn)槲覀兪窃赼dmin下創(chuàng)建的權(quán)限,所有這個(gè)自定義權(quán)限的作用域就是admin,在其他域?qū)⒉荒苁褂谩?/p>

> db.runCommand({usersInfo:'admin',showPrivileges:1}) #查看這個(gè)用戶的所有信息·

{

  "users" : [

      {

           "_id" : "admin.admin",

           "user" : "admin",

           "db" : "admin", #在哪個(gè)庫(kù)創(chuàng)建的

           "roles" : [

                {

                    "role" : "root",

                    "db" : "admin"

                }

            ],

            "inheritedRoles" : [ #繼承的角色

                {

                    "role" : "root",

                    "db" : "admin"

                }

            ],

            "inheritedPrivileges" : [

                {

                    "resource" : {

                    "cluster" : true  #對(duì)集群操作需要權(quán)限

                    },

                    "actions" : [ #所操作的權(quán)限

                      "addShard",

                      "appendOplogNote",

                      "applicationMessage",

                      "authSchemaUpgrade",

                      "cleanupOrphaned",

                      "connPoolStats",

                       .......

                               .......

                                                                        

接下來(lái)我們就以yjctest權(quán)限去創(chuàng)建用戶,

>use admin

>db.createUser({user:'ycj',pwd:'123',roles:[{role:'testycj',db:'admin'}]})

>db.auth(‘ycj’,’123’)

>1

現(xiàn)在我們開啟兩個(gè)遠(yuǎn)程總段回話A和B來(lái)測(cè)試一下

A:ycj

B:admin

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


新聞名稱:Mongodb七天總結(jié)—權(quán)限管理(2)-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/dpphih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部