mongo-yum安裝-配置用戶權限
安裝
安裝步驟參考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安裝-配置用戶權限