# تعریف کاربران در MySQL
## شرح مسئله
برای تعریف کاربران با سطوح دسترسی متفاوت Ansible Playbook بنویسید که بتوان در MySQL کاربران را با سطوح دسترسی متفاوت تعریف کرد.
کاربران بدین شکل در group_vars تعریف شده اند (این Playbook در لینک انتهای صفحه در دسترس است):
```
---
grants:
- name: john
host: "%"
password: qazwsx
grants:
- "testdb5.*:SELECT,INSERT,UPDATE,DELETE,CREATE"
- "testdb4.*:SELECT,INSERT,UPDATE,DELETE"
- "testdb3.*:SELECT,INSERT"
- "testdb2.*:SELECT"
- name: foo
host: "%"
password: 1234
grants:
- "testdb2.*:SELECT"
- "testdb3.*:UPDATE"
- name: bar
host: "172.16.16.%"
password: 1111
grants:
- "testdb2.*:SELECT"
- "testdb1.*:DELETE"
- "testdb4.*:SELECT,INSERT,UPDATE,DELETE"
- "testdb3.*:SELECT,INSERT"
- name: sara
host: "localhost"
password: 2222
grants:
- "testdb5.*:SELECT,INSERT,UPDATE,DELETE,CREATE"
- "testdb3.*:SELECT,INSERT"
- "testdb2.*:SELECT"
- "testdb4.*:SELECT,INSERT,UPDATE,DELETE"
```
پس از اجرای این Playbook انتظار داریم کاربران طبق این دسترسی ها در MySQL ایجاد شوند.
**نکته: در هنگام ارسال، اطلاعات اتصال به MySQL در تسک Ansible را حذف کنید.**
تغییرات خود را فقط در فایل `roles/grants/tasks/grants.yml` اعمال کنید.
نحوه ی اجرای تست:
```
ansible-playbook site.yml
```
## نحوهی ارسال جواب
تغییرات خودتان را در محیط تست در فایل `roles/grants/tasks/grants.yml` اعمال کنید و سپس فایل های خود را به صورت zip شده با ساختار زیر ارسال نمایید.( فایل ها را از لینک انتهای صفحه دریافت نمایید)
```
├── docker-compose.yml
├── group_vars
│ └── all
│ ├── main.yml
│ └── mysql.yml
├── inventory
│ └── sample
│ └── hosts.yml
├── roles
│ └── grants
│ ├── handlers
│ ├── tasks
│ │ ├── main.yml
│ │ └── grants.yml
│ └── templates
└── site.yml
```
#### دریافت فایل های محیط تست
فایل های مورد نیاز تست از طریق [این لینک](/problemset/assignments/4367/download_problem_initial_project/88644/) قابل دسترس می باشد.