1. 程式人生 > >mongo-yum安裝-配置用戶權限

mongo-yum安裝-配置用戶權限

讀寫 存在 lin 內部 而且 讀寫權限 b- 文件的 write

安裝

安裝步驟參考https://www.cnblogs.com/layezi/p/7290082.html

安裝前註意: 此教程是通過yum安裝的.僅限64位centos系統

安裝步驟:

1、創建倉庫文件:

vi /etc/yum.repos.d/mongodb-org-3.4.repo

然後復制下面配置,保存退出

[mongodb-org-3.4]

name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4
.asc

2、yum安裝

yum install -y mongodb-org

沒有權限就在前面加: sudo

安裝完畢後修改配置文件:

vi /etc/mongod.conf

修改配置文件的 bind_ip, 默認是 127.0.0.1 只限於本機連接。所以安裝完成後必須把這個修改為 0.0.0.0 ,否則通過別的機器是沒法連接的!

3、啟動、停止、重啟

MongoDB默認將數據文件存儲在/var/lib/mongo目錄,默認日誌文件在/var/log/mongodb中。如果要修改,可以在 /etc/mongod.conf 配置中指定備用日誌和數據文件目錄。

啟動命令:

service mongod start

停止命令:

service mongod stop

查看mongoDB是否啟動成功:

可以通過查看日誌文件

cat /var/log/mongodb/mongod.log

日誌文件應該會出現如下一句說明

[initandlisten] waiting for connections on port <port>

<port> 是mongodb運行端口

也可以通過下面命令檢查是否啟動成功

chkconfig mongod on

4、使用

[root@instance-d0nk2r2c ~]# mongo
 
## 查看數據庫
> show dbs;
 
## 查看數據庫版本 > db.version(); ## 常用命令幫助 > db.help();

權限

和其他所有數據庫一樣,權限的管理都差不多一樣。mongodb存儲所有的用戶信息在admin 數據庫的集合system.users中,保存用戶名、密碼和數據庫信息。mongodb默認不啟用授權認證,只要能連接到該服務器,就可連接到mongod。若要啟用安全認證,需要更改配置文件參數auth。

想要添加用戶密碼驗證首先需要添加用戶,用戶存在system.users 表中

> use admin
switched to db admin
 db.createUser({user:admin,pwd:admin123,roles:[{ "role" : "userAdminAnyDatabase", "db" : "admin" }]})

剛建立了 userAdminAnyDatabase 角色,用來管理用戶,可以通過這個角色來創建、刪除用戶。

有沒有一個超級權限?不僅可以授權,而且也可以對集合進行任意操作?答案是肯定的,只是不建議使用。那就是role角色設置成root

db.createUser({user:root,pwd:root,roles:[{ "role" : "root", "db" : "admin" }]})

添加了兩個用戶可以語句查看:

db.system.users.find()

此時連接仍然是沒有驗證的,我們需要重啟mongodb,並且要在啟動時帶上auth參數,才會開啟驗證

/usr/bin/mongod -f /etc/mongod.conf --auth

用戶角色授權:

#授予角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])  

db.grantRolesToUser( "admin" , [ { role: "userAdminAnyDatabase", db: "admin" } ])  

#取消角色:db.grantRolesToUser( "userName" , [ { role: "<role>", db: "<database>" } ])  

db.revokeRolesFromUser( "admin" , [ { role: "userAdminAnyDatabase", db: "admin" } ])  

roles:指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。role裏的角色可以選:

Built-In Roles(內置角色):
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root  
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system

Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限

mongo-yum安裝-配置用戶權限