Создайте файл .repo для создания источника mongodb.
vi /etc/yum.repos.d/mongodb-org-4.0.repo
Добавить информацию о конфигурации
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Установить
выберите загрузку
-
самая стабильная версия
sudo yum install -y mongodb-org
-
указанная версия
sudo yum install -y mongodb-org-4.0.11 mongodb-org-server-4.0.11 mongodb-org-shell-4.0.11 mongodb-org-mongos-4.0.11 mongodb-org-tools-4.0.11
-
Не обновлять версию
exclude = mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
Проверить установку
rpm -qa |grep mongodb
rpm -ql mongodb-org-server
запускать
запустить службуsystemctl start mongod.service
открытый портnetstat -natp | grep 27017
Посмотреть прогрессps -aux | grep mongod
проверятьmongo
Общие команды
// 1、开启MongoDB
sudo service mongod start 或者 systemctl start mongod.service # 开启MongoDB
sudo chkconfig mongod on # 加入开机启动
sudo service mongod restart # 重启MongoDB
// 2、关闭MongoDB
sudo service mongod stop # 关闭防火墙
// 3、卸载MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org) # 卸载MongoDB
sudo rm -r /var/log/mongodb # 删除日志文件
sudo rm -r /var/lib/mongo # 删除数据文件
Удаленное подключение
1. Изменить конфигурацию
vi /etc/mongod.conf
# network interfaces
net:
port: 27017
# 127.0.0.1仅能主机连接,需改成0.0.0.0
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
2. Перезагрузить
sudo service mongod restart
3. Открытые порты
systemctl status firewalld # 查看防火墙状态
firewall-cmd --zone=public --add-port=27017/tcp --permanent # mongodb默认端口号
firewall-cmd --reload # 重新加载防火墙
firewall-cmd --zone=public --query-port=27017/tcp # 查看端口号是否开放成功,输出yes开放成功,no则失败
4. Удаленное подключение
mongo your server address:27017
Установка пароля
1 (создать) войти в базу данных администратора
use admin
2. Создайте учетную запись администратора
db.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
3. Тест
db.auto('root','123456')
вернуть1
верно
4. Включить проверку
sudo vi /etc/mongod.conf
Исправлять#security:
для
security:
authorization: enabled
5. Перезапустите службу
sudo service mongod restart
6. Протестируйте базу данных администратора
mongo
в базу данных,use admin
Переключитесь на базу данных администратора и запуститеshow users
Будет сообщено об ошибке, поскольку вы не подтвердили свою личность, вам необходимо сначала подтвердитьdb.auth('root','123456')
, беги сноваshow users
Отображается ожидаемая информация.
7. Создайте дополнительные пароли к базе данных
Первая потребностьuse admin
Переключиться на аутентификацию администратораdb.auth('root','123456')
, Переключиться на базу данных TESTuse test
, то есть создание пользовательских разрешений в соответствующей базе данных может быть успешным. Здесь создайте пользователя с разрешениями на чтение-запись, создание-удаление для тестовой базы данных и разрешениями только на чтение для других баз данных.db.createUser({user:'test',pwd:'test',roles:[{role:'readWrite',db:'test'},{role:'dbAdmin',db:'test'},'read']})
8. Протестируйте другие базы данных
exit
Выйдите из данных, а затем снова введитеmongo
,use test
Войдите в тестовую базу данных,show collections
При попытке запроса коллекции сообщается об ошибке.db.auth('test','test')
Проверьте вход, запросите коллекцию сноваshow collections
, об ошибке не сообщается (при отсутствии коллекции информация отображаться не будет).
9. Проверьте удаленное соединение
mongo your server address:27017/test
, проверьте разрешения, метод такой же, как в шаге 8.
10. Готово~~
таблица ролей
Классификация | роль | Короткое описание |
---|---|---|
Роли пользователей БД |
read readWrite
|
Создайте пользователя для базы данных и назначьте права на чтение и запись в базу данных. |
Роли администратора БД |
dbAdmin dbOwner userAdmin
|
Имеет право создавать базы данных и создавать пользователей |
Административные роли Калстера |
clusterAdmin clusterManager clusterMonitor hostManager
|
Группа администраторов, управляет всей системой |
Роли резервного копирования и восстановления |
backup restore
|
резервное копирование базы данных, восстановление базы данных |
Все роли базы данных |
readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase
|
Имеет права на административные операции |
Роли суперпользователя | root |
dbOwner userAdmin userAdminAnyDatabaseЭти роли предоставляют возможность иметь любые разрешения для любого пользователя на любые данные Пользователи с этой ролью могут определять свои собственные разрешения на любую базу данных |
описание роли
- Чтение: позволяет пользователю читать указанную базу данных.
- readWrite: позволяет пользователям читать и записывать в указанную базу данных
- dbAdmin: позволяет пользователям выполнять административные функции в указанной базе данных, такие как создание индекса, удаление, просмотр статистики или доступ к system.profile.
- userAdmin: позволяет пользователям записывать в коллекцию system.users, а также может создавать, удалять и управлять пользователями в указанной базе данных.
- clusterAdmin: доступен только в базе данных администратора, предоставляет пользователю административные привилегии для всех функций, связанных с набором сегментов и реплик.
- readAnyDatabase: доступно только в базе данных администратора, что дает пользователю разрешение на чтение для всех баз данных.
- readWriteAnyDatabase: доступно только в базе данных администратора, что дает пользователю права на чтение и запись для всех баз данных.
- userAdminAnyDatabase: доступен только в базе данных администратора, предоставляя пользователю права userAdmin для всех баз данных.
- dbAdminAnyDatabase: доступен только в базе данных администратора, предоставляя пользователю привилегии dbAdmin для всех баз данных.
- root: доступен только в базе данных администратора. супер аккаунт, супер полномочия