1. 程式人生 > >MongoDB 使用者許可權管理

MongoDB 使用者許可權管理



我知道的關係型資料庫都是有許可權控制的,什麼使用者能訪問什麼庫,什麼表,什麼使用者可以插入,更新,而有的使用者只有讀取許可權。
例如:mysql安裝配置好後,有一個自帶的mysql資料庫,裡面有一張user表,用來存放使用者,以及使用者許可權,而MongoDB這個最像關係型的資料庫,有沒有這樣的表呢。
MongoDB常用命令
[[email protected] ~]# ps -ef | grep mongod

 [[email protected] ~]# mongo --host=127.0.0.1 --port=27017 MongoDB shell version: 3.2.7 connecting to: 127.0.0.1:27017/test >

 show dbs #顯示資料庫列表

 > show collections #顯示當前資料庫中的集合(類似關係資料庫中的表)

> show users #顯示使用者

> use <db name> #切換當前資料庫,如果資料庫不存在則建立資料庫。

> db.help() #顯示資料庫操作命令,裡面有很多的命令

> db.foo.help() #顯示集合操作命令,同樣有很多的命令,foo指的是當前資料庫下,一個叫foo的集合,並非真正意義上的命令

> db.foo.find() #對於當前資料庫中的foo集合進行資料查詢(由於沒有條件,會列出所有資料)

> db.foo.find( { a : 1 } ) #對於當前資料庫中的foo集合進行查詢,條件是資料中有一個屬性叫a,且a的值為1
MongoDB沒有建立資料庫的命令,但有類似的命令。
如:如果你想建立一個“myTest”的資料庫,先執行use myTest命令,之後就做一些操作(如:db.createCollection('user')),這樣就可以建立一個名叫“myTest”的資料庫。
其他常用操作命令
> db.dropDatabase() #刪除當前使用資料庫

> db.cloneDatabase("127.0.0.1") #將指定機器上的資料庫的資料克隆到當前資料庫

> db.copyDatabase("mydb", "temp", "127.0.0.1") #將本機的mydb的資料複製到temp資料庫中

 > db.repairDatabase() #修復當前資料庫

> db.getName() #檢視當前使用的資料庫,也可以直接用db

> db.stats() #顯示當前db狀態

> db.version() #當前db版本

> db.getMongo() #檢視當前db的連結機器地址

> db.serverStatus() #檢視資料庫伺服器的狀態
使用者許可權設定
掌握許可權,理解下面4條基本上就差不多
1. MongoDB是沒有預設管理員賬號,所以要先新增管理員賬號,再開啟許可權認證。
2. 切換到admin資料庫,新增的賬號才是管理員賬號。
3. 使用者只能在使用者所在資料庫登入,包括管理員賬號。
4. 管理員可以管理所有資料庫,但是不能直接管理其他資料庫,要先在admin資料庫認證後才可以。
新增管理員賬號
[[email protected] ~]# mongo --host=127.0.0.1 --port=27017 MongoDB shell version: 3.2.7 connecting to: 127.0.0.1:27017/test > use admin > show collections > db.createUser( { user: "admin", pwd: "mongodb$123passok", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } > show users > db.system.users.find()
開啟許可權驗證
[[email protected] ~]#vi /etc/mongodb.conf
security:
authorization: enabled
[[email protected] ~]# service mongodb restart
驗證許可權是否生效
[[email protected] ~]# mongo --port=27017 MongoDB shell version: 3.2.7 connecting to: 127.0.0.1:27017/test > show dbs 2016-07-19T17:32:37.258+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }", "code" : 13 } : [email protected]/mongo/shell/utils.js:25:13 [email protected]/mongo/shell/mongo.js:62:1 [email protected]/mongo/shell/utils.js:760:19 [email protected]/mongo/shell/utils.js:650:15 @(shellhelp2):1:1

> use admin switched to db admin

> db.auth('admin','mongodb$123passok') 1 > show dbs admin 0.000GB local 0.000GB
新增普通使用者
> use mydb switched to db mydb

 > db.createUser( { user: "tonny", pwd: "[email protected]", roles: [ { role: "readWrite", db: "yajie" } ] } ) Successfully added user: { "user" : "tonny", "roles" : [ { "role" : "readWrite", "db" : "mydb" } ] } > exit bye

 [[email protected] ~]# mongo MongoDB shell version: 3.2.7 connecting to: test > use mydb switched to db mydb > db.auth('tonny','[email protected]') 1
MongoDB資料庫角色
內建的角色
資料庫使用者角色:read、readWrite;
資料庫管理角色:dbAdmin、dbOwner、userAdmin;
叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
備份恢復角色:backup、restore;
所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超級使用者角色:root // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
內部角色:__system
角色說明:
Read:允許使用者讀取指定資料庫
readWrite:允許使用者讀寫指定資料庫
dbAdmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile
userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者
clusterAdmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。
readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權
readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權
userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權
dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。
root:只在admin資料庫中可用。超級賬號,超級許可權
登入 mongo --host 172.16.6.68 -authenticationDatabase admin -u admin -p

相關推薦

MongoDB 使用者許可權管理

 我知道的關係型資料庫都是有許可權控制的,什麼使用者能訪問什麼庫,什麼表,什麼使用者可以插入,更新,而有的使用者只有讀取許可權。 例如:mysql安裝配置好後,有一個自帶的mysql資料庫,裡面有一張user表,用來存放使用者,以及使用者許可權,而MongoDB這個最像

mongodb的安裝和許可權管理

mongodb4.0已經發布,但是鑑於線上環境更多的是使用舊版本的mongodb,我們這裡使用的mongodb3.4版本。 官網下載地址為:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.18.tgz 直接解壓 tar zxvf m

