老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

Mongodb七天總結—權限管理(2)

MongoDB權限管理

創新互聯建站是一家專注于網站設計、網站制作與策劃設計,鄒平網站建設哪家好?創新互聯建站做網站,專注于網站建設十年,網設計領域的專業建站公司;建站業務涵蓋:鄒平等地區。鄒平做網站價格咨詢:18980820575

版本:Mongodb3.0

說到對數據庫我安全問題我們一般就會從以下幾點考慮怎么去解決數據庫安全的問題。

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

2.網絡隔離:

3.防火墻隔離:

4.用戶名和密碼:

 

下面我們來說說mongodb的用戶名和密碼認證:

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

    1.auth開啟(在啟動的時候知道--auth=true)

    2.Keyfile開啟

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

Auth和keyfile的區別:

   Auth : 單機實例認證,

   Keyfile : 副本集和分片之間驗證; 

復制集是一個整體,復制集之間通信需要驗證對方的身份,因為沒有Keyfile,所以節點之間是不知道其他節點,Keyfile是集群節點間的一個×××明,怎么去創建keyfile,我們可以去使用openssl命令;

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

[root@localhost ~]# cat .keyFile

EG8ABQZU9C87lPRKFVbClBYhxTw8Hyv91NkOoqLBF3eRfnAUxPCTcevB82fYM+Zo+tPOjnsPiVZrCZmAsG26ZFrB/SHhTj/E+F3QARFWKnm4DJNBhzLnjZOKtoao61BMcRAye0H7HG0geMQtbGBX 

在未開啟keyfile認證的時候不去創建用戶,否則也會當keyfile配置重啟后,用戶創建可能進行回滾,當我們進行創建完成keyfile后再進行認證創建用戶;

Keyfile的注意:

    1.內容 base64編碼集【a-z A-Z + /】

    2.長度 1000bytes

    3.權限 chmod 600 keyfile

現在我們開始傳教

創建用戶

語法;

db.createUser(

{

User:,                   #字符串

pwd:                 #字符串

Roles:,db:>  #數組+對象

}

)

創建root用戶,在創建之前我們開啟的auth認證,但是庫沒有任何用戶,那我們需要添加參數setParametmer=enableLocalhostAuthBypass=1,來跳過認證情況下本機登錄無需認證。

創建root用戶的時候,是一個全局用戶,必須只能創建在admin庫

> 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",  #你這個用戶是創建在admin庫

        "roles" : [

                {

                        "role" : "root",

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

                }

        ]

}

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

>1   #認證成功

 

刪除用戶:

 

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

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

如何修改用戶密碼:

 

 

角色:

什么是角色:對某一個資源的權限的集合

mongodb有什么角色:

MongoBD有兩種角色

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

  讀寫:

read 、readWrite

  管理員:

dbAdmin、dbOwner、userAdmin、clusterAdmin

clusterManager、clusterMonitor、hostManager

  備份:

        backup、restore

  全局:

readAnyDatabase、readWriteAnyDatabase、

userAdminAnyDatabase、dbAdminAnyDatabase

  超級用戶:

root

2.自定義角色

 語法:

Use admin

dbCreateRole(

{

role:, #角色名字

Privileges:[

{resource:{db:,collection:},

 actions:[]} #操作的力度很小。不同的操作對應不同的命令

],

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

}

)

 

創建角色:

>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(不能再其他數據庫下創建角色)

這個時候我們切到admin庫下,>use admin,創建用戶成功;因為我們創建的角色是在admain下創建的。

> show users #查看db的用戶

{

        "_id" : "admin.admin",

        "user" : "admin",

        "db" : "admin",

        "roles" : [

                {

                        "role" : "root",

                        "db" : "admin"

                }

        ]

}

查看admin的權限:

> 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權限中,已經存在我們傳教的testycj權限,同時我們也發現的root權限其實就是其他的權限的集合組成,比如readwrite、restore、readWriteAnyDatabase...,因為我們是在admin下創建的權限,所有這個自定義權限的作用域就是admin,在其他域將不能使用。

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

{

    "users" : [

            {

                      "_id" : "admin.admin",

                      "user" : "admin",

                      "db" : "admin", #在哪個庫創建的

                      "roles" : [

                               {

                                       "role" : "root",

                                       "db" : "admin"

                               }

                       ],

                       "inheritedRoles" : [ #繼承的角色

                               {

                                       "role" : "root",

                                       "db" : "admin"

                               }

                       ],

                       "inheritedPrivileges" : [

                               {

                                       "resource" : {

                                       "cluster" : true  #對集群操作需要權限

                                       },

                                       "actions" : [ #所操作的權限

                                            "addShard",

                                            "appendOplogNote",

                                            "applicationMessage",

                                            "authSchemaUpgrade",

                                            "cleanupOrphaned",

                                            "connPoolStats",

                                             .......

                                    .......

                                                                        

接下來我們就以yjctest權限去創建用戶,

>use admin

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

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

>1

現在我們開啟兩個遠程總段回話A和B來測試一下

A:ycj

B:admin

 

 

 


名稱欄目:Mongodb七天總結—權限管理(2)
轉載源于:http://www.xueling.net.cn/article/jdepps.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久精品无码免费不卡 | 免费国无人区码卡二卡 | 免费一看一级毛片 | 潮喷无码正在播放 | 色拍拍欧美视频在线看 | 91看黄色片| 国产人妻精品无码AV | 91秒拍福利视频 | 国产精品久久久久久久人人看 | 国产日韩欧美不卡在线观看 | 伊人久久一区二区 | 久久在看 | 久久精品国语对话 | 久久国产精品亚洲人一区二区三区 | 丰满少妇夜夜爽爽高潮水网站 | 少妇张开腿露私下 | 国产精品视频在线观看 | 日本成年人免费网站 | 疯狂做受XXXX高潮视频免费 | 色爱无码AV综合区老司机非洲 | 中文字幕日韩一区二区 | 国产一二三四区中 | 老师穿超短包臀裙办公室爆乳 | 欧美一级裸片 | 国产一级不卡毛片 | 成人三级在线 | 欧美国产激情一区二区三区蜜月 | 色AV综合AV无码AV网站 | 国产成人免费在线 | 天天爽爽| 亚?成人一区在线 | 伊人久久综合精品无码 | 少妇爆乳无码专区网站 | 国产高清中文手机在线观看 | 中文字幕无码专区人妻系列 | 国产欧美久久久精品影院 | 中文字幕亚洲精品一区 | 乱人伦xxxx国语对白 | 久久人妻少妇偷人精品综合桃色 | 乱淫的女高中调教h | 办公室高h文 |