SlideShare a Scribd company logo
«‫در‬ ‫دسترسی‬ ‫کنترل‬ ‫و‬ ‫امنیت‬ ‫بررسی‬
‫ی‬ ‫داده‬ ‫پایگاه‬mysql»
‫داده‬ ‫پایگاه‬ ‫امنیت‬ ‫درس‬ ‫کالسی‬ ‫ارائه‬
‫مدرس‬ ‫تربیت‬ ‫دانشگاه‬
‫دهندگان‬ ‫ارائه‬:
«‫قاسمی‬ ‫یاسمن‬ ‫و‬ ‫سیدی‬ ‫زهرا‬»
‫درس‬ ‫استاد‬:
‫نوگورانی‬ ‫دری‬ ‫صادق‬
‫اول‬ ‫نیمسال‬۹۸-۱۳۹۷
۸‫دی‬۱۳۹۷
‫ویدیو‬:https://www.aparat.com/v/oXKSw
‫در‬ ‫دسترسی‬ ‫مجوز‬ ‫سیستم‬MYSQL
•‫مثل‬ ‫دسترسی‬ ‫مجوزهای‬SELECT،INSERT،UPDATE‫و‬DELETE
•‫مشابه‬ ‫کاربری‬ ‫واسط‬ ‫در‬ ‫استفاده‬ ‫مورد‬ ‫دستورات‬SQL‫هستند‬.‫مثال‬:CREATE،GRANT‫و‬
REVOKE
•‫سیستمی‬ ‫ی‬‫داده‬ ‫پایگاه‬ ‫در‬ ‫مجوزها‬ ‫اطالعات‬ ‫تمامی‬ ‫سازی‬ ‫ذخیره‬mysql
•‫کاربر‬ ‫یک‬ ‫دسترسی‬ ‫مجوزهای‬ ‫ی‬‫مشاهده‬ ‫برای‬ ‫استفاده‬ ‫مورد‬ ‫دستور‬:
• SHOW GRANTS FOR ‘Ali'@'office.example.com';
•‫گیرد‬‫می‬ ‫شکل‬ ‫دهد‬ ‫انجام‬ ‫خواهد‬‫می‬ ‫را‬ ‫کاری‬ ‫چه‬ ،‫کسی‬ ‫چه‬ ‫اینکه‬ ‫براساس‬ ‫ها‬ ‫مجوز‬ ‫اعطای‬ ‫اصل‬.
‫در‬ ‫دسترسی‬ ‫مجوز‬ ‫سیستم‬MYSQL
•‫ویژگی‬ ‫دو‬ ‫اساس‬ ‫بر‬ ‫ها‬‫موجودیت‬ ‫هویت‬
•‫کاربری‬ ‫نام‬(username)‫مثل‬ ،:Ali
•‫میزبان‬(host)‫مثل‬ ،:home.example.com
•‫و‬ ‫یکسان‬ ‫کاربری‬ ‫نام‬ ‫با‬ ‫کاربر‬ ‫دو‬ ‫تفاوت‬host‫بالعکس‬ ‫یا‬ ‫مشابه‬
•‫بررسی‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫شده‬ ‫متصل‬ ‫کاربران‬ ‫اصالت‬ ‫احراز‬host‫استفاده‬ ‫مورد‬
‫در‬ ‫دسترسی‬ ‫مجوز‬ ‫سیستم‬MYSQL
•‫دسترسی‬ ‫مجوز‬ ‫سیستم‬ ‫که‬ ‫کارهایی‬MySQL‫دهد‬‫نمی‬ ‫را‬ ‫ها‬‫آن‬ ‫امکان‬:
•‫صریح‬ ‫صورت‬ ‫به‬ ‫دسترسی‬ ‫رد‬ ‫کردن‬ ‫مشخص‬ ‫امکان‬ ‫عدم‬
•‫ب‬ ‫مجوزها‬ ‫همان‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫داده‬ ‫پایگاه‬ ‫جداول‬ ‫به‬ ‫دسترسی‬ ‫مجوزهای‬ ‫تخصیص‬ ‫امکان‬ ‫عدم‬‫ر‬
‫باشند‬ ‫نداشته‬ ‫وجود‬ ‫داده‬ ‫پایگاه‬ ‫آن‬ ‫خود‬
•‫اشیا‬ ‫به‬ ‫رمز‬ ‫تخصیص‬ ‫امکان‬ ‫عدم‬(‫شود‬‫می‬ ‫داده‬ ‫کاربران‬ ‫به‬ ‫عبور‬ ‫رمزهای‬)
‫در‬ ‫شده‬ ‫فراهم‬ ‫مجوزهای‬MYSQL
•‫شوند‬‫نمی‬ ‫نظیر‬ ‫خاصی‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫که‬ ‫عمومی‬ ‫مجوزهای‬:
• GRANT RELOAD ON *.* TO ‘Ali'@'localhost';
•‫مجوزها‬ ‫این‬(global)‫شود‬‫می‬ ‫اعمال‬ ‫ها‬‫داده‬ ‫پایگاه‬ ‫تمام‬ ‫بر‬.
•‫مجوزهای‬‫آن‬ ‫داخل‬ ‫اشیا‬ ‫تمام‬ ‫و‬ ‫مشخص‬ ‫ای‬‫داده‬ ‫پایگاه‬ ‫به‬ ‫مربوط‬:
• GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON
mydatabase.* TO ‘Ali'@'localhost';
•‫یا‬ ‫جدول‬ ‫مثل‬ ‫خاص‬ ‫شی‬ ‫یک‬ ‫به‬ ‫شده‬ ‫اعطا‬ ‫مجوزهای‬views
‫مجوز‬ ‫جدول‬ ‫از‬ ‫ستون‬ ‫شی‬
ALL [PRIVILEGES] ‫مترادف‬“all privileges” Server administration
ALTER Alter_priv Tables
CREATE Create_priv
Databases, tables, or
indexes
CREATE TEMPORARY TABLES Create_tmp_table_priv Tables
CREATE USER Create_user_priv Server administration
CREATE VIEW Create_view_priv Views
DELETE Delete_priv Tables
DROP Drop_priv Databases, tables, or views
EXECUTE Execute_priv Stored routines
FILE File_priv File access on server host
GRANT OPTION Grant_priv
Databases, tables, or
stored routines
INDEX Index_priv Tables
INSERT Insert_priv Tables or columns
RELOAD Reload_priv Server administration
‫ایستا‬ ‫مقابل‬ ‫در‬ ‫پویا‬ ‫مجوزهای‬
•‫ی‬‫نسخه‬8
•‫هستند‬ ‫اعطا‬ ‫قابل‬ ‫همیشه‬ ‫و‬ ‫شده‬ ‫ساخته‬ ‫سرور‬ ‫در‬ ‫قبل‬ ‫از‬ ‫ایستا‬ ‫مجوزهای‬.
•‫کرد‬ ‫حذف‬ ‫را‬ ‫ایستا‬ ‫مجوزی‬ ‫توان‬‫نمی‬ ‫سرور‬ ‫عملیات‬ ‫حین‬ ‫در‬.
•‫مجوزهای‬ ‫مثال‬ ‫برای‬SELECT‫یا‬ ‫و‬INSERT‫هستند‬ ‫ایستا‬ ‫انواع‬ ‫از‬.
•‫هستند‬ ‫شدن‬ ‫کم‬ ‫یا‬ ‫و‬ ‫شدن‬ ‫اضافه‬ ‫قابل‬ ‫اجرا‬ ‫حین‬ ‫در‬ ‫پویا‬ ‫مجوزهای‬.
‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬
•‫ی‬‫داده‬ ‫پایگاه‬ ‫در‬ ‫شده‬ ‫داده‬ ‫مجوزهای‬ ‫اطالعات‬ ‫به‬ ‫مربوط‬ ‫زیادی‬ ‫های‬‫جدول‬mysql‫شده‬ ‫تعریف‬
‫ها‬‫آن‬ ‫ترین‬‫مهم‬ ‫ی‬‫جمله‬ ‫از‬ ،‫اند‬:
•‫جدول‬user:‫مجوزهای‬ ‫و‬ ‫کاربران‬ ‫حساب‬ ‫اطالعات‬ ‫شامل‬global
•‫جدول‬db:‫داده‬‫پایگاه‬ ‫سطح‬ ‫در‬ ‫مجوزهای‬
•‫جدول‬tables_priv:‫جداول‬ ‫سطح‬ ‫در‬ ‫مجوزهای‬
•‫جدول‬columns_priv:‫ها‬‫ستون‬ ‫سطح‬ ‫در‬ ‫مجوزهای‬
•‫جدول‬procs_priv:‫به‬ ‫مربوط‬ ‫مجوزهای‬Stored procedure
‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫های‬ ‫ستون‬
•‫یکی‬‫از‬‫ترین‬‫مهم‬‫های‬‫ستون‬‫جدول‬user،‫ستون‬plugin‫است‬.‫این‬‫ستون‬‫مشخص‬‫ی‬‫کننده‬
‫نوع‬‫احراز‬‫اصالت‬‫کاربران‬‫است‬‫و‬‫تواند‬‫می‬‫یکی‬‫از‬‫مقادیر‬‫زیر‬‫را‬‫داشته‬‫باشد‬:
•Caching_sha2_password
•Sha256_password
•Mysql_native_password
•‫با‬‫هر‬‫بار‬‫راه‬‫اندازی‬‫سرور‬(‫مثال‬‫با‬‫دستور‬Flush)،‫سرور‬‫ابتدا‬‫های‬‫ردیف‬‫جدول‬user‫را‬‫بررسی‬
‫کند‬‫می‬.‫در‬‫این‬‫گام‬‫ی‬‫همه‬‫کاربران‬(‫های‬‫ردیف‬‫این‬‫جدول‬)‫باید‬‫دارای‬‫مقداری‬‫برای‬‫ستون‬
plugin،‫باشند‬‫وگرنه‬‫هشداری‬‫مبنی‬‫بر‬‫نادیده‬‫گرفته‬‫شدن‬‫آن‬‫کاربر‬‫ایجاد‬‫خواهد‬‫شد‬.
‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫های‬ ‫ستون‬
•‫ستون‬password_last_changed‫که‬‫نشان‬‫ی‬‫دهنده‬‫آخرین‬‫زمان‬‫تغییر‬‫رمزعبور‬
،‫است‬‫توسط‬‫یکی‬‫از‬‫دستورات‬CREATE_USER،ALTER_USER،SET PASSWORD
‫یا‬GRANT‫تغییر‬‫کند‬‫می‬.
• SET PASSWORD FOR ‘Ali'@'localhost' = ‘new password';
• SET PASSWORD FOR ‘Ali'@'localhost' = PASSWORD(‘new
password');  Versions before 5.7
‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫های‬ ‫ستون‬
•‫ستون‬password_lifetime‫که‬‫نشان‬‫ی‬‫دهنده‬‫ی‬‫دوره‬‫زمانی‬‫اعتبار‬‫رمزعبور‬،‫است‬‫تواند‬‫می‬
‫بدون‬،‫تاریخ‬‫دارای‬‫تاریخ‬‫بر‬‫حسب‬‫روز‬‫و‬‫یا‬‫دارای‬‫مقدار‬‫پیش‬‫فرض‬(‫در‬‫های‬‫نسخه‬‫قبل‬‫از‬5.7‫برابر‬
‫مقدار‬0‫و‬‫در‬‫های‬‫نسخه‬‫بعد‬‫برابر‬360)‫باشد‬:
• ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE NEVER;
• ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 90
DAY;
• ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE DEFAULT;
‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL
•‫می‬ ‫شکل‬ ‫ارتباط‬ ‫رد‬ ‫یا‬ ‫و‬ ‫پذیرش‬ ‫اصلی‬ ‫گام‬ ‫دو‬ ‫طی‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫اتصال‬ ‫برای‬ ‫تالش‬ ‫هر‬ ‫در‬‫در‬ ،‫گیرد‬
‫اول‬ ‫گام‬:
•‫شناسه‬ ‫بررسی‬‫موجودیت‬‫آن‬ ‫نظیر‬ ‫عبور‬ ‫رمز‬ ‫و‬
•‫حساب‬ ‫نبودن‬ ‫یا‬ ‫بودن‬ ‫قفل‬ ‫بررسی‬
•‫شود‬‫می‬ ‫دسترسی‬ ‫رد‬ ‫موجب‬ ‫باال‬ ‫مراحل‬ ‫از‬ ‫یک‬ ‫هر‬ ‫در‬ ‫موفقیت‬ ‫عدم‬.
•‫زیر‬ ‫دستور‬ ‫با‬ ‫حساب‬ ‫یک‬ ‫کردن‬ ‫قفل‬
• create user ‘Ali'@'localhost' identified by 'password' account lock;
•‫ستون‬Account_lock‫جدول‬ ‫از‬user‫است‬ ‫کاربران‬ ‫حساب‬ ‫وضعیت‬ ‫ی‬‫دهنده‬ ‫نشان‬.
‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL
•،‫موجودیت‬ ‫بررسی‬ ‫برای‬mysql‫کند‬‫می‬ ‫عمل‬ ‫زیر‬ ‫صورت‬ ‫به‬:
• select user,host from mysql.user;
•‫عالمت‬%‫مقادیر‬ ‫جای‬ ‫به‬host‫و‬database‫هر‬ ‫که‬ ‫است‬ ‫این‬ ‫معنای‬ ‫به‬host(‫پایگاه‬
‫ای‬‫داده‬)‫است‬ ‫مجاز‬.
•‫است‬ ‫اتصال‬ ‫برای‬ ‫شده‬ ‫قفل‬ ‫کاربر‬ ‫یک‬ ‫درخواست‬ ‫ی‬‫نتیجه‬ ‫زیر‬ ‫خطای‬:
• Access denied for user 'user_name'@'host_name'.
• Account is locked.
‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL
•‫شود‬‫می‬ ‫آغاز‬ ‫دوم‬ ‫گام‬ ،‫ارتباط‬ ‫برقراری‬ ‫از‬ ‫پس‬.
•‫ی‬ ‫دارد‬ ‫وجود‬ ‫آن‬ ‫انجام‬ ‫مجوز‬ ‫آیا‬ ‫و‬ ‫است‬ ‫شده‬ ‫مطرح‬ ‫درخواستی‬ ‫چه‬ ‫که‬ ‫شود‬‫می‬ ‫بررسی‬ ‫گام‬ ‫این‬ ‫طی‬‫ا‬
‫خیر‬.‫گردد‬ ‫اجرا‬ ،‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫بر‬ ‫باید‬ ‫زیر‬ ‫مشابه‬ ‫جوهای‬ ‫و‬ ‫پرس‬ ‫کار‬ ‫این‬ ‫برای‬:
• select * from mysql.tables_priv;
•‫مثل‬ ‫ادمین‬ ‫سطح‬ ‫های‬‫دسترسی‬ ‫که‬ ‫مواقعی‬ ‫برای‬SHUTDOWN‫و‬RELOAD،‫است‬ ‫شده‬ ‫خواسته‬
‫جدول‬ ‫فقط‬ ‫سرور‬user‫کند‬‫می‬ ‫چک‬ ‫را‬.‫است‬ ‫ادمین‬ ‫مجوزهای‬ ‫شامل‬ ‫جدول‬ ‫این‬ ‫تنها‬ ‫زیرا‬.
‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL
•‫است‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫شده‬ ‫داده‬ ‫مجوزهای‬ ‫به‬ ‫مربوط‬ ‫جداول‬ ‫بررسی‬ ‫ترتیب‬:
• Global privileges
OR (database privileges AND host privileges)
OR table privileges
OR column privileges
•‫شود‬‫می‬ ‫داده‬ ‫دسترسی‬ ،‫کند‬ ‫اعطا‬ ‫را‬ ‫دسترسی‬ ‫جدول‬ ‫یک‬ ‫که‬ ‫صورتی‬ ‫در‬.‫تر‬‫پایین‬ ‫جدول‬ ‫به‬ ‫اینصورت‬ ‫غیر‬ ‫در‬
‫رفت‬ ‫خواهیم‬.
‫امن‬ ‫اتصال‬ ‫از‬ ‫استفاده‬
•‫در‬ ‫سرور‬ ‫و‬ ‫کالینت‬ ‫بین‬ ‫امن‬ ‫نا‬ ‫اتصال‬ ‫معایب‬mysql:
•‫دارند‬ ‫دسترسی‬ ‫شبکه‬ ‫به‬ ‫که‬ ‫اشخاصی‬ ‫توسط‬ ‫ترافیک‬ ‫تمام‬ ‫ی‬ ‫مشاهده‬ ‫امکان‬
•‫سرور‬ ‫و‬ ‫کالینت‬ ‫بین‬ ‫شده‬ ‫بدل‬ ‫و‬ ‫رد‬ ‫اطالعات‬ ‫تمام‬ ‫بازرسی‬ ‫امکان‬
•‫شبکه‬ ‫روی‬ ‫خواندن‬ ‫قابل‬ ‫غیر‬ ‫های‬ ‫داده‬ ‫و‬ ‫اطالعات‬ ‫امن‬ ‫ارسال‬
•‫اند‬ ‫مقاوم‬ ‫مختلف‬ ‫های‬ ‫حمله‬ ‫مقابل‬ ‫در‬ ‫که‬ ‫ای‬ ‫رمزگذاری‬ ‫های‬ ‫الگوریتم‬ ‫از‬ ‫استفاده‬ ‫با‬.
•‫در‬ ‫سرور‬ ‫و‬ ‫کالینت‬ ‫بین‬ ‫شده‬ ‫رمزگذاری‬ ‫اتصال‬mysql
•‫پروتکل‬ ‫توسط‬SSL/TLS (Transport Layer Security)
‫فرمت‬ ‫توضیح‬ ‫مقدار‬
--skip-ssl ‫استفاده‬ ‫عدم‬‫رمزشده‬ ‫ارتباط‬ ‫از‬
--ssl ‫ارتباط‬ ‫رمزنگاری‬ ‫کردن‬ ‫فعال‬
--ssl-ca ‫مجوزهای‬ ‫حاوی‬ ‫فایل‬CA‫اعتماد‬ ‫مورد‬ file_name
--ssl-capath
‫مجوزهای‬ ‫فایل‬ ‫حاوی‬ ‫مسیر‬CA‫مورد‬
‫اعتماد‬
dir_name
--ssl-cert ‫عمومی‬ ‫کلید‬ ‫مجوز‬ ‫فایل‬ ‫مسیر‬SSL file_name
--ssl-cipher
‫مورد‬ ‫رمزگذاری‬ ‫برای‬ ‫مجاز‬ ‫رمزهای‬ ‫فهرست‬
‫ارتباط‬ ‫یک‬ ‫در‬ ‫استفاده‬
cipher_list
--ssl-key ‫کلید‬ ‫حاوی‬ ‫فایل‬X.509 file_name
--tls-version
‫ب‬ ‫کالینت‬ ‫توسط‬ ‫استفاده‬ ‫مورد‬ ‫پروتکل‬‫رای‬
‫ارتباط‬ ‫رمزنگاری‬
Protocol_version
‫عبور‬ ‫رمز‬ ‫و‬ ‫کاربری‬ ‫نام‬
•‫ی‬‫ذخیره‬account‫جدول‬ ‫در‬ ‫ها‬user‫ی‬‫داده‬ ‫پایگاه‬ ‫در‬mysql
•‫یک‬account‫و‬ ‫کاربری‬ ‫نام‬ ‫شامل‬host‫متصل‬ ‫سرور‬ ‫به‬ ‫میتواند‬ ‫ها‬‫آن‬ ‫از‬ ‫کاربر‬ ‫که‬ ‫است‬ ‫هایی‬
‫شود‬.
•‫وجود‬ ‫عدم‬ ‫صورت‬ ‫در‬ ‫داده‬ ‫پایگاه‬ ‫امنیت‬ ‫عدم‬password
•‫به‬ ‫شدن‬ ‫متصل‬ ‫برای‬mysql‫یک‬ ‫با‬account‫لینوکس‬ ‫در‬:
shell> mysql --user=finley --password pass
‫کاربری‬ ‫حساب‬ ‫ساخت‬
•‫ایجاد‬ ‫برای‬account‫های‬mysql‫مدیریت‬ ‫عبارات‬ ‫از‬account‫کنیم‬‫می‬ ‫استفاده‬:
•‫ایجاد‬account
CREATE USER
•‫ها‬ ‫مجوز‬ ‫اعطای‬
GRANT
‫کاربری‬ ‫حساب‬ ‫ساخت‬
•‫ساختن‬ ‫و‬ ‫مجوزها‬ ‫دادن‬ ‫و‬ ‫تغییر‬ ‫ایجاد‬ ‫برای‬user‫مجوز‬ ‫که‬ ‫کاربرانی‬ ‫با‬creat user‫دارند‬ ‫را‬
‫مانند‬root‫شویم‬‫می‬ ‫متصل‬ ‫داده‬ ‫پایگاه‬ ‫به‬.
CREATE USER 'finley'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost‘ WITH GRANT
OPTION;
CREATE USER 'finley'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%‘ WITH GRANT OPTION;
CREATE USER 'dummy'@'localhost';
‫کاربری‬ ‫حساب‬ ‫ساخت‬
•‫ساخت‬account‫دارند‬ ‫دسترسی‬ ‫خاص‬ ‫ی‬ ‫داده‬ ‫پایگاه‬ ‫یک‬ ‫به‬ ‫که‬ ‫هایی‬:
CREATE USER 'custom'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON
bankaccount.* TO 'custom'@'localhost';
‫کاربری‬ ‫حساب‬ ‫حذف‬
•‫یک‬ ‫حذف‬ ‫برای‬account:
• DROP USER 'jeffrey'@'localhost';
‫ها‬ ‫نقش‬ ‫از‬ ‫استفاده‬
‫ی‬‫نسخه‬8
•‫نقش‬:‫ها‬‫مجوز‬ ‫از‬ ‫ای‬ ‫مجموعه‬
•‫گرفت‬ ‫ها‬‫آن‬ ‫از‬ ‫یا‬ ‫و‬ ‫داد‬ ‫ها‬‫نقش‬ ‫به‬ ‫هایی‬ ‫مجوز‬ ‫میتوان‬.
•‫نقش‬ ‫مدیریت‬ ‫های‬ ‫قابلیت‬:
•‫نقش‬ ‫ایجاد‬
•‫نقش‬ ‫حذف‬
•‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬
•‫نقش‬ ‫از‬ ‫مجوز‬ ‫سلب‬
•‫ها‬ ‫نقش‬ ‫و‬ ‫ها‬ ‫مجوز‬ ‫نمایش‬
•‫فرض‬ ‫پیش‬ ‫فعال‬ ‫نقش‬ ‫تنظیم‬
•‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫نقش‬ ‫تغییر‬
•‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫نقش‬ ‫نمایش‬
‫نقش‬ ‫حذف‬ ‫و‬ ‫ایجاد‬
•‫کاربر‬ ‫زیادی‬ ‫تعداد‬ ‫به‬ ‫ها‬ ‫مجوز‬ ‫اعطای‬ ‫از‬ ‫جلوگیری‬
•‫مناسب‬ ‫نقش‬ ‫اعطای‬ ‫با‬ ‫کاربر‬ ‫به‬ ‫مجوز‬ ‫اعطای‬ ‫سهولت‬
CREATE ROLE 'app_developer', 'app_read', 'app_write';
DROP ROLE 'app_read', 'app_write';
•‫نقش‬ ‫یک‬ ‫وقتی‬drop‫از‬ ‫نقش‬ ‫آن‬ ‫شود‬‫می‬‫ی‬‫همه‬account‫گرفته‬ ‫بود‬ ‫شده‬ ‫داده‬ ‫آن‬ ‫به‬ ‫که‬ ‫هایی‬
‫میشود‬.
‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬
•‫دستور‬ ‫با‬ ‫کاربران‬ ‫به‬ ‫ها‬‫نقش‬ ‫و‬ ‫ها‬‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬GRANT
•‫ها‬‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬
GRANT ALL ON app_db.* TO 'app_developer';
GRANT SELECT ON app_db.* TO 'app_read';
GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write';
‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬
•‫دستور‬ ‫با‬ ‫کاربران‬ ‫به‬ ‫ها‬‫نقش‬ ‫و‬ ‫ها‬‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬GRANT
•‫کاربران‬ ‫به‬ ‫ها‬ ‫نقش‬ ‫اعطای‬
GRANT 'app_developer' TO 'dev1'@'localhost';
GRANT 'app_read' TO 'read_user1'@'localhost', 'read_user2'@'localhost';
GRANT 'app_read', 'app_write' TO 'rw_user1'@'localhost'
•‫دستور‬ ‫با‬ ‫ها‬ ‫نقش‬ ‫از‬ ‫مجوز‬ ‫سلب‬REVOKE‫شود‬‫می‬ ‫انجام‬:
REVOKE role FROM user
‫ها‬ ‫نقش‬ ‫و‬ ‫ها‬ ‫مجوز‬ ‫نمایش‬
•‫کاربران‬ ‫به‬ ‫شده‬ ‫واگذاری‬ ‫های‬‫نقش‬ ‫همچنین‬ ‫و‬ ‫ها‬‫نقش‬ ‫مجوزهای‬ ‫نمایش‬:
SHOW GRANTS FOR 'dev1'@'localhost' USING 'app_developer';
•‫نشان‬ ‫را‬ ‫کاربر‬ ‫این‬ ‫های‬ ‫نقش‬ ‫فقط‬ ‫زیر‬ ‫دستور‬ ‫اما‬‫دهد‬‫می‬‫دهد‬‫نمی‬ ‫شرح‬ ‫را‬ ‫نقش‬ ‫های‬ ‫مجوز‬ ‫و‬:
SHOW GRANTS FOR 'dev1'@'localhost';
‫فرض‬ ‫پیش‬ ‫فعال‬ ‫نقش‬ ‫تنظیم‬
•‫باشند‬ ‫فعال‬ ‫فرض‬ ‫پیش‬ ‫صورت‬ ‫به‬ ‫باید‬ ‫هایی‬ ‫نقش‬ ‫چه‬ ‫کند‬‫می‬ ‫مشخص‬.
SET DEFAULT ROLE ALL TO
'dev1'@'localhost',
'read_user1'@'localhost',
'read_user2'@'localhost',
'rw_user1'@'localhost';
•‫ف‬ ‫پیش‬ ‫طور‬ ‫به‬ ‫را‬ ‫است‬ ‫شده‬ ‫داده‬ ‫ها‬ ‫آن‬ ‫به‬ ‫نقش‬ ‫آن‬ ‫که‬ ‫کاربر‬ ‫هر‬ ‫برای‬ ‫را‬ ‫ها‬ ‫نقش‬ ‫ی‬ ‫کلیه‬ ‫باال‬ ‫دستور‬‫رض‬
‫کند‬‫می‬ ‫فعال‬.
‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫نقش‬ ‫تغییر‬
•‫د‬ ‫تغییر‬ ‫را‬ ‫فعال‬ ‫های‬ ‫نقش‬ ‫ی‬‫مجموعه‬ ‫میتواند‬ ‫زیر‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کاربر‬ ‫نشست‬ ‫یک‬ ‫طول‬ ‫در‬‫هد‬:
SET ROLE NONE;
SET ROLE ALL EXCEPT 'app_write';
SET ROLE DEFAULT;
‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫های‬‫نقش‬ ‫نمایش‬
•‫باشند‬ ‫فعال‬ ‫غیر‬ ‫یا‬ ‫فعال‬ ‫میتوانند‬ ‫ها‬ ‫نقش‬ ،‫کاربر‬ ‫نشست‬ ‫یک‬ ‫طول‬ ‫در‬.
•‫شود‬‫می‬ ‫اعمال‬ ‫آن‬ ‫های‬ ‫مجوز‬ ‫بودن‬ ‫فعال‬ ‫صورت‬ ‫در‬.
•‫دستور‬ ‫با‬ ‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫های‬‫نقش‬ ‫نمایش‬:
SELECT CURRENT_ROLE();
‫ها‬ ‫حساب‬ ‫منابع‬ ‫محدودیت‬ ‫تنظیمات‬
•‫که‬ ‫هایی‬ ‫محدودیت‬mysql‫برای‬account‫میکند‬ ‫ایجاد‬ ‫منابع‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫ها‬:
•‫بزند‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫هایی‬ ‫کوئری‬ ‫تعداد‬.
•‫کند‬ ‫آپدیت‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫دفعاتی‬ ‫تعداد‬.
•‫شود‬ ‫متصل‬ ‫سرور‬ ‫به‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫دفعاتی‬ ‫تعداد‬.
•‫باشد‬ ‫داشته‬ ‫سرور‬ ‫به‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫همزمانی‬ ‫اتصاالت‬ ‫تعداد‬.
•‫ط‬ ‫از‬ ‫ساعت‬ ‫یک‬ ‫تا‬ ‫درخواستش‬ ‫باشد‬ ‫رسیده‬ ‫باال‬ ‫موارد‬ ‫از‬ ‫کدام‬ ‫هر‬ ‫مجاز‬ ‫حد‬ ‫باالترین‬ ‫به‬ ‫کاربری‬ ‫اگر‬‫رف‬
‫شود‬‫می‬ ‫رد‬ ‫سرور‬.
‫ها‬ ‫حساب‬ ‫منابع‬ ‫محدودیت‬ ‫تنظیمات‬
•‫ایجاد‬ ‫هنگام‬ ‫به‬ ‫محدودیت‬ ‫تعیین‬‫کاربر‬:
CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank'
WITH MAX_QUERIES_PER_HOUR 20
MAX_UPDATES_PER_HOUR 10
MAX_CONNECTIONS_PER_HOUR 5
MAX_USER_CONNECTIONS 2
•‫تعریف‬‫کاربر‬ ‫یک‬ ‫برای‬ ‫محدودیت‬‫موجود‬:
ALTER USER 'francis'@'localhost' WITH MAX_QUERIES_PER_HOUR 100;
ALTER USER 'francis'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 0;
‫ها‬ ‫حساب‬ ‫منابع‬ ‫محدودیت‬ ‫تنظیمات‬
•‫سرور‬ ‫منابع‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫کالینت‬ ‫کردن‬ ‫محدود‬
•‫مقدار‬ ‫تعیین‬max_user_connections‫را‬ ‫کاربر‬ ‫همزمان‬ ‫اتصاالت‬ ‫تعداد‬ ‫صفر‬ ‫غیر‬ ‫مقداری‬ ‫به‬
‫میکند‬ ‫محدود‬.
•‫مقدار‬ ‫بود‬ ‫صفر‬ ‫مقدار‬ ‫اگر‬global max_user_connections‫را‬ ‫کاربر‬ ‫همزمان‬ ‫اتصاالت‬ ‫تعداد‬
‫ندارد‬ ‫وجود‬ ‫کاربر‬ ‫برای‬ ‫محدودیتی‬ ‫هیچ‬ ‫بود‬ ‫صفر‬ ‫هم‬ ‫مقدار‬ ‫این‬ ‫اگر‬ ‫و‬ ‫میکند‬ ‫مشخص‬.
ALTER USER 'user1'@'localhost' WITH MAX_USER_CONNECTIONS 0;
ALTER USER 'user2'@'localhost' WITH MAX_USER_CONNECTIONS 5;
ALTER USER 'user3'@'localhost' WITH MAX_USER_CONNECTIONS 20;
‫کاربری‬ ‫حساب‬ ‫به‬ ‫عبور‬ ‫رمز‬ ‫دادن‬ ‫اختصاص‬
•Mysql‫جدول‬ ‫در‬ ‫پسورد‬ ‫ی‬ ‫ذخیره‬ ‫از‬ ‫قبل‬user‫آن‬ ‫از‬hash‫سپس‬ ‫و‬ ‫میگیرد‬hash‫در‬ ‫را‬ ‫آن‬
‫میکند‬ ‫ذخیره‬ ‫جدول‬.
•‫نام‬ ‫بردن‬ ‫کردن‬ ‫وارد‬ ‫بدون‬ ‫میتوانیم‬ ‫زیر‬ ‫دستور‬ ‫با‬ ‫نباشیم‬ ‫ناشناس‬ ‫کاربر‬ ‫اگر‬account‫رمز‬ ‫خود‬
‫دهیم‬ ‫تغییر‬ ‫را‬ ‫خود‬ ‫عبور‬:
ALTER USER USER() IDENTIFIED BY 'password';
‫عملی‬ ‫بخش‬ ‫مطالب‬ ‫رئوس‬
•‫محیط‬ ‫با‬ ‫آشنایی‬MySQL Benchmark
•‫گرافیکی‬ ‫واسط‬ ‫توسط‬ ‫کاربران‬ ‫های‬‫ویژگی‬ ‫از‬ ‫برخی‬ ‫بررسی‬ ‫ی‬‫نحوه‬
•‫کاربران‬ ‫مجوز‬ ‫ی‬‫دهنده‬ ‫نمایش‬ ‫دستورات‬ ‫اجرای‬
•‫جدول‬ ‫های‬‫ستون‬ ‫توضیح‬ ‫و‬ ‫اجرا‬user
•‫رمزعبورها‬ ‫انقضای‬ ‫زمان‬ ‫تنظیم‬ ‫و‬ ‫کاربران‬ ‫برای‬ ‫عبور‬ ‫رمز‬ ‫تنظیم‬
•‫مربوط‬ ‫دستورات‬ ‫اجرای‬‫و‬ ‫کاربر‬ ‫حذف‬ ‫و‬ ‫ایجاد‬ ‫به‬‫به‬ ‫مجوز‬ ‫اعطای‬‫کاربران‬
•‫کاربران‬ ‫برای‬ ‫محدودیت‬ ‫تعیین‬
•‫منابع‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫کالینت‬ ‫کردن‬ ‫محدود‬‫سرور‬
‫منابع‬
• https://dev.mysql.com/doc/refman/5.7/en/security.html
• https://dev.mysql.com/doc/refman/8.0/en/security.html
• https://dev.mysql.com/doc/refman/8.0/en/account-management-
sql.html
• https://dba.stackexchange.com/questions/209514/what-is-mysql-
native-password
• https://dzone.com/articles/configuring-and-managing-ssl-on-your-
mysql-server
• https://dev.mysql.com/doc/refman/8.0/en/postinstallation.html

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Security in MySQL Database

  • 1. «‫در‬ ‫دسترسی‬ ‫کنترل‬ ‫و‬ ‫امنیت‬ ‫بررسی‬ ‫ی‬ ‫داده‬ ‫پایگاه‬mysql» ‫داده‬ ‫پایگاه‬ ‫امنیت‬ ‫درس‬ ‫کالسی‬ ‫ارائه‬ ‫مدرس‬ ‫تربیت‬ ‫دانشگاه‬ ‫دهندگان‬ ‫ارائه‬: «‫قاسمی‬ ‫یاسمن‬ ‫و‬ ‫سیدی‬ ‫زهرا‬» ‫درس‬ ‫استاد‬: ‫نوگورانی‬ ‫دری‬ ‫صادق‬ ‫اول‬ ‫نیمسال‬۹۸-۱۳۹۷ ۸‫دی‬۱۳۹۷ ‫ویدیو‬:https://www.aparat.com/v/oXKSw
  • 2. ‫در‬ ‫دسترسی‬ ‫مجوز‬ ‫سیستم‬MYSQL •‫مثل‬ ‫دسترسی‬ ‫مجوزهای‬SELECT،INSERT،UPDATE‫و‬DELETE •‫مشابه‬ ‫کاربری‬ ‫واسط‬ ‫در‬ ‫استفاده‬ ‫مورد‬ ‫دستورات‬SQL‫هستند‬.‫مثال‬:CREATE،GRANT‫و‬ REVOKE •‫سیستمی‬ ‫ی‬‫داده‬ ‫پایگاه‬ ‫در‬ ‫مجوزها‬ ‫اطالعات‬ ‫تمامی‬ ‫سازی‬ ‫ذخیره‬mysql •‫کاربر‬ ‫یک‬ ‫دسترسی‬ ‫مجوزهای‬ ‫ی‬‫مشاهده‬ ‫برای‬ ‫استفاده‬ ‫مورد‬ ‫دستور‬: • SHOW GRANTS FOR ‘Ali'@'office.example.com'; •‫گیرد‬‫می‬ ‫شکل‬ ‫دهد‬ ‫انجام‬ ‫خواهد‬‫می‬ ‫را‬ ‫کاری‬ ‫چه‬ ،‫کسی‬ ‫چه‬ ‫اینکه‬ ‫براساس‬ ‫ها‬ ‫مجوز‬ ‫اعطای‬ ‫اصل‬.
  • 3. ‫در‬ ‫دسترسی‬ ‫مجوز‬ ‫سیستم‬MYSQL •‫ویژگی‬ ‫دو‬ ‫اساس‬ ‫بر‬ ‫ها‬‫موجودیت‬ ‫هویت‬ •‫کاربری‬ ‫نام‬(username)‫مثل‬ ،:Ali •‫میزبان‬(host)‫مثل‬ ،:home.example.com •‫و‬ ‫یکسان‬ ‫کاربری‬ ‫نام‬ ‫با‬ ‫کاربر‬ ‫دو‬ ‫تفاوت‬host‫بالعکس‬ ‫یا‬ ‫مشابه‬ •‫بررسی‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫شده‬ ‫متصل‬ ‫کاربران‬ ‫اصالت‬ ‫احراز‬host‫استفاده‬ ‫مورد‬
  • 4. ‫در‬ ‫دسترسی‬ ‫مجوز‬ ‫سیستم‬MYSQL •‫دسترسی‬ ‫مجوز‬ ‫سیستم‬ ‫که‬ ‫کارهایی‬MySQL‫دهد‬‫نمی‬ ‫را‬ ‫ها‬‫آن‬ ‫امکان‬: •‫صریح‬ ‫صورت‬ ‫به‬ ‫دسترسی‬ ‫رد‬ ‫کردن‬ ‫مشخص‬ ‫امکان‬ ‫عدم‬ •‫ب‬ ‫مجوزها‬ ‫همان‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫داده‬ ‫پایگاه‬ ‫جداول‬ ‫به‬ ‫دسترسی‬ ‫مجوزهای‬ ‫تخصیص‬ ‫امکان‬ ‫عدم‬‫ر‬ ‫باشند‬ ‫نداشته‬ ‫وجود‬ ‫داده‬ ‫پایگاه‬ ‫آن‬ ‫خود‬ •‫اشیا‬ ‫به‬ ‫رمز‬ ‫تخصیص‬ ‫امکان‬ ‫عدم‬(‫شود‬‫می‬ ‫داده‬ ‫کاربران‬ ‫به‬ ‫عبور‬ ‫رمزهای‬)
  • 5. ‫در‬ ‫شده‬ ‫فراهم‬ ‫مجوزهای‬MYSQL •‫شوند‬‫نمی‬ ‫نظیر‬ ‫خاصی‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫که‬ ‫عمومی‬ ‫مجوزهای‬: • GRANT RELOAD ON *.* TO ‘Ali'@'localhost'; •‫مجوزها‬ ‫این‬(global)‫شود‬‫می‬ ‫اعمال‬ ‫ها‬‫داده‬ ‫پایگاه‬ ‫تمام‬ ‫بر‬. •‫مجوزهای‬‫آن‬ ‫داخل‬ ‫اشیا‬ ‫تمام‬ ‫و‬ ‫مشخص‬ ‫ای‬‫داده‬ ‫پایگاه‬ ‫به‬ ‫مربوط‬: • GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON mydatabase.* TO ‘Ali'@'localhost'; •‫یا‬ ‫جدول‬ ‫مثل‬ ‫خاص‬ ‫شی‬ ‫یک‬ ‫به‬ ‫شده‬ ‫اعطا‬ ‫مجوزهای‬views
  • 6. ‫مجوز‬ ‫جدول‬ ‫از‬ ‫ستون‬ ‫شی‬ ALL [PRIVILEGES] ‫مترادف‬“all privileges” Server administration ALTER Alter_priv Tables CREATE Create_priv Databases, tables, or indexes CREATE TEMPORARY TABLES Create_tmp_table_priv Tables CREATE USER Create_user_priv Server administration CREATE VIEW Create_view_priv Views DELETE Delete_priv Tables DROP Drop_priv Databases, tables, or views EXECUTE Execute_priv Stored routines FILE File_priv File access on server host GRANT OPTION Grant_priv Databases, tables, or stored routines INDEX Index_priv Tables INSERT Insert_priv Tables or columns RELOAD Reload_priv Server administration
  • 7. ‫ایستا‬ ‫مقابل‬ ‫در‬ ‫پویا‬ ‫مجوزهای‬ •‫ی‬‫نسخه‬8 •‫هستند‬ ‫اعطا‬ ‫قابل‬ ‫همیشه‬ ‫و‬ ‫شده‬ ‫ساخته‬ ‫سرور‬ ‫در‬ ‫قبل‬ ‫از‬ ‫ایستا‬ ‫مجوزهای‬. •‫کرد‬ ‫حذف‬ ‫را‬ ‫ایستا‬ ‫مجوزی‬ ‫توان‬‫نمی‬ ‫سرور‬ ‫عملیات‬ ‫حین‬ ‫در‬. •‫مجوزهای‬ ‫مثال‬ ‫برای‬SELECT‫یا‬ ‫و‬INSERT‫هستند‬ ‫ایستا‬ ‫انواع‬ ‫از‬. •‫هستند‬ ‫شدن‬ ‫کم‬ ‫یا‬ ‫و‬ ‫شدن‬ ‫اضافه‬ ‫قابل‬ ‫اجرا‬ ‫حین‬ ‫در‬ ‫پویا‬ ‫مجوزهای‬.
  • 8. ‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ •‫ی‬‫داده‬ ‫پایگاه‬ ‫در‬ ‫شده‬ ‫داده‬ ‫مجوزهای‬ ‫اطالعات‬ ‫به‬ ‫مربوط‬ ‫زیادی‬ ‫های‬‫جدول‬mysql‫شده‬ ‫تعریف‬ ‫ها‬‫آن‬ ‫ترین‬‫مهم‬ ‫ی‬‫جمله‬ ‫از‬ ،‫اند‬: •‫جدول‬user:‫مجوزهای‬ ‫و‬ ‫کاربران‬ ‫حساب‬ ‫اطالعات‬ ‫شامل‬global •‫جدول‬db:‫داده‬‫پایگاه‬ ‫سطح‬ ‫در‬ ‫مجوزهای‬ •‫جدول‬tables_priv:‫جداول‬ ‫سطح‬ ‫در‬ ‫مجوزهای‬ •‫جدول‬columns_priv:‫ها‬‫ستون‬ ‫سطح‬ ‫در‬ ‫مجوزهای‬ •‫جدول‬procs_priv:‫به‬ ‫مربوط‬ ‫مجوزهای‬Stored procedure
  • 9. ‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫های‬ ‫ستون‬ •‫یکی‬‫از‬‫ترین‬‫مهم‬‫های‬‫ستون‬‫جدول‬user،‫ستون‬plugin‫است‬.‫این‬‫ستون‬‫مشخص‬‫ی‬‫کننده‬ ‫نوع‬‫احراز‬‫اصالت‬‫کاربران‬‫است‬‫و‬‫تواند‬‫می‬‫یکی‬‫از‬‫مقادیر‬‫زیر‬‫را‬‫داشته‬‫باشد‬: •Caching_sha2_password •Sha256_password •Mysql_native_password •‫با‬‫هر‬‫بار‬‫راه‬‫اندازی‬‫سرور‬(‫مثال‬‫با‬‫دستور‬Flush)،‫سرور‬‫ابتدا‬‫های‬‫ردیف‬‫جدول‬user‫را‬‫بررسی‬ ‫کند‬‫می‬.‫در‬‫این‬‫گام‬‫ی‬‫همه‬‫کاربران‬(‫های‬‫ردیف‬‫این‬‫جدول‬)‫باید‬‫دارای‬‫مقداری‬‫برای‬‫ستون‬ plugin،‫باشند‬‫وگرنه‬‫هشداری‬‫مبنی‬‫بر‬‫نادیده‬‫گرفته‬‫شدن‬‫آن‬‫کاربر‬‫ایجاد‬‫خواهد‬‫شد‬.
  • 10. ‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫های‬ ‫ستون‬ •‫ستون‬password_last_changed‫که‬‫نشان‬‫ی‬‫دهنده‬‫آخرین‬‫زمان‬‫تغییر‬‫رمزعبور‬ ،‫است‬‫توسط‬‫یکی‬‫از‬‫دستورات‬CREATE_USER،ALTER_USER،SET PASSWORD ‫یا‬GRANT‫تغییر‬‫کند‬‫می‬. • SET PASSWORD FOR ‘Ali'@'localhost' = ‘new password'; • SET PASSWORD FOR ‘Ali'@'localhost' = PASSWORD(‘new password');  Versions before 5.7
  • 11. ‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫های‬ ‫ستون‬ •‫ستون‬password_lifetime‫که‬‫نشان‬‫ی‬‫دهنده‬‫ی‬‫دوره‬‫زمانی‬‫اعتبار‬‫رمزعبور‬،‫است‬‫تواند‬‫می‬ ‫بدون‬،‫تاریخ‬‫دارای‬‫تاریخ‬‫بر‬‫حسب‬‫روز‬‫و‬‫یا‬‫دارای‬‫مقدار‬‫پیش‬‫فرض‬(‫در‬‫های‬‫نسخه‬‫قبل‬‫از‬5.7‫برابر‬ ‫مقدار‬0‫و‬‫در‬‫های‬‫نسخه‬‫بعد‬‫برابر‬360)‫باشد‬: • ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE NEVER; • ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY; • ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE DEFAULT;
  • 12. ‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL •‫می‬ ‫شکل‬ ‫ارتباط‬ ‫رد‬ ‫یا‬ ‫و‬ ‫پذیرش‬ ‫اصلی‬ ‫گام‬ ‫دو‬ ‫طی‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫اتصال‬ ‫برای‬ ‫تالش‬ ‫هر‬ ‫در‬‫در‬ ،‫گیرد‬ ‫اول‬ ‫گام‬: •‫شناسه‬ ‫بررسی‬‫موجودیت‬‫آن‬ ‫نظیر‬ ‫عبور‬ ‫رمز‬ ‫و‬ •‫حساب‬ ‫نبودن‬ ‫یا‬ ‫بودن‬ ‫قفل‬ ‫بررسی‬ •‫شود‬‫می‬ ‫دسترسی‬ ‫رد‬ ‫موجب‬ ‫باال‬ ‫مراحل‬ ‫از‬ ‫یک‬ ‫هر‬ ‫در‬ ‫موفقیت‬ ‫عدم‬. •‫زیر‬ ‫دستور‬ ‫با‬ ‫حساب‬ ‫یک‬ ‫کردن‬ ‫قفل‬ • create user ‘Ali'@'localhost' identified by 'password' account lock; •‫ستون‬Account_lock‫جدول‬ ‫از‬user‫است‬ ‫کاربران‬ ‫حساب‬ ‫وضعیت‬ ‫ی‬‫دهنده‬ ‫نشان‬.
  • 13. ‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL •،‫موجودیت‬ ‫بررسی‬ ‫برای‬mysql‫کند‬‫می‬ ‫عمل‬ ‫زیر‬ ‫صورت‬ ‫به‬: • select user,host from mysql.user; •‫عالمت‬%‫مقادیر‬ ‫جای‬ ‫به‬host‫و‬database‫هر‬ ‫که‬ ‫است‬ ‫این‬ ‫معنای‬ ‫به‬host(‫پایگاه‬ ‫ای‬‫داده‬)‫است‬ ‫مجاز‬. •‫است‬ ‫اتصال‬ ‫برای‬ ‫شده‬ ‫قفل‬ ‫کاربر‬ ‫یک‬ ‫درخواست‬ ‫ی‬‫نتیجه‬ ‫زیر‬ ‫خطای‬: • Access denied for user 'user_name'@'host_name'. • Account is locked.
  • 14. ‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL •‫شود‬‫می‬ ‫آغاز‬ ‫دوم‬ ‫گام‬ ،‫ارتباط‬ ‫برقراری‬ ‫از‬ ‫پس‬. •‫ی‬ ‫دارد‬ ‫وجود‬ ‫آن‬ ‫انجام‬ ‫مجوز‬ ‫آیا‬ ‫و‬ ‫است‬ ‫شده‬ ‫مطرح‬ ‫درخواستی‬ ‫چه‬ ‫که‬ ‫شود‬‫می‬ ‫بررسی‬ ‫گام‬ ‫این‬ ‫طی‬‫ا‬ ‫خیر‬.‫گردد‬ ‫اجرا‬ ،‫شده‬ ‫اعطا‬ ‫مجوزهای‬ ‫جداول‬ ‫بر‬ ‫باید‬ ‫زیر‬ ‫مشابه‬ ‫جوهای‬ ‫و‬ ‫پرس‬ ‫کار‬ ‫این‬ ‫برای‬: • select * from mysql.tables_priv; •‫مثل‬ ‫ادمین‬ ‫سطح‬ ‫های‬‫دسترسی‬ ‫که‬ ‫مواقعی‬ ‫برای‬SHUTDOWN‫و‬RELOAD،‫است‬ ‫شده‬ ‫خواسته‬ ‫جدول‬ ‫فقط‬ ‫سرور‬user‫کند‬‫می‬ ‫چک‬ ‫را‬.‫است‬ ‫ادمین‬ ‫مجوزهای‬ ‫شامل‬ ‫جدول‬ ‫این‬ ‫تنها‬ ‫زیرا‬.
  • 15. ‫در‬ ‫دسترسی‬ ‫کنترل‬MYSQL •‫است‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫شده‬ ‫داده‬ ‫مجوزهای‬ ‫به‬ ‫مربوط‬ ‫جداول‬ ‫بررسی‬ ‫ترتیب‬: • Global privileges OR (database privileges AND host privileges) OR table privileges OR column privileges •‫شود‬‫می‬ ‫داده‬ ‫دسترسی‬ ،‫کند‬ ‫اعطا‬ ‫را‬ ‫دسترسی‬ ‫جدول‬ ‫یک‬ ‫که‬ ‫صورتی‬ ‫در‬.‫تر‬‫پایین‬ ‫جدول‬ ‫به‬ ‫اینصورت‬ ‫غیر‬ ‫در‬ ‫رفت‬ ‫خواهیم‬.
  • 16. ‫امن‬ ‫اتصال‬ ‫از‬ ‫استفاده‬ •‫در‬ ‫سرور‬ ‫و‬ ‫کالینت‬ ‫بین‬ ‫امن‬ ‫نا‬ ‫اتصال‬ ‫معایب‬mysql: •‫دارند‬ ‫دسترسی‬ ‫شبکه‬ ‫به‬ ‫که‬ ‫اشخاصی‬ ‫توسط‬ ‫ترافیک‬ ‫تمام‬ ‫ی‬ ‫مشاهده‬ ‫امکان‬ •‫سرور‬ ‫و‬ ‫کالینت‬ ‫بین‬ ‫شده‬ ‫بدل‬ ‫و‬ ‫رد‬ ‫اطالعات‬ ‫تمام‬ ‫بازرسی‬ ‫امکان‬ •‫شبکه‬ ‫روی‬ ‫خواندن‬ ‫قابل‬ ‫غیر‬ ‫های‬ ‫داده‬ ‫و‬ ‫اطالعات‬ ‫امن‬ ‫ارسال‬ •‫اند‬ ‫مقاوم‬ ‫مختلف‬ ‫های‬ ‫حمله‬ ‫مقابل‬ ‫در‬ ‫که‬ ‫ای‬ ‫رمزگذاری‬ ‫های‬ ‫الگوریتم‬ ‫از‬ ‫استفاده‬ ‫با‬. •‫در‬ ‫سرور‬ ‫و‬ ‫کالینت‬ ‫بین‬ ‫شده‬ ‫رمزگذاری‬ ‫اتصال‬mysql •‫پروتکل‬ ‫توسط‬SSL/TLS (Transport Layer Security)
  • 17. ‫فرمت‬ ‫توضیح‬ ‫مقدار‬ --skip-ssl ‫استفاده‬ ‫عدم‬‫رمزشده‬ ‫ارتباط‬ ‫از‬ --ssl ‫ارتباط‬ ‫رمزنگاری‬ ‫کردن‬ ‫فعال‬ --ssl-ca ‫مجوزهای‬ ‫حاوی‬ ‫فایل‬CA‫اعتماد‬ ‫مورد‬ file_name --ssl-capath ‫مجوزهای‬ ‫فایل‬ ‫حاوی‬ ‫مسیر‬CA‫مورد‬ ‫اعتماد‬ dir_name --ssl-cert ‫عمومی‬ ‫کلید‬ ‫مجوز‬ ‫فایل‬ ‫مسیر‬SSL file_name --ssl-cipher ‫مورد‬ ‫رمزگذاری‬ ‫برای‬ ‫مجاز‬ ‫رمزهای‬ ‫فهرست‬ ‫ارتباط‬ ‫یک‬ ‫در‬ ‫استفاده‬ cipher_list --ssl-key ‫کلید‬ ‫حاوی‬ ‫فایل‬X.509 file_name --tls-version ‫ب‬ ‫کالینت‬ ‫توسط‬ ‫استفاده‬ ‫مورد‬ ‫پروتکل‬‫رای‬ ‫ارتباط‬ ‫رمزنگاری‬ Protocol_version
  • 18. ‫عبور‬ ‫رمز‬ ‫و‬ ‫کاربری‬ ‫نام‬ •‫ی‬‫ذخیره‬account‫جدول‬ ‫در‬ ‫ها‬user‫ی‬‫داده‬ ‫پایگاه‬ ‫در‬mysql •‫یک‬account‫و‬ ‫کاربری‬ ‫نام‬ ‫شامل‬host‫متصل‬ ‫سرور‬ ‫به‬ ‫میتواند‬ ‫ها‬‫آن‬ ‫از‬ ‫کاربر‬ ‫که‬ ‫است‬ ‫هایی‬ ‫شود‬. •‫وجود‬ ‫عدم‬ ‫صورت‬ ‫در‬ ‫داده‬ ‫پایگاه‬ ‫امنیت‬ ‫عدم‬password •‫به‬ ‫شدن‬ ‫متصل‬ ‫برای‬mysql‫یک‬ ‫با‬account‫لینوکس‬ ‫در‬: shell> mysql --user=finley --password pass
  • 19. ‫کاربری‬ ‫حساب‬ ‫ساخت‬ •‫ایجاد‬ ‫برای‬account‫های‬mysql‫مدیریت‬ ‫عبارات‬ ‫از‬account‫کنیم‬‫می‬ ‫استفاده‬: •‫ایجاد‬account CREATE USER •‫ها‬ ‫مجوز‬ ‫اعطای‬ GRANT
  • 20. ‫کاربری‬ ‫حساب‬ ‫ساخت‬ •‫ساختن‬ ‫و‬ ‫مجوزها‬ ‫دادن‬ ‫و‬ ‫تغییر‬ ‫ایجاد‬ ‫برای‬user‫مجوز‬ ‫که‬ ‫کاربرانی‬ ‫با‬creat user‫دارند‬ ‫را‬ ‫مانند‬root‫شویم‬‫می‬ ‫متصل‬ ‫داده‬ ‫پایگاه‬ ‫به‬. CREATE USER 'finley'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost‘ WITH GRANT OPTION; CREATE USER 'finley'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%‘ WITH GRANT OPTION; CREATE USER 'dummy'@'localhost';
  • 21. ‫کاربری‬ ‫حساب‬ ‫ساخت‬ •‫ساخت‬account‫دارند‬ ‫دسترسی‬ ‫خاص‬ ‫ی‬ ‫داده‬ ‫پایگاه‬ ‫یک‬ ‫به‬ ‫که‬ ‫هایی‬: CREATE USER 'custom'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* TO 'custom'@'localhost';
  • 22. ‫کاربری‬ ‫حساب‬ ‫حذف‬ •‫یک‬ ‫حذف‬ ‫برای‬account: • DROP USER 'jeffrey'@'localhost';
  • 23. ‫ها‬ ‫نقش‬ ‫از‬ ‫استفاده‬ ‫ی‬‫نسخه‬8 •‫نقش‬:‫ها‬‫مجوز‬ ‫از‬ ‫ای‬ ‫مجموعه‬ •‫گرفت‬ ‫ها‬‫آن‬ ‫از‬ ‫یا‬ ‫و‬ ‫داد‬ ‫ها‬‫نقش‬ ‫به‬ ‫هایی‬ ‫مجوز‬ ‫میتوان‬. •‫نقش‬ ‫مدیریت‬ ‫های‬ ‫قابلیت‬: •‫نقش‬ ‫ایجاد‬ •‫نقش‬ ‫حذف‬ •‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬ •‫نقش‬ ‫از‬ ‫مجوز‬ ‫سلب‬ •‫ها‬ ‫نقش‬ ‫و‬ ‫ها‬ ‫مجوز‬ ‫نمایش‬ •‫فرض‬ ‫پیش‬ ‫فعال‬ ‫نقش‬ ‫تنظیم‬ •‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫نقش‬ ‫تغییر‬ •‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫نقش‬ ‫نمایش‬
  • 24. ‫نقش‬ ‫حذف‬ ‫و‬ ‫ایجاد‬ •‫کاربر‬ ‫زیادی‬ ‫تعداد‬ ‫به‬ ‫ها‬ ‫مجوز‬ ‫اعطای‬ ‫از‬ ‫جلوگیری‬ •‫مناسب‬ ‫نقش‬ ‫اعطای‬ ‫با‬ ‫کاربر‬ ‫به‬ ‫مجوز‬ ‫اعطای‬ ‫سهولت‬ CREATE ROLE 'app_developer', 'app_read', 'app_write'; DROP ROLE 'app_read', 'app_write'; •‫نقش‬ ‫یک‬ ‫وقتی‬drop‫از‬ ‫نقش‬ ‫آن‬ ‫شود‬‫می‬‫ی‬‫همه‬account‫گرفته‬ ‫بود‬ ‫شده‬ ‫داده‬ ‫آن‬ ‫به‬ ‫که‬ ‫هایی‬ ‫میشود‬.
  • 25. ‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬ •‫دستور‬ ‫با‬ ‫کاربران‬ ‫به‬ ‫ها‬‫نقش‬ ‫و‬ ‫ها‬‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬GRANT •‫ها‬‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬ GRANT ALL ON app_db.* TO 'app_developer'; GRANT SELECT ON app_db.* TO 'app_read'; GRANT INSERT, UPDATE, DELETE ON app_db.* TO 'app_write';
  • 26. ‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬ •‫دستور‬ ‫با‬ ‫کاربران‬ ‫به‬ ‫ها‬‫نقش‬ ‫و‬ ‫ها‬‫نقش‬ ‫به‬ ‫مجوز‬ ‫اعطای‬GRANT •‫کاربران‬ ‫به‬ ‫ها‬ ‫نقش‬ ‫اعطای‬ GRANT 'app_developer' TO 'dev1'@'localhost'; GRANT 'app_read' TO 'read_user1'@'localhost', 'read_user2'@'localhost'; GRANT 'app_read', 'app_write' TO 'rw_user1'@'localhost' •‫دستور‬ ‫با‬ ‫ها‬ ‫نقش‬ ‫از‬ ‫مجوز‬ ‫سلب‬REVOKE‫شود‬‫می‬ ‫انجام‬: REVOKE role FROM user
  • 27. ‫ها‬ ‫نقش‬ ‫و‬ ‫ها‬ ‫مجوز‬ ‫نمایش‬ •‫کاربران‬ ‫به‬ ‫شده‬ ‫واگذاری‬ ‫های‬‫نقش‬ ‫همچنین‬ ‫و‬ ‫ها‬‫نقش‬ ‫مجوزهای‬ ‫نمایش‬: SHOW GRANTS FOR 'dev1'@'localhost' USING 'app_developer'; •‫نشان‬ ‫را‬ ‫کاربر‬ ‫این‬ ‫های‬ ‫نقش‬ ‫فقط‬ ‫زیر‬ ‫دستور‬ ‫اما‬‫دهد‬‫می‬‫دهد‬‫نمی‬ ‫شرح‬ ‫را‬ ‫نقش‬ ‫های‬ ‫مجوز‬ ‫و‬: SHOW GRANTS FOR 'dev1'@'localhost';
  • 28. ‫فرض‬ ‫پیش‬ ‫فعال‬ ‫نقش‬ ‫تنظیم‬ •‫باشند‬ ‫فعال‬ ‫فرض‬ ‫پیش‬ ‫صورت‬ ‫به‬ ‫باید‬ ‫هایی‬ ‫نقش‬ ‫چه‬ ‫کند‬‫می‬ ‫مشخص‬. SET DEFAULT ROLE ALL TO 'dev1'@'localhost', 'read_user1'@'localhost', 'read_user2'@'localhost', 'rw_user1'@'localhost'; •‫ف‬ ‫پیش‬ ‫طور‬ ‫به‬ ‫را‬ ‫است‬ ‫شده‬ ‫داده‬ ‫ها‬ ‫آن‬ ‫به‬ ‫نقش‬ ‫آن‬ ‫که‬ ‫کاربر‬ ‫هر‬ ‫برای‬ ‫را‬ ‫ها‬ ‫نقش‬ ‫ی‬ ‫کلیه‬ ‫باال‬ ‫دستور‬‫رض‬ ‫کند‬‫می‬ ‫فعال‬.
  • 29. ‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫نقش‬ ‫تغییر‬ •‫د‬ ‫تغییر‬ ‫را‬ ‫فعال‬ ‫های‬ ‫نقش‬ ‫ی‬‫مجموعه‬ ‫میتواند‬ ‫زیر‬ ‫دستور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کاربر‬ ‫نشست‬ ‫یک‬ ‫طول‬ ‫در‬‫هد‬: SET ROLE NONE; SET ROLE ALL EXCEPT 'app_write'; SET ROLE DEFAULT;
  • 30. ‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫های‬‫نقش‬ ‫نمایش‬ •‫باشند‬ ‫فعال‬ ‫غیر‬ ‫یا‬ ‫فعال‬ ‫میتوانند‬ ‫ها‬ ‫نقش‬ ،‫کاربر‬ ‫نشست‬ ‫یک‬ ‫طول‬ ‫در‬. •‫شود‬‫می‬ ‫اعمال‬ ‫آن‬ ‫های‬ ‫مجوز‬ ‫بودن‬ ‫فعال‬ ‫صورت‬ ‫در‬. •‫دستور‬ ‫با‬ ‫جاری‬ ‫نشست‬ ‫در‬ ‫فعال‬ ‫های‬‫نقش‬ ‫نمایش‬: SELECT CURRENT_ROLE();
  • 31. ‫ها‬ ‫حساب‬ ‫منابع‬ ‫محدودیت‬ ‫تنظیمات‬ •‫که‬ ‫هایی‬ ‫محدودیت‬mysql‫برای‬account‫میکند‬ ‫ایجاد‬ ‫منابع‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫ها‬: •‫بزند‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫هایی‬ ‫کوئری‬ ‫تعداد‬. •‫کند‬ ‫آپدیت‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫دفعاتی‬ ‫تعداد‬. •‫شود‬ ‫متصل‬ ‫سرور‬ ‫به‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫دفعاتی‬ ‫تعداد‬. •‫باشد‬ ‫داشته‬ ‫سرور‬ ‫به‬ ‫میتواند‬ ‫ساعت‬ ‫یک‬ ‫در‬ ‫کاربر‬ ‫یک‬ ‫که‬ ‫همزمانی‬ ‫اتصاالت‬ ‫تعداد‬. •‫ط‬ ‫از‬ ‫ساعت‬ ‫یک‬ ‫تا‬ ‫درخواستش‬ ‫باشد‬ ‫رسیده‬ ‫باال‬ ‫موارد‬ ‫از‬ ‫کدام‬ ‫هر‬ ‫مجاز‬ ‫حد‬ ‫باالترین‬ ‫به‬ ‫کاربری‬ ‫اگر‬‫رف‬ ‫شود‬‫می‬ ‫رد‬ ‫سرور‬.
  • 32. ‫ها‬ ‫حساب‬ ‫منابع‬ ‫محدودیت‬ ‫تنظیمات‬ •‫ایجاد‬ ‫هنگام‬ ‫به‬ ‫محدودیت‬ ‫تعیین‬‫کاربر‬: CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank' WITH MAX_QUERIES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 5 MAX_USER_CONNECTIONS 2 •‫تعریف‬‫کاربر‬ ‫یک‬ ‫برای‬ ‫محدودیت‬‫موجود‬: ALTER USER 'francis'@'localhost' WITH MAX_QUERIES_PER_HOUR 100; ALTER USER 'francis'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 0;
  • 33. ‫ها‬ ‫حساب‬ ‫منابع‬ ‫محدودیت‬ ‫تنظیمات‬ •‫سرور‬ ‫منابع‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫کالینت‬ ‫کردن‬ ‫محدود‬ •‫مقدار‬ ‫تعیین‬max_user_connections‫را‬ ‫کاربر‬ ‫همزمان‬ ‫اتصاالت‬ ‫تعداد‬ ‫صفر‬ ‫غیر‬ ‫مقداری‬ ‫به‬ ‫میکند‬ ‫محدود‬. •‫مقدار‬ ‫بود‬ ‫صفر‬ ‫مقدار‬ ‫اگر‬global max_user_connections‫را‬ ‫کاربر‬ ‫همزمان‬ ‫اتصاالت‬ ‫تعداد‬ ‫ندارد‬ ‫وجود‬ ‫کاربر‬ ‫برای‬ ‫محدودیتی‬ ‫هیچ‬ ‫بود‬ ‫صفر‬ ‫هم‬ ‫مقدار‬ ‫این‬ ‫اگر‬ ‫و‬ ‫میکند‬ ‫مشخص‬. ALTER USER 'user1'@'localhost' WITH MAX_USER_CONNECTIONS 0; ALTER USER 'user2'@'localhost' WITH MAX_USER_CONNECTIONS 5; ALTER USER 'user3'@'localhost' WITH MAX_USER_CONNECTIONS 20;
  • 34. ‫کاربری‬ ‫حساب‬ ‫به‬ ‫عبور‬ ‫رمز‬ ‫دادن‬ ‫اختصاص‬ •Mysql‫جدول‬ ‫در‬ ‫پسورد‬ ‫ی‬ ‫ذخیره‬ ‫از‬ ‫قبل‬user‫آن‬ ‫از‬hash‫سپس‬ ‫و‬ ‫میگیرد‬hash‫در‬ ‫را‬ ‫آن‬ ‫میکند‬ ‫ذخیره‬ ‫جدول‬. •‫نام‬ ‫بردن‬ ‫کردن‬ ‫وارد‬ ‫بدون‬ ‫میتوانیم‬ ‫زیر‬ ‫دستور‬ ‫با‬ ‫نباشیم‬ ‫ناشناس‬ ‫کاربر‬ ‫اگر‬account‫رمز‬ ‫خود‬ ‫دهیم‬ ‫تغییر‬ ‫را‬ ‫خود‬ ‫عبور‬: ALTER USER USER() IDENTIFIED BY 'password';
  • 35. ‫عملی‬ ‫بخش‬ ‫مطالب‬ ‫رئوس‬ •‫محیط‬ ‫با‬ ‫آشنایی‬MySQL Benchmark •‫گرافیکی‬ ‫واسط‬ ‫توسط‬ ‫کاربران‬ ‫های‬‫ویژگی‬ ‫از‬ ‫برخی‬ ‫بررسی‬ ‫ی‬‫نحوه‬ •‫کاربران‬ ‫مجوز‬ ‫ی‬‫دهنده‬ ‫نمایش‬ ‫دستورات‬ ‫اجرای‬ •‫جدول‬ ‫های‬‫ستون‬ ‫توضیح‬ ‫و‬ ‫اجرا‬user •‫رمزعبورها‬ ‫انقضای‬ ‫زمان‬ ‫تنظیم‬ ‫و‬ ‫کاربران‬ ‫برای‬ ‫عبور‬ ‫رمز‬ ‫تنظیم‬ •‫مربوط‬ ‫دستورات‬ ‫اجرای‬‫و‬ ‫کاربر‬ ‫حذف‬ ‫و‬ ‫ایجاد‬ ‫به‬‫به‬ ‫مجوز‬ ‫اعطای‬‫کاربران‬ •‫کاربران‬ ‫برای‬ ‫محدودیت‬ ‫تعیین‬ •‫منابع‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫کالینت‬ ‫کردن‬ ‫محدود‬‫سرور‬
  • 36. ‫منابع‬ • https://dev.mysql.com/doc/refman/5.7/en/security.html • https://dev.mysql.com/doc/refman/8.0/en/security.html • https://dev.mysql.com/doc/refman/8.0/en/account-management- sql.html • https://dba.stackexchange.com/questions/209514/what-is-mysql- native-password • https://dzone.com/articles/configuring-and-managing-ssl-on-your- mysql-server • https://dev.mysql.com/doc/refman/8.0/en/postinstallation.html