MongoDB-資料&許可權管理(4)

資料備份與恢復 mongodump -h ip:port -d 資料庫名稱 -o 儲存路徑 # 備份 mongorestore -h ip:port -d 資料庫名稱 --dir

Linux下MongoDB許可權管理

2. 在我們使用的關係型資料庫中,一般都是含有許可權控制的,也就是說配置什麼使用者訪問什麼資料庫,什麼資料表,什麼使用者可以對錶進行增刪改,什麼使用者可以對錶進行讀取等等都是可以配置,那麼MongoDB作為一個非關係型資料庫的典型,它其實也是可以配置的,而掌握MongoDB的許可權我們只需要簡單理解下面幾點,

MongoDB學習筆記—許可權管理

  c 在我們使用的關係型資料庫中,一般都是含有許可權控制的,也就是說配置什麼使用者訪問什麼資料庫,什麼資料表,什麼使用者可以對錶進行增刪改,什麼使用者可以對錶進行讀取等等都是可以配置,那麼MongoDB作為一個非關係型資料庫的典型,它其實也是可以配置的,而掌握MongoDB的許可權我們只需要簡單理解下面幾點

mongodb主從使用者許可權管理

1、建立mongo的管理使用者  #mongo   >use admin >db.createUser({user:"mongodbuser",pwd:"mongo123456",roles:[{role:"userAdminAnyDatabase",d

MongoDB入門系列(四):許可權管理

一、概述 本篇文章主要介紹如何建立使用者和角色相關概念,同時對角色的新增和刪除做了相關介紹。 版本:3.6.2 二、角色相關概念 1.資料庫使用者角色 read:該角色擁有資料的只讀許可權,系統集合以及system.indexes,system.js,system.namespaces集合除外。

mongodb 許可權管理 for 3.0+

2、 MongoDB使用者角色配置 2.1、基本知識介紹 MongoDB基本的角色  1.資料庫使用者角色:read、readWrite;  2.資料庫管理角色:dbAdmin、dbOwner、userAdmin;  3.叢集管理角色:clusterAdmin、clusterManager、clust

MongoDB許可權管理使用者

一、建立root使用者1.建立root使用者> db.createUser({user:"root",pwd:"123456",roles:["root"]}) Successfully added user: { "user" : "root", "roles" :

MongoDB系列---使用者及許可權管理02

MongoDB-——Privilege   學習大綱:   1、使用者許可權管理   2、使用者操作     知識回顧:    本系列上一篇博文我們講述瞭如何搭建環境以及配置我們的MongoDB,通過搭建環境後我們又學習瞭如何通過簡單

[linux][MongoDB] mongodb學習(一):MongoDB安裝、管理工具、

ole ont mon mkdir man 管理工具 tar end 認證 參考原文:http://www.cnblogs.com/kaituorensheng/p/5118226.html linux安裝完美實現! 1. mongoDB安裝、啟動、關閉   1.1

MongoDB用戶管理

command ror mon create .get 分享 string undefine pwd 創建用戶 語法:db.createUser({user:<name_string>, #字符串pwd:<password_strin>, #字符

mongodb 用戶管理

hang base get 登錄 chang database ati authent 創建 use db_order創建用戶:db.createUser({user: "u_db_order",pwd: "password",rol

centos下svn分組許可權管理

1、開啟svn安裝目錄。可以通過ps aux|grep svn 查詢svn的安裝目錄 2、編輯svnserve.conf, 基本保留這些內容 [general] anon-access=none auth-access=write password-db=passwd // 這裡可

許可權管理-一級選單-二級選單-三級選單-路徑導航和許可權粒度控制到按鈕級別

許可權管理 RBAC   許可權管理 1. 為什麼要有許可權?   2. 開發一套許可權的元件。為什麼要開發元件?   3. 許可權是什麼? web 開發中 URL 約等於 許可權   4. 表結構

Linux之組管理許可權管理【重點】

一、Linux組基本介紹 在linux中的每個使用者必須屬於一個組,不能獨立於組外。在linux中每個檔案 有所有者、所在組、其它組的概念。 1) 所有者 2) 所在組 3) 其它組 4) 改變使用者所在的組 示意圖如下: 二、檔案/目錄 所有者 一般為檔案的

RBAC 許可權管理

RBAC(Role-Based Access Control,基於角色的訪問控制),就是使用者通過角色與許可權進行關聯。簡單地說,一個使用者擁有若干角色,每一個角色擁有若干許可權。這樣,就構造成“使用者-角色-許可權”的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是

阿里雲CentOS搭建SVN伺服器及許可權管理

  linux(centos)下SVN伺服器如何搭建?說到SVN伺服器,想必大家都知道,可以是在LINUX下如何搭建SVN伺服器呢?那麼今天給大家分享一下linux(centos)搭建SVN伺服器的思路!    雖然在windows上搭建SVN很簡單,但是效能卻不高,

.NET快速資訊化系統開發框架 V3.2 -&gt; WinForm“組織機構管理”介面組織機構許可權管理採用新的介面,操作許可權按模組進行展示

  對於某些大型的企業、資訊系統,涉及的組織機構較多,模組多、操作許可權也多,對使用者或角色一一設定模組、操作許可權等比較繁瑣。我們可以直接對某一組織機構進行許可權的設定,這樣設定後,同一組織機構的使用者就可以擁有相應的模組訪問許可權,操作許可權了,這樣也能減輕管理人員的負擔。   要啟用組織

hive多linux使用者和許可權管理

linux上增加使用者 useradd –d /home/hdfs/test -m test passwd test 設定密碼 切換到超級使用者 sudo su - hdfs 在hive 客戶端上建立角色 CREATE ROLE role_test; 對建立的角色賦權列如查詢許可權 gran