mongodb使用者與角色使用
此文件以mongodb 4.0版本進行對使用者許可權和角色講解,更詳細內容可參考mongodb官方文件.
官方文件:https://docs.mongodb.com/manual/core/security-users/
一.mongodb內部角色
1.資料庫使用者角色
read --讀取資料庫對像的許可權
readWrite --讀取和修改資料庫對像許可權
2.資料庫管理角色
dbAdmin --執行管理任務角色
dbOwner --資料庫所有者,可以對資料庫所有操作
userAdmin --當前資料庫上建立,修改角色和使用者功能
3.叢集管理角色
clusterAdmin --叢集管理員
clusterManager --管理叢集和監控
clusterMonitor --監控叢集和只讀訪問
hostManager --監控和管理伺服器功能
4.備份恢復角色
backup --備份資料最小許可權
restore --恢復許可權
5.所有資料庫角色
readAnyDatabase --只讀所有資料庫角色
readWriteAnyDatabase --讀寫所有資料庫
userAdminAnyDatabase --除local之外的所有資料庫相同的使用者管理操作訪問許可權
dbAdminAnyDatabase --除local之外的所有資料庫相同的許可權
6.超級使用者角色
root --提供所有資源readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase,clusterAdmin,restore,backup
7.內部角色
__system --提供對資料庫中的任何物件執行任何操作的許可權
二.自定義角色
1.自定義角色格式
{ role: "<name>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ], authenticationRestrictions: [ { clientSource: ["<IP>" | "<CIDR range>", ...], serverAddress: ["<IP>" | "<CIDR range>", ...] }, ... ] }
2.自定義角色(對config庫所有表可以增刪改查,對users庫usersCollection表更新,插入,刪除,對所有資料庫有查詢許可權)
> use admin switched to db admin > db.createRole( { role: "wuhan123", --角色名 privileges: [ { resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert", "remove" ] }, { resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] }, { resource: { db: "", collection: "" }, actions: [ "find" ] } ], roles: [ { role: "read", db: "admin" } ] } ) >
3.列出角色和刪除角色
> db.getRole("wuhan123") --顯示單個角色資訊(wuhan123是角色名) { "role" : "wuhan123", "db" : "admin", "isBuiltin" : false, "roles" : [ { "role" : "read", "db" : "admin" } ], "inheritedRoles" : [ { "role" : "read", "db" : "admin" } ] } > db.getRoles() --顯示當前庫所有角色 [ { "role" : "wuhan123", "db" : "admin", "isBuiltin" : false, "roles" : [ { "role" : "read", "db" : "admin" } ], "inheritedRoles" : [ { "role" : "read", "db" : "admin" } ] } ] > db.dropRole("wuhan123"); --刪除角色 true > db.dropAllRoles(); --刪除所有角色 NumberLong(1) >
三.建立使用者並使用角色
1.建立使用者格式
{ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ], authenticationRestrictions: [ { clientSource: ["<IP>" | "<CIDR range>", ...] serverAddress: ["<IP>" | "<CIDR range>", ...] }, ... ], mechanisms: [ "<SCRAM-SHA-1|SCRAM-SHA-256>", ... ], passwordDigestor: "<server|client>" }
2.建立使用者使用角色
> use tong --進入資料庫 switched to db tong > db.createUser( ... { ... user: "u_tong", --指定使用者名稱 ... pwd: "system123", --指定密碼 ... roles: [ "readWrite", "dbAdmin" ] --使用資料庫中的角色 ... } ... ) Successfully added user: { "user" : "u_tong", "roles" : [ "readWrite", "dbAdmin" ] } >
2.建立使用者指定來源IP和目標IP
> use tong switched to db tong > db.createUser( { user: "u1_tong", --使用者名稱 pwd: "system123", --密碼 roles: [ { role: "readWrite", db: "tong" } ], --角色 authenticationRestrictions: [ { clientSource: ["192.168.1.10"], --客戶端IP serverAddress: ["192.168.1.20"] --服務端IP } ] } )>
3.檢視使用者和刪除使用者
> db.getUsers(); --檢視當前資料庫所有使用者 [ { "_id" : "tong.u1_tong", "user" : "u1_tong", "db" : "tong", "roles" : [ { "role" : "readWrite", "db" : "tong" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }, { "_id" : "tong.u_tong", "user" : "u_tong", "db" : "tong", "roles" : [ { "role" : "readWrite", "db" : "tong" }, { "role" : "dbAdmin", "db" : "tong" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } ] > db.getUser("u_tong"); --檢視指定使用者 { "_id" : "tong.u_tong", "user" : "u_tong", "db" : "tong", "roles" : [ { "role" : "readWrite", "db" : "tong" }, { "role" : "dbAdmin", "db" : "tong" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } > db.dropUser("u_tong"); --刪除單個使用者 true > db.dropAllUsers(); --刪除當前庫所有使用者 NumberLong(1) >
4.將角色授權給使用者
> db.grantRolesToUser( "u_tong",[ "readWrite" , { role: "read", db: "tong" } ], > )
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25854343/viewspace-2640282/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB 3.2的使用者角色許可權介紹和配置MongoDB
- MongoDB 使用者與許可權管理MongoDB
- PostgreSQL:使用者角色管理SQL
- MongoDB 6.0 單例項基於使用者角色實現授權登入MongoDB單例
- 【使用者管理】oracle使用者、角色、許可權管理Oracle
- Oracle使用者、授權、角色管理Oracle
- asp.net 使用者角色管理ASP.NET
- 使用者可在Messenger內讀書並與角色互動Messenger
- MongoDB 6.0.3 使用者管理MongoDB
- MongoDB之使用者管理MongoDB
- MongoDB:使用者認證MongoDB
- MongoDB 3.0 使用者建立MongoDB
- PostgreSQL技術大講堂 - Part 6:PG使用者與角色管理SQL
- Oracle使用者訪問許可權與PUBLIC角色的關係Oracle訪問許可權
- Oracle使用者角色許可權管理Oracle
- sqlserver 查詢使用者角色指令碼SQLServer指令碼
- Oracle之使用者、特權和角色Oracle
- Oracle使用者、許可權、角色管理Oracle
- MongoDB使用者管理,Version: 2.0.2MongoDB
- mongodb的使用者認證MongoDB
- mongodb使用者許可權管理最全攻略:使用者的建立、檢視、刪除與修改,mongodb入坑之旅MongoDB
- 使用者角色許可權管理架構架構
- Oracle建立使用者、角色、授權、建表Oracle
- Oracle基礎 08 使用者角色 user/roleOracle
- [學習]ORACLE使用者、角色、許可權Oracle
- Oracle使用者、許可權、角色管理【轉】Oracle
- 購買驅動因素與未來角色:10%的iPhone使用者佩戴,Apple Watch 使用者過億iPhoneAPP
- 【Mongo】mongodb的使用者認證MongoDB
- 【ASP.NET Core】按使用者角色授權ASP.NET
- Oracle中使用者、角色、與許可權涉及的相關表及檢視Oracle
- Mongodb 也有collation 與 如何使用MongoDB
- 【clickhouse專欄】新建庫角色使用者初始化
- 檢視Oracle使用者的許可權或角色Oracle
- 查詢使用者的系統許可權和使用者所擁有的角色
- 使用者角色許可權控制包 Laravel-permission 使用說明Laravel
- MongoDB管理使用者相關操作總結MongoDB
- Laravel——使用者角色許可權控制包 Laravel-permissionLaravel
- 對不同角色使用者設定不同的系統首頁