MongoDB快速入門學習筆記7 MongoDB的用戶管理操作

来源:http://www.cnblogs.com/zhangyanhu/archive/2016/06/01/5551137.html
-Advertisement-
Play Games

1、修改啟動MongoDB時要求用戶驗證加參數 --auth 即可。現在我們把MongoDB服務刪除,再重新添加服務 2、創建用戶,並使用創建的用戶登錄打開shell操作界面,預設test數據,再查看所有資料庫,發現報錯,因為沒有用戶驗證。使用db.auth("user","pwd")進行用戶驗證。 ...


1、修改啟動MongoDB時要求用戶驗證
加參數 --auth 即可。
現在我們把MongoDB服務刪除,再重新添加服務

mongod --dbpath "D:\work\MongoDB\data" --logpath "D:\work\MongoDB\log\mongodb.log" --install --serviceName "MongoDB" --auth

 

2、創建用戶,並使用創建的用戶登錄
打開shell操作界面,預設test數據,再查看所有資料庫,發現報錯,因為沒有用戶驗證。
使用db.auth("user","pwd")進行用戶驗證。
user:用戶名
pwd:密碼


因為資料庫中沒有用戶,所以需要先使用無用戶驗證的方式啟動數據,在admin資料庫下新建用戶。
db.createUser({user:"", pwd:"", roles:[{role:"", db:""}]})
在當前資料庫下創建一個用戶
user:用戶名
pwd:密碼
roles:角色信息
[role:角色名, db:對指定資料庫的操作]

> db.createUser({user:"admin", pwd:"admin", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}

 

在使用用戶驗證的方式啟動資料庫,在資料庫admin中,使用admin登錄
> db.auth("admin","admin")
1

狀態1表示驗證成功,0表示驗證失敗

創建用戶預設給當前使用的數據下創建用戶,
例如:當前使用的數據是admin,在admin數據下新建用戶
db.createUser({user:"zyh", pwd:"zyh", roles:[{role:"readWrite", db:"zyhdb"}]})
在admin資料庫下使用zyh登錄,可讀寫zyhdb的collection。
當在zyhdb下,無法使用zyh登錄,因為用戶zyh是在admin資料庫下。

 

3、查看當前數據下的用戶
show users 顯示當前資料庫下所有的用戶
使用有用戶管理許可權的用戶登錄才能看見,例如使用zyh登錄後,執行會報錯;使用admin登錄後,顯示用戶

> db.auth("zyh","zyh")
1
> show users
2016-06-01T20:32:30.639+0800 E QUERY [thread1] Error: not authorized on admin to execute command { usersInfo: 1.0 } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1523:1
shellHelper.show@src/mongo/shell/utils.js:743:9
shellHelper@src/mongo/shell/utils.js:650:15
@(shellhelp2):1:1

> db.auth("admin","admin")
1
> show users
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
{
"_id" : "admin.zyh",
"user" : "zyh",
"db" : "admin",
"roles" : [
{
"role" : "readWrite",
"db" : "zyhdb"
}
]
}

 

還可以使用db.getUsers()查看所有的用戶
使用db.getUser("user")查詢指定用戶的具體信息

 

4、修改用戶信息
db.changeUserPassword("user", "newpwd"),修改密碼
user:用戶名
newpwd:新的密碼


db.updateUser("user", {roles:[{role:"", db:""}]})
修改用戶信息

db.grantRolesToUser("user", [{role:"", db:""}])
追加角色

db.revokeRolesFromUser("user", [{role:"", db:""}])
取消角色

 

5、刪除用戶
db.dropUser("user") 刪除指定用戶

db.dropAllUsers() 刪除當前數據下所有用戶

 

附:常用內置角色說明
資料庫用戶角色(每個資料庫都有的角色)
read 對non-system集合的讀取許可權,以及以下system集合的讀取許可權:system.indexes,system.js,system.namespaces
readWrite 對non-system集合的讀寫許可權,以及system.js上的讀寫許可權
 
 
資料庫管理角色(每個資料庫都包含的數據管理角色)
dbAdmin 完成管理性任務的許可權,比如schema相關任務、索引、統計信息收集。不能用於管理用戶和角色
dbOwner 管理資料庫需要的所有許可權。包含(readWrite、dbAdmin、userAdmin角色的許可權)
userAdmin 在當前資料庫創建和修改角色和用戶的許可權
 
 
集群管理角色
admin資料庫包含以下角色用於管理整個系統,而不是只針對單個資料庫
clusterAmin 提供集群管理的最大許可權。包含了clusterManager、clusterMonitor、hostManager角色的許可權
clusterManager 管理和監控集群,可以訪問local和config資料庫。
clusterMonitor 對集群的讀許可權
hostManager 管理和健康servers
 
 
備份和還原角色
admin資料庫包含以下角色用於備份和還原數據
backup 備份許可權
restore 還原許可權
 
 
all-database roles
admin數據提供以下角色,對所有資料庫都有效。
readAnyDatabase 提供對所有資料庫的讀許可權
readWriteAnyDatabase 提供對所有資料庫的寫許可權
userAdminAnyDatabase 提供對所有資料庫用戶的管理許可權
dbAdminAnyDatabase 對所有資料庫的dbAdmin許可權
 
 
超級角色
角色 說明
root 擁有最高許可權

另外角色也可以自定義設置。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.在values建立attrs.xml,寫出你需要的屬性: 2.創建view類並實現所需要的業務,具體看代碼,代碼中寫的很詳細: 3.在xml中引用: 當然,在實際操作中OnTouch事件一般是放在activity或者Fragment裡面的,只需在代碼中複製出去即可 最後十分感謝鴻洋大神,讓我們學 ...
  • ➠更多技術乾貨請戳:聽雲博客 我們在做項目的時候,會經常用到各種設計模式,最常見的要數 MVC (模型,視圖,控制器)了。但是,今天我們要說的是另一種設計模式——MVVM。 所以 MVVM 到底是什麼?下麵,我們將結合代碼,說明 MVVM 設計模式以及項目目錄結構。 一、MVVM 模式介紹 MVVM ...
  • Cocoa 開發中介面-委托 (protocol-delegate) 模式是一種常用的設計模式,它貫穿於整個 Cocoa 框架中,為代碼之間的關係清理和解耦合做出了不可磨滅的貢獻。 在 ARC 中,對於一般的 delegate,我們會在聲明中將其指定為 weak,在這個 delegate 實際的對象 ...
  • 在你連接到 MySQL 資料庫後,可能有多個可以操作的資料庫,所以你需要選擇你要操作的資料庫。 從命令提示視窗中選擇MySQL資料庫 在 mysql> 提示視窗中可以很簡單的選擇特定的資料庫。你可以使用SQL命令來選擇指定的資料庫。 實例 以下實例選取了資料庫 TUTORIALS: 執行以上命令後, ...
  • select distinct t.demandNo from t_aaa t, t_bbb o where 1=1 and t.Id=o.Id and t.demandNo not in (select t.demandNo from t_aaa t, t_bbbo where 1=1 and t ...
  • 早上巡檢的的時候,發現一資料庫的作業報如下錯誤(作業名等敏感信息已經替換),該作業的OWNER為一個域賬號: JOB RUN: 'JOB_NAME' was run on 2016-6-1 at 7:00:00 DURATION: 0 hours, 0 minutes, 1 seconds STAT... ...
  • 實例的體繫結構 當用戶希望訪問資料庫時,需要在操作系統中運行相關的應用程式,如SQL*Plus ,啟動用戶進程。用戶進程通過實例訪問資料庫。 實例和資料庫組成了資料庫伺服器,-個資料庫伺服器中至少有一個實例。在單機環境中,實例和資料庫是一一對應的,一個實例只能和一個資料庫建立關聯關係,一個資料庫也只 ...
  • 作為一個關係資料庫產品, Oracle 目前占據了關係資料庫市場的最大份額。 與同類產品比較, Oracle提供了一套完整的機制,保證用戶快速、安全地訪問資料庫,同時保證資料庫安全、穩定地運行。在用戶眼中, Oracle具有性能穩定、運行高效等優點。Oracle的優點是顯而易見的,然而它的體繫結構卻 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...