Mongodb 3.2.X 添加admin的root賬戶

一、給admin庫添加root權限

如果這樣設置,登陸成功以后可以對所有庫進行操作

## 1、 首先免密方式開啟數據庫
$ ./mongod --dbpath /data/db

## 2、使用admin數據庫
> use admin
switch admin

##3、為admin庫添加 root賬戶
>db.createUser({
  'user' : 'adminName',
  'pwd' : 'yourPassword',
  'roles':[
    {role:'root',db:'admin'}    
    #此為admin這個表的根用戶,登錄以后方可對所有庫進行操作
    ]
})

##4、然后退出當前數據庫,殺掉進程,并以  --auth 重啟

×××××××××××××××××××××××××××××××××
#  列出mongod 進程
$ ps -e | grep mongod  
# 殺掉進程
$ sudo kill  進程ID      

# 或者直接:
$ ./mongod --shutdown --dbpath /data/db

××××××××××××××××××××××××××××××××

## 5、 有密開啟數據庫
$ ./mongod --dbpath /data/db --auth --port 27001

## 6、此時沒有使用賬號密碼也能登錄,但是無法進行相關操作
>show dbs

##2017-01-10T10:55:46.227+0800 E QUERY    [main] Error: listCollections failed: {
##  "ok" : 0,
##  "errmsg" : "not authorized on admin to execute command { ##listCollections: 1.0, filter: {} }",
##  "code" : 13,
##  "codeName" : "Unauthorized"
##} :

## 7、登陸admin庫的root賬戶:
> use admin
-- switch admin
> db.auth('adminName','yourPassword')
--    1         #此時已成功登錄admin 的root賬戶,可以進行所有庫的操作
> show dbs
admin
local
>show collections
system.users
system.version
>db.system.users.find().pretty()

##  可顯示 查詢到的數據
{
    "_id" : "admin.adminName",
    "user" : "adminName",
    "db" : "admin",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "CG52h/827OSDhRTQ2MkMwQ==",
            "storedKey" : "/RrlhidF03ei2r2kyS3QCppe67c=",
            "serverKey" : "Psnhd9GatLu4rc6Q7Kp+/Z8n+og="
        }
    },
//下面這個就是你剛添加的
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

二、給 某一個庫添加 dbOwner 權限

1、同樣免密開啟數據庫服務
2、鏈接到某一個庫
> use cc_cs
switched to db cczyy_cs

3、為該庫設置賬戶
> db.createUser({
    'user':'zhangsan',    //鏈接數據庫的賬戶名
    'pwd':'lisi',                //密碼
    'roles':[
            {
                role:'dbOwner',
                db:'cc_cs'
              }
      ]
})
Successfully added user: {
    "user" : "zhangsan",
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "cc_cs"
        }
    ]
}

4、連接到 admin庫,查看你剛才創建的cc_cs庫的賬戶
> use admin
switched to db admin
> db.system.users.find().pretty()
{
//  _id字段:cc_cs 是當前用戶所屬的數據庫的名稱;
//  zhangsan  是你設置的賬戶名  
    "_id" : "cc_cs.zhangsan",
    "user" : "zhangsan",
    "db" : "cc_cs",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "dGurhbdFOAtEvjvf+IrWOg==",
            "storedKey" : "4tU/9+R6sQSL+4QvhmykRAUwioQ=",
            "serverKey" : "MmHTwuP2lnkO8LpFFEArrFE7VFY="
        }
    },
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "cc_cs"
        }
    ]
}

5、關閉mongo并有密啟動
6、鏈接數據庫以后
$ ./mongo
 connecting to: test
> use cc_cs
switch cc_cs
> db.auth('zhangsan','lisi')
1        //驗證成功
>show collections
user
students

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,829評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 一、MongoDB安裝及配置 1.1、下載安裝程序 MongoDB提供了linux平臺上32位和64位的安裝包,你...
    misszero閱讀 1,244評論 1 2
  • 《關鍵20小時,快速學會任何技能》 1、要選擇目標、做足準備 選定一個最重要的目標(當前最重要最需要的)之后,給自...
    南宮伊兒nn閱讀 217評論 6 0
  • 最近胖死。饞死。懶死。暴躁死。 辦個健身卡,去三次,擱置。 買一堆健身器材,閑置。 早上看看鏡子里的自己,看看體重...
    愛吃魚的豆媽閱讀 453評論 0 0