SlideShare a Scribd company logo
1 of 20
Download to read offline
Database view
Database view"‫"منطقي‬ ‫افتراضي‬ ‫جدول‬ ‫عن‬ ‫عبارة‬ ‫وهو‬ ‫المعطيات‬ ‫قواعد‬ ‫أغراض‬ ‫من‬ ‫غرض‬ ‫هو‬
‫باستخدام‬ ‫إنشاؤه‬ ‫يتم‬select query‫أعمدة‬ ‫و‬ ‫سطور‬ ‫على‬ ‫يحوي‬ ‫فإنه‬ ‫للجدول‬ ‫مشابه‬ ‫المنظار‬ ‫.وألن‬
‫لغة‬ . ‫إنشاؤها‬ ‫تم‬ ‫التي‬ ‫المناظير‬ ‫على‬ ‫االستعالمات‬ ‫إجراء‬ ‫على‬ ‫قادر‬ ‫ستكون‬ ‫فإنك‬ ‫ولذلك‬Mysql‫تمكنك‬
.‫الحقا‬ ‫عرضها‬ ‫سيتم‬ ‫شروط‬ ‫عدة‬ ‫االعتبار‬ ‫بعين‬ ‫تأخذ‬ ‫ولكن‬ ‫المنظار‬ ‫داخل‬ ‫معطيات‬ ‫تعديل‬ ‫من‬ ‫أيضا‬
‫دينامي‬ ‫يتغير‬ ‫المنظار‬. ‫منها‬ ‫باالستعالم‬ ‫إنشاؤه‬ ‫تم‬ ‫التي‬ ‫الجداول‬ ‫محتوى‬ ‫تغيير‬ ‫عند‬ ‫كيا‬
‫المنظار‬ ‫ميزات‬view:
1-‫الجداول‬ ‫ربط‬ ‫تعليمات‬ ‫استخدام‬ ‫يمكن‬ : ‫المعقدة‬ ‫االستعالمات‬ ‫تبسيط‬ ‫لك‬ ‫تتيح‬ ‫المناظير‬(join ,
union ..‫التعامل‬ ‫يتم‬ ‫بحيث‬ ‫المعقدة‬ ‫لالستعالمات‬ ‫تبسيط‬ ‫المنظار‬ ‫يعد‬ ‫لذلك‬ ‫المناظير‬ ‫إنشاء‬ ‫في‬ )
‫مثل‬ ‫البسيطة‬ ‫االستعالمات‬ ‫باستخدام‬ ‫منظار‬ ‫جعله‬ ‫بعد‬ ‫المعقد‬ ‫االستعالم‬ ‫مع‬select ..
2-‫المستخدمين‬ ‫صالحيات‬ ‫تقييد‬ " ‫للمعطيات‬ ‫المستخدمين‬ ‫وصول‬ ‫بمدى‬ ‫التحكم‬ ‫في‬ ‫تساعد‬ ‫المناظير‬
‫كنت‬ ‫فإذا‬ : "‫قابلة‬ ‫جعلها‬ ‫تريد‬ ‫ال‬ ‫بحيث‬ ‫العالية‬ ‫األهمية‬ ‫ذات‬ ‫المعطيات‬ ‫من‬ ‫مجموعة‬ ‫تملك‬
‫حساسة‬ ‫الغير‬ ‫المعطيات‬ ‫بعرض‬ ‫المنظار‬ ‫لك‬ ‫يتيح‬ ‫عندها‬ ‫المستخدمين‬ ‫قبل‬ ‫من‬ ‫لالستعالم‬
. ‫لالستعالم‬ ‫قابلة‬ ‫وجعلها‬ ‫للمستخدمين‬
3-‫مناظ‬ ‫إنشاء‬ ‫لك‬ ‫تتيح‬ ‫ألنها‬ : ‫المعطيات‬ ‫لقواعد‬ ‫إضافية‬ ‫حماية‬ ‫طبقة‬ ‫تشكل‬ ‫المناظير‬‫للقراءة‬ ‫قابلة‬ ‫ير‬
‫فقط‬READ ONLY. ‫حذف‬ ‫أو‬ ‫إضافة‬ ‫أو‬ ‫تعديل‬ ‫ألي‬ ‫قابلة‬ ‫غير‬ ‫و‬
4-‫قاعدة‬ ‫تصميم‬ ‫عند‬ ‫أنه‬ ‫نعلم‬ ‫نحن‬ :‫ضمنها‬ ‫الجداول‬ ‫على‬ ‫الحسابية‬ ‫العمليات‬ ‫تخزين‬ ‫المناظير‬ ‫تتيح‬
‫أخرى‬ ‫وحقول‬ ‫جداول‬ ‫على‬ ‫حسابية‬ ‫عمليات‬ ‫عن‬ ‫تنتج‬ ‫حقول‬ ‫على‬ ‫تحوي‬ ‫أال‬ ‫يجب‬ ‫المعطيات‬,
‫المنظار‬ ‫إنشاء‬ ‫عند‬ ‫ولكن‬‫عملية‬ ‫وتتم‬ ‫ضمنه‬ ‫الجداول‬ ‫على‬ ‫الحسابية‬ ‫العمليات‬ ‫تخزين‬ ‫يمكن‬
‫الجداول‬ ‫تغير‬ ‫مع‬ ‫ديناميكيا‬ ‫المحسوبة‬ ‫تتغيرالقيم‬ ‫المنظار‬ ‫عن‬ ‫فيها‬ ‫يستعلم‬ ‫مرة‬ ‫كل‬ ‫عند‬ ‫الحساب‬
. ‫األساسية‬
: ‫المنظار‬ ‫استخدام‬ ‫مساوئ‬
1-‫مناظ‬ ‫إنشاء‬ ‫عند‬ ‫خصوصا‬ ‫أبطأ‬ ‫يصبح‬ ‫أن‬ ‫يمكن‬ ‫المناظير‬ ‫من‬ ‫المعطيات‬ ‫عن‬ ‫االستعالم‬‫تعتمد‬ ‫ير‬
. ‫أخرى‬ ‫مناظير‬ ‫على‬
2-. ‫بها‬ ‫المرتبطة‬ ‫المناظير‬ ‫تغيير‬ ‫أيضا‬ ‫يجب‬ ‫بمناظير‬ ‫المرتبطة‬ ‫الجداول‬ ‫بنية‬ ‫تغيير‬ ‫عند‬
‫المناظير‬ ‫إنشاء‬ ‫تعليمات‬
: ‫هو‬ ‫منظور‬ ‫إلنشاء‬ ‫العام‬ ‫الشكل‬
CREATE [ ALGORITHM = {MERGE | TEMPTABLE |UNDEFINED]
VIEW [database_name].[view_name]
AS [SELECT statement]
‫أن‬ ‫حيث‬ ‫الخوارزمية‬ ‫مع‬ ‫نبدأ‬MySQL‫كما‬ ‫وهي‬ ‫المنظار‬ ‫إنشاء‬ ‫كيفية‬ ‫لتحديد‬ ‫خوارزميات‬ ‫ثالث‬ ‫تعتمد‬
: ‫يلي‬
MERGE‫المنظار‬ ‫على‬ ‫الواردة‬ ‫االستعالمات‬ ‫تفسير‬ ‫سيتم‬ ‫الدمج‬ ‫خوارزمية‬ ‫استخدام‬ ‫عند‬ :
‫ال‬ ‫األولى‬ ‫بالطريقة‬‫عبارة‬ ‫احتوت‬ ‫حال‬ ‫في‬ ‫مسموحة‬ ‫غير‬ ‫الدمج‬ ‫خوارزمية‬ ‫إن‬ . ‫سابقا‬ ‫مشروحة‬
SELECT‫مثل‬ ‫تجميعية‬ ‫توابع‬ ‫على‬MAX,MIN,AVG,COUNT,SUM … etc
‫مثل‬ ‫عبارات‬ ‫أو‬DISTINCT,GROUP BY,HAVING,LIMIT,UNION,UNION ALL
‫فإن‬ ‫مسموحة‬ ‫غير‬ ‫الدمج‬ ‫خوارزمية‬ ‫كانت‬ ‫حال‬ ‫وفي‬ ‫فرعية‬ ‫استعالمات‬ ‫أو‬MySQL‫سيغير‬
‫خوارزمية‬ ‫إلى‬ ‫تلقائيا‬UNDEFINED.
TEMPTABLE‫الواردة‬ ‫االستعالمات‬ ‫تفسير‬ ‫سيتم‬ ‫المؤقت‬ ‫الجدول‬ ‫خوارزمية‬ ‫استخدام‬ ‫عند‬ :
‫وألن‬ . ‫سابقا‬ ‫المشروحة‬ ‫الثانية‬ ‫بالطريقة‬ ‫المنظار‬ ‫على‬MySQL‫مؤقت‬ ‫جدول‬ ‫بإنشاء‬ ‫ستقوم‬
‫هذه‬ ‫فإن‬ ‫الجدول‬ ‫هذا‬ ‫الى‬ ‫الرئيسية‬ ‫الجداول‬ ‫من‬ ‫البيانات‬ ‫وتنقل‬‫من‬ ‫فاعلية‬ ‫أقل‬ ‫الخوارزمية‬
‫للتحديث‬ ‫قابلة‬ ‫غير‬ ‫لكونها‬ ‫باإلضافة‬ ‫الدمج‬ ‫خوارزمية‬
UNDEFINED‫دون‬ ‫المنظار‬ ‫إنشاء‬ ‫عند‬ ‫وذلك‬ ‫افتراضية‬ ‫كخوارزمية‬ ‫الخوارزمية‬ ‫هذه‬ ‫تستخدم‬ :
‫لـ‬ ‫عندها‬ ‫ويكون‬ , ‫السابقتين‬ ‫الخوارزميتين‬ ‫إحدى‬ ‫تحديد‬MySQL‫الدمج‬ ‫خوارزمية‬ ‫بين‬ ‫الخيار‬
MERGE‫الج‬ ‫وخوارزمية‬‫المؤقت‬ ‫دول‬TEMPTABLE.MySQL‫الجدول‬ ‫على‬ ‫الدمج‬ ‫يفضل‬
.‫فاعلية‬ ‫أكثر‬ ‫إلنها‬ ‫المؤقل‬
‫جدول‬ ‫باسم‬ ‫المنظار‬ ‫تسمية‬ ‫يجوز‬ ‫فال‬ ‫الجدول‬ ‫بنية‬ ‫نفس‬ ‫للمنظار‬ ‫وإلن‬ ‫للمنظار‬ ‫اسم‬ ‫تحديد‬ ‫يتم‬ ‫ذلك‬ ‫بعد‬
. ‫سابقا‬ ‫موجود‬
‫عبارة‬ ‫كتابة‬ ‫تتم‬ ‫ذلك‬ ‫وبعد‬SELECT‫جد‬ ‫أي‬ ‫عن‬ ‫نستعلم‬ ‫ان‬ ‫ممكن‬ ‫خاللها‬ ‫من‬ ‫والتي‬‫موجود‬ ‫منظار‬ ‫أو‬ ‫ول‬
. ‫المعطيات‬ ‫قاعدة‬ ‫ضمن‬
‫مثل‬ ‫سابقا‬ ‫تعلمناها‬ ‫التي‬ ‫التعليمات‬ ‫طريق‬ ‫عن‬ ‫المنظار‬ ‫تعديل‬ ‫يمكن‬update‫على‬ ‫جديدة‬ ‫أسطر‬ ‫إضافة‬ ‫أو‬
‫تعليمة‬ ‫طريق‬ ‫عن‬ ‫المنظار‬Insert: ‫وهي‬ ‫اال‬ ‫بالمنظار‬ ‫خاصة‬ ‫جديدة‬ ‫صيغة‬ ‫عنطريق‬ ‫أو‬
Create or replace view [view name] as select [select statement]
‫خوارزمية‬ ‫استخدام‬ ‫يمكن‬ ‫طالما‬ ‫مسموحا‬ ‫يكون‬ ‫التعديل‬ ‫هذا‬ ‫لكن‬merge‫المنظار‬ ‫إنشاء‬ ‫في‬
‫قواعد‬ ‫في‬ ‫المناظير‬ ‫استخدام‬ ‫على‬ ‫أمثلة‬‫البيانات‬
‫الموظفين‬ ‫عن‬ ‫معلومات‬ ‫يحوي‬ ‫منظار‬ ‫انشاء‬
mysql> CREATE VIEW emp_dep AS SELECT name , gender , salary FROM
employee;
‫النتيجة‬ ‫عن‬ ‫لالستعالم‬
mysql> SELECT * FROM emp_dep;
‫المنظار‬ ‫الى‬ ‫جديد‬ ‫موظف‬ ‫إدخال‬
mysql>INSERT INTO emp_dep VALUES(6,”ahmad sh”,”male”,4,7500);
‫من‬ ‫اي‬ ‫او‬ ‫تجميعي‬ ‫تابع‬ ‫اي‬ ‫على‬ ‫احتوائه‬ ‫لعدم‬ ‫وذلك‬ ‫المنظار‬ ‫بتحديث‬ ‫القيام‬ ‫استطعنا‬ ‫اننا‬ ‫نالحظ‬
‫تجع‬ ‫التي‬ ‫التليمات‬‫إضافته‬ ‫تمت‬ ‫قد‬ ‫الجديد‬ ‫الموظف‬ ‫ان‬ ‫نالحظ‬ ‫كما‬ ‫للتعديل‬ ‫قابل‬ ‫غير‬ ‫المنظار‬ ‫ل‬
‫األصل‬ ‫الجدول‬ ‫الى‬
mysql> SELECT * FROM employee;
‫الرواتب‬ ‫من‬ ‫متوسط‬ ‫أكبر‬ ‫يصرف‬ ‫الذي‬ ‫القسم‬ ‫عن‬ ‫استعلم‬
‫قسم‬ ‫كل‬ ‫في‬ ‫الرواتب‬ ‫متوسط‬ ‫على‬ ‫يحوي‬ ‫منظار‬ ‫بإنشاء‬ ‫نقوم‬
mysql> CREATE VIEW avg_salary (depname,avg) AS SELECT d.depmame ,
avg(e.salary) FROM employee e , department d
WHERE e.depid=d.depid GROUP BY e.depid;
‫الرواتب‬ ‫من‬ ‫متوسط‬ ‫أكبر‬ ‫يملك‬ ‫الذي‬ ‫القسم‬ ‫عن‬ ‫نستعلم‬ ‫ثم‬ ‫ومن‬
mysql> SELECT depname FROM avr_salary WHERE avg = ( select
max(avg) from avr_salary) ;
‫ذل‬ ‫من‬ ‫وللتأكد‬ ‫تجميعي‬ ‫تابع‬ ‫على‬ ‫احتوى‬ ‫ألنه‬ ‫للتعديل‬ ‫قابل‬ ‫غير‬ ‫السابق‬ ‫المنظار‬ ‫ان‬ ‫نالحظ‬‫بإجراء‬ ‫نقوم‬ ‫ك‬
‫في‬ ‫إنشاؤها‬ ‫تم‬ ‫التي‬ ‫المناظير‬ ‫جميع‬ ‫في‬ ‫التعديل‬ ‫خاصية‬ ‫لنا‬ ‫ُظهر‬‫ي‬ ‫بحيث‬ ‫التالي‬ ‫االستعالم‬‫المعطيات‬ ‫قاعدة‬
‫نختارها‬ ‫التي‬
mysql> SELECT table_name,is_updatable FROM
information_schema.views WHERE table_schema="test1" ;
‫للتعديل‬ ‫قابل‬ ‫غير‬ ‫السابق‬ ‫المنظار‬ ‫وان‬ ‫صحيح‬ ‫كالمنا‬ ‫أن‬ ‫الحظ‬
.
‫بأضا‬ ‫نقوم‬ ‫االساسي‬ ‫الجددول‬ ‫تغير‬ ‫مع‬ ‫الديناميكي‬ ‫التغير‬ ‫وهي‬ ‫للمنظار‬ ‫الهامة‬ ‫الميزة‬ ‫لنالحظ‬‫اسطر‬ ‫عدة‬ ‫فة‬
‫ومن‬ ‫االساسي‬ ‫للجدول‬‫على‬ ‫االستعالم‬ ‫بإجراء‬ ‫نقوم‬ ‫ثم‬‫النتائج‬ ‫اختالف‬ ‫وسنالحظ‬ ‫المنظار‬
mysql> INSERT INTO employee
VALUES(7,” Shukri”,”male”,2,112233);
mysql> SELECT depname FROM avr_salary WHERE avg=(select
max(avg) from avr_salary) ;
‫اسم‬ ‫عن‬ ‫واستعلم‬ ‫أوالده‬ ‫وعدد‬ ‫وقسمه‬ ‫موظف‬ ‫كل‬ ‫اسم‬ ‫عن‬ ‫استعلم‬‫الذ‬ ‫الموظف‬ ‫وقسم‬‫عد‬ ‫أكبر‬ ‫لديه‬ ‫ي‬‫د‬‫م‬‫ن‬
‫االوال‬: ‫التالي‬ ‫المنظار‬ ‫بإنشاء‬ ‫نقوم‬ . ‫د‬
mysql> CREATE VIEW emp_dep_chil (emp_name,depname,no_of_chil)
AS SELECT e.name,d.depname,count(c.ch_id) FROM employee e
LEFT JOIN department d ON e.depid=d.depid LEFT JOIN children c
ON e.empid=c.empid GROUP BY e.name;
mysql> select * from emp_dep_chil ;
mysql> SELECT emp_name,depname FROM emp_dep_chil WHERE
no_of_chil=(select max(no_of_chil) from emp_dep_chil) ;
‫أوالده‬ ‫عدد‬ ‫عن‬ ‫استعلم‬ ‫ثم‬ ‫راتب‬ ‫اعلى‬ ‫يأخذ‬ ‫الذي‬ ‫الموظف‬ ‫اسم‬ ‫عن‬ ‫استعلم‬:
‫نقوم‬‫على‬ ‫يعتمد‬ ‫المنظار‬ ‫هذا‬ ‫و‬ ‫االكبر‬ ‫الراتب‬ ‫صاحب‬ ‫الموظف‬ ‫اسم‬ ‫عن‬ ‫لالستعالم‬ ‫منظار‬ ‫بأنشاء‬
‫المنظار‬emp_dep
mysql> CREATE VIEW max_salary AS SELECT name FROM emp_dep
WHERE salary=(select max(salary) from emp_dep) ;
mysql> select * from max_salary ;
‫باالستعالم‬ ‫نقوم‬‫المنظارين‬ ‫على‬ ‫باالعتماد‬ ‫االكبر‬ ‫الراتب‬ ‫ذو‬ ‫الموظف‬ ‫اوالد‬ ‫عدد‬ ‫عن‬
max_salary &&& emp_dep_chil
mysql> SELECT no_of_chil FROM emp_dep_chil WHERE
emp_name=(select * from max_salary ) ;
‫اس‬‫السابقة‬ ‫المناظير‬ ‫على‬ ‫اعتمادا‬ ‫االكبر‬ ‫الراتب‬ ‫ذو‬ ‫الموظف‬ ‫قسم‬ ‫و‬ ‫اسم‬ ‫عن‬ ‫تعلم‬
mysql> SELECT depname,emp_name FROM emp_dep_chil WHERE
emp_name=(select * from max_salary);
:‫مقدمة‬
‫يسمى‬ ‫ما‬ ‫عليها‬ ‫يطلق‬ ‫التي‬ ‫و‬ ‫البيانات‬ ‫قواعد‬ ‫إدارة‬ ‫بعملية‬ ‫المتعلقة‬ ‫الخاصة‬ ‫القضايا‬ ‫بعض‬ ‫هناك‬
Database Administration( ً‫ا‬‫اختصار‬ ‫يسمى‬ ‫ما‬ ‫أو‬DBA. )
‫أهمية‬ ‫تظهر‬‫معظم‬ ‫في‬ ‫الحال‬ ‫هو‬ ‫كما‬ ‫شخص‬ ‫من‬ ‫أكثر‬ ‫طريق‬ ‫عن‬ ‫استخدامها‬ ‫عند‬ ‫البيانات‬ ‫قواعد‬ ‫إدارة‬
..‫المنظمات‬ ‫و‬ ‫الشركات‬
‫الحماية‬Security:
‫البيانات‬ ‫قاعدة‬ ‫عن‬ ‫المسؤول‬ ‫الشخص‬ ‫به‬ ‫يقوم‬ ‫عمل‬ ‫أهم‬database administrator(DBA‫منع‬ ‫هو‬ )
.‫البيانات‬ ‫قاعدة‬ ‫إلى‬ ‫المرخص‬ ‫غير‬ ‫الوصول‬
‫ال‬ ‫يقوم‬ ‫حيث‬DBA‫و‬‫و‬ ‫صالحياته‬ ‫بتحديد‬ ‫مستخدم‬ ‫لكل‬ ‫العمل‬ ‫متطلبات‬ ‫و‬ ‫الشركة‬ ‫قوانين‬ ‫على‬ ‫باالعتماد‬
.‫به‬ ‫القيام‬ ‫يمكنه‬ ‫ما‬
‫بيانات‬ ‫قواعد‬ ‫معظم‬SQL: ‫هما‬ ‫للحماية‬ ‫آليتين‬ ‫توفر‬
1‫.التحكم‬‫ب‬‫المستخدمين‬.
2)‫الوهمية(المناظير‬ ‫الجداول‬ ‫.إنشاء‬View.
ً‫ال‬‫أو‬-‫التحكم‬‫ب‬:‫المستخدمين‬
‫صالحيات‬ ‫و‬ ‫سر‬ ‫كلمة‬ ‫و‬ ‫اسم‬ ‫مستخدم‬ ‫لكل‬ ‫يكون‬Privileges‫قاعدة‬ ‫مدير‬ ‫بواسطة‬ ‫بهم‬ ‫التحكم‬ ‫يتم‬
..‫المعطيات‬
: ‫البيانات‬ ‫قاعدة‬ ‫بمدير‬ ‫تتعلق‬ ‫والتي‬ ‫الهامة‬ ‫األمور‬ ‫بعض‬ ‫فهم‬ ‫علينا‬ ‫يجب‬ ‫األمور‬ ‫بتلك‬ ‫الخوض‬ ‫قبل‬
‫ي‬‫المعطيات‬ ‫قاعدة‬ ‫أن‬ ‫معرفة‬ ‫علينا‬ ‫جب‬mysql‫مخ‬ ‫جداول‬ ‫خمسة‬ ‫على‬ ‫تحوي‬ ‫أساسي‬ ‫بشكل‬‫في‬ ‫صصة‬
. ‫المدير‬ ‫قبل‬ ‫من‬ ‫الممنوحة‬ ‫الصالحيات‬ ‫تخزين‬
1.‫جدول‬db table‫المستخدمين‬ ‫من‬ ‫معطيات‬ ‫قاعدة‬ ‫كل‬ ‫على‬ ‫المفروضة‬ ‫الصالحيات‬ ‫على‬ ‫:يحوي‬
‫واالعمدة‬ ‫الجدلول‬ ‫على‬ ‫المطبقة‬ ‫والصالحيات‬ ‫مضيف‬ ‫أي‬ ‫ومن‬ ‫بالدخول‬ ‫لهم‬ ‫المخول‬
.‫القاعدة‬ ‫تلك‬ ‫في‬ ‫واألجرائيات‬
2.‫جدول‬User table‫حسابات‬ ‫على‬ ‫:يحوي‬‫لمنع‬ ‫ويستخدم‬ ‫العامة‬ ‫الصالحية‬ ‫وأعمدة‬ ‫المستخدمين‬
. ‫المعطيات‬ ‫لقاعدة‬ ‫معين‬ ‫مضيف‬ ‫دخول‬ ‫قبول‬ ‫أو‬
3.‫جدول‬Table_priv:‫الصالحيات‬ ‫هذه‬ ‫وتشمل‬ ‫الجدول‬ ‫على‬ ‫المطبقة‬ ‫الصالحيات‬ ‫على‬ ‫يحوي‬
.‫الجدول‬ ‫أعمدة‬
4.‫جدول‬columns_priv:‫التشمل‬ ‫الصالحيات‬ ‫وهذه‬ ‫ما‬ ‫جدول‬ ‫أعمدة‬ ‫الصالحيات‬ ‫على‬ ‫يحوي‬
‫الجدو‬.‫ككل‬ ‫ل‬
5.‫جدول‬Procs_priv:‫المخزنة‬ ‫التوابع‬ ‫أو‬ ‫لألجرائيات‬ ‫الممنوحة‬ ‫الصالحيات‬ ‫الجدول‬ ‫هذا‬ ‫يتضمن‬
. ‫القاعدة‬ ‫تلك‬ ‫في‬
‫الحسابات‬ ‫إدارة‬ ‫تعليمات‬Account Management System:
CREATE USER Syntax.1
2.DROP USER Syntax
3.GRANT Syntax
4.RENAME USER Syntax
5.REVOKE Syntax
6.SET PASSWORD Syntax
CREATE USER Syntax.1:
CREATE USER user [IDENTIFIED BY [PASSWORD]
'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']]
...
‫نقو‬ ‫حتى‬‫م‬‫تعليمة‬ ‫نستخدم‬ ‫جديد‬ ‫مستخدم‬ ‫بإنشاء‬Create user‫تعليمة‬ ‫باستخدام‬ ‫حتى‬ ‫أو‬Insert.
‫عن‬ ‫ينتج‬ ‫أنه‬ ‫حيث‬‫في‬ ‫جديد‬ ‫سطر‬ ‫جديد‬ ‫مستخدم‬ ‫إضافة‬
mysql.user table.
‫يتم‬ ‫مستخدم‬ ‫كل‬: ‫التالية‬ ‫بالطريقة‬ ‫تسميته‬ ‫تتم‬ ‫إضافته‬‘Medfa’@’localhost’
•‫تحديد‬ ‫فقط‬ ‫أردنا‬ ‫إذا‬user_name‫نستبدل‬localhost‫ب‬‘%’‫أو‬’‘_‫يستطيع‬ ‫المستخم‬ ‫يعنيأن‬ ‫وهذا‬
‫مضيف‬ ‫أي‬ ‫من‬ ‫المعطيات‬ ‫بقاعدة‬ ‫االتصال‬.
‫الخيار‬ ‫باستخدام‬ ‫سر‬ ‫كلمة‬ ‫للحساب‬ ‫نضع‬ ‫أن‬ ‫يمكن‬IDENTIFIED BY.
:‫مثال‬
Create user ‘Tajj’@’localhost’ identified by ‘Taj1234’;
:‫ثانية‬ ‫طريقة‬
Use mysql;
mysql> insert into user( user,host,password)
values('Medfa','localhost',password('taj1234'));
‫التابع‬ ‫استخدام‬ ‫إن‬ :‫مالحظة‬Password‫لنا‬ ‫توفره‬ ‫الذي‬MySQL‫السر‬ ‫كلمة‬ ‫بتشفير‬ ‫يقوم‬
mysql> insert into user( user,host,password)
values('christine','localhost','12345tt');
DROP USER Syntax:
drop user 'username'@'hostname', 'username1'@'hostname……
‫تعليمة‬ ‫تستخدم‬DROP USER‫حسابات‬ ‫من‬ ‫أكثر‬ ‫أو‬ ‫حساب‬ ‫إلزالة‬MySQL.
‫صالحية‬ ‫لدينا‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫اإلزالة‬ ‫من‬ ‫نتمكن‬ ‫حتى‬Create user‫أو‬Delete‫من‬‫بيانات‬ ‫قاعدة‬
mysql.
.ً‫ا‬‫تلقائي‬ ‫صالحياته‬ ‫حذف‬ ‫يتم‬ ‫مستخدم‬ ‫حساب‬ ‫حذف‬ ‫عند‬
: ‫التالية‬ ‫الحذف‬ ‫تعليمات‬ ‫تنفيذ‬ ‫بعد‬
mysql> drop user 'Medfa'@'::1; '
mysql>drop user 'username'@'hostname; '
mysql> drop user 'tajj1'@'kokab','dbadmin'@'lolhost; '
‫مالحظة‬‫أخرى‬ ‫مرة‬ ‫واالتصال‬ ‫المستخدم‬ ‫قبل‬ ‫من‬ ‫االتصال‬ ‫غلق‬ ‫عند‬ ‫تطبق‬ ‫مستخدم‬ ‫حساب‬ ‫حذف‬ :
. ‫المعطيات‬ ‫بقاعدة‬
GRANT Syntax:
GRANT
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
TO user_specification [, user_specification] ...
[REQUIRE {NONE | tsl_option [[AND] tsl_option]
...}]
[WITH {GRANT OPTION | resource_option} ...]
GRANT PROXY ON user_specification
TO user_specification [, user_specification] ...
[WITH GRANT OPTION]
 object_type: {
TABLE
| FUNCTION
| PROCEDURE
}
 priv_level: {
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
}
 user_specification:
user [ auth_option ]
}
 auth_option: { # As of MySQL 5.7.6
IDENTIFIED BY 'auth_string'
| IDENTIFIED BY PASSWORD 'hash_string'
| IDENTIFIED WITH auth_plugin
| IDENTIFIED WITH auth_plugin BY 'auth_string'
| IDENTIFIED WITH auth_plugin AS 'hash_string'
}
 tsl_option: {
SSL
| X509
| CIPHER 'cipher'
| ISSUER 'issuer'
| SUBJECT 'subject'
}
 resource_option: {
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
}
PRIVILEGE DESCRIPTION
ALL
[PRIVILEGES]
Grant all privileges at specified access level except
GRANT OPTION
ALTER Allow to use of ALTER TABLE statement
ALTER ROUTINE Allow user to alter or drop stored routine
CREATE Allow user to create database and table
CREATE
ROUTINE
Allow user to create stored routine
CREATE
TABLESPACE
Allow user to create, alter or drop tablespaces and
log file groups
CREATE
TEMPORARY
Allow user to create temporary table by using
CREATE TEMPORARY TABLE
TABLES
CREATE USER Allow user to use the CREATE USER, DROP
USER, RENAME USER, and REVOKE ALL
PRIVILEGES statements.
CREATE VIEW Allow user to create or modify view
DELETE Allow user to use DELETE
DROP Allow user to drop database, table and view
EVENT Allow user to schedule events in Event Scheduler
EXECUTE Allow user to execute stored routines
FILE Allow user to read any file in the database directory.
GRANT OPTION Allow user to have privileges to grant or revoke
privileges from other accounts
INDEX Allow user to create or remove indexes.
INSERT Allow user to use INSERT statement
LOCK TABLES Allow user to use LOCK TABLES on tables for
which you have the SELECT privilege
PROCESS Allow user to see all processes with SHOW
PROCESSLIST statement.
PROXY Enable user proxying
REFERENCES Not implemented
RELOAD Allow user to use FLUSH operations
REPLICATION
CLIENT
Allow user to query to see where master or slave
servers are
REPLICATION
SLAVE
Allow the user to use replicate slaves to read binary
log events from the master.
SELECT Allow user to use SELECT statement
SHOW
DATABASES
Allow user to show all databases
SHOW VIEW Allow user to use SHOW CREATE VIEW statement
SHUTDOWN Allow user to use mysqladmin shutdown command
SUPER Allow user to use other administrative operations
such as CHANGE MASTER TO, KILL, PURGE
BINARY LOGS, SET GLOBAL, and mysqladmin
command
TRIGGER Allow user to use TRIGGER operations.
UPDATE Allow user to use UPDATE statement
USAGE Equivalent to “no privileges”
‫تعليمة‬ ‫تستخدم‬Grant‫إل‬‫إمكان‬ ‫و‬ ‫صالحيات‬ ‫عطاء‬,‫البيانات‬ ‫قاعدة‬ ‫لمستخدمي‬ ‫الوصول‬ ‫ية‬‫مثل‬
‫جدول‬ ‫من‬ ‫سطر‬ ‫إظهار‬ ‫إمكانية‬select‫جديدة‬ ‫أسطر‬ ‫إدخال‬ ,insert‫على‬ ‫بتعديل‬ ‫القيام‬ ,
‫الجداول‬ ‫أسطر‬update..‫هكذا‬ ‫و‬
:‫مثال‬
mysql> GRANT ALL ON company.* TO 'tajj'@'localhost';
‫السابق‬ ‫المثال‬ ‫في‬:‫للمستخدم‬ ‫الصالحيات‬ ‫كل‬ ‫بأعطاء‬ ‫قمنا‬tajj‫المعطيات‬ ‫قاعدة‬ ‫على‬company
:‫مثال‬
‫الصالحيات‬ ‫أعطي‬select,update,delete,create,drop‫للمستخدم‬medfa1‫قاعدة‬ ‫على‬
.‫األفتراضية‬ ‫امعطيات‬
mysql>Grant select,update,delete,create,drop On *.* To 'medfa1'@'localhost;'
Note1:
If you use ON * syntax (rather than ON *.*) and you have selected a default
database, privileges are assigned at the database level for the default
database. An error occurs if there is no default database.
Note2:
The CREATE, DROP, EVENT, GRANT OPTION, LOCK TABLES,
and REFERENCES privileges can be specified at the database level. Table or
routine privileges also can be specified at the database level, in which case
they apply to all tables or routines in the database.
Note3:
Table privileges apply to all columns in a given table. To assign table-level
privileges, use ON db_name.table_name syntax.
: ‫مثال‬‫طبق‬‫للمستخدم‬ ‫الصالحيات‬ ‫جميع‬tajj‫للوصول‬‫المعطيات‬ ‫قاعدة‬ ‫لجداول‬bb
mysql> grant all on bb.* to 'tajj'@'localhost';
‫بإعطاء‬ ‫مثال:قم‬‫صالحيات‬insert ,select,drop‫للمستخدم‬dbadmin‫جدول‬ ‫على‬department
‫المعطيات‬ ‫قاعدة‬ ‫في‬bb.
mysql> grant insert ,select,drop on bb.department To 'dbadmin'@'localhost';
Note4:
The permissible priv_type values at the table level are ALTER, CREATE
VIEW, CREATE, DELETE, DROP, GRANT
OPTION, INDEX, INSERT, REFERENCES,SELECT, SHOW VIEW, TRIGGER,
and UPDATE.
MySQL stores table privileges in the mysql.tables_priv table.
: ‫مثال‬
‫جدول‬ ‫لدينا‬ ‫ليكن‬department‫المعطيات‬ ‫قاعد‬ ‫ضمن‬bb‫المستخدم‬ ‫باعطاء‬ ‫قم‬Tajj‫صالحية‬
‫العرض‬‫األ‬ ‫للعمود‬‫وصال‬ ‫الجدول‬ ‫من‬ ‫ول‬. ‫الثاني‬ ‫العمود‬ ‫على‬ ‫االدخال‬ ‫حية‬
GRANT SELECT (col1), INSERT (col2) ON bb.department TO 'Tajj'@'locallhost';
Note5:
The permissible priv_type values for a column (that is, when you use
a column_list clause) are INSERT, REFERENCES, SELECT, and UPDATE.
MySQL stores column privileges in the mysql.columns_priv table.
‫صالحيات‬ ‫لمعرفة‬: ‫الحالي‬ ‫المستخدم‬
mysql> show grants;
mysql> SHOW GRANTS FOR CURRENT_USER;
mysql> SHOW GRANTS FOR CURRENT_USER();
‫تعليمة‬ ‫بعد‬ ‫المستخدم‬ ‫اسم‬ ‫نكتب‬ ‫ما‬ ‫لمستخدم‬ ‫الصالحيات‬ ‫لمعرفة‬show grants:
‫للمستخدم‬ ‫المسندة‬ ‫الصالحيات‬ ‫لمعرفة‬ :ً‫ال‬‫مث‬Tajj: ‫نكتب‬
show grants for 'tajj'@'localhost;'
RENAME User Syntax:
RENAME USER old_user TO new_user
[, old_user TO new_user] ...
.ً‫ا‬‫مع‬ ‫مستخدمين‬ ‫عدة‬ ‫أسماء‬ ‫تغير‬ ‫يمكن‬
‫األقل‬ ‫على‬ ‫لديك‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫مستخدم‬ ‫حساب‬ ‫أسم‬ ‫تغير‬ ‫تستطيع‬ ‫حتى‬
CREATE USER privilege or the UPDATE privilege for the mysql database
RENAME USER 'Medfa1'@'localhost' TO 'Medfa'@'127.0.0.1';
. ‫القديم‬ ‫الحساب‬ ‫وابقاء‬ ‫جديد‬ ‫حساب‬ ‫أنشاء‬ ‫سيتم‬ ‫السابق‬ ‫المثال‬ ‫في‬
RENAME USER 'tajj'@'localhost' TO 'Medfa'@'localhost';
REVOKE Syntax:
REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...
OR
REVOKE ALL PRIVILEGES, GRANT OPTION
FROM user [, user] ...
‫لحذف‬ : ‫مثال‬‫اإل‬ ‫صالحية‬‫دخال‬‫محتوياتها‬ ‫وجميع‬ ‫المعطيات‬ ‫قاعدة‬ ‫إلى‬‫مستخدم‬ ‫من‬‫التالي‬ ‫نكتب‬:
REVOKE All ON *.* FROM 'tajj'@'localhost';
GRANT USAGE.‫المستخدم‬ ‫لهذا‬ ‫صالحيات‬ ‫يوجد‬ ‫ال‬ ‫أنه‬ ‫تعني‬
NOTE:
To use this REVOKE syntax, you must have the global CREATE USER privilege or
the UPDATE privilege for the mysql database.
Mysql change password Account:
: ‫حساب‬ ‫مرور‬ ‫كلمة‬ ‫لتغير‬ ‫طرق‬ ‫ثالث‬ ‫لدينا‬
1.Update user table:
USE mysql;
UPDATE user
SET password = PASSWORD('newpass')
WHERE user = 'user_name' AND
host = host_name';
FLUSH PRIVILEGES; ‫جديد‬ ‫من‬ ‫للمستخدم‬ ‫الصالحيات‬ ‫نقل‬ ‫يتم‬ ‫حتى‬
2.Setpassword:
‫صالحية‬ ‫األقل‬ ‫على‬ ‫لدي‬ ‫يكون‬ ‫أن‬ ‫يجب‬Update
SET PASSWORD FOR 'username'@'hostname= PASSWORD('newpass');
‫تعليمة‬ ‫الستخدام‬ ‫بحاجة‬ ‫لسنا‬Flush privileges
: ‫مثال‬
Set password for 'Tajj'@'localhost'=password('KK222');
3.Grant statement
GRANT USAGE ON *.* TO 'username'@'hostname' IDENTIFIED BY 'newpass';
:‫مثال‬
GRANT USAGE ON *.* TO tajj@localhost IDENTIFIED BY 'Secret1970' ;
:‫لاب‬‫ط‬‫ل‬‫ا‬‫دأد‬‫ع‬‫أ‬
‫م‬‫س‬‫ا‬‫لق‬‫ا‬‫ن‬‫ي‬‫د‬‫ل‬‫ا‬‫اج‬‫ت‬‫ع‬‫ف‬‫د‬‫م‬‫ل‬‫ا‬‫د‬‫م‬‫ح‬‫م‬
‫ن‬‫س‬‫ح‬‫د‬‫م‬‫ح‬‫م‬‫ل‬‫ا‬‫د‬‫م‬‫ح‬‫أ‬ ‫ادي‬‫ن‬‫ج‬‫ل‬‫ا‬‫ي‬‫ب‬‫ل‬‫ش‬
‫أف‬‫ر‬‫ش‬‫أ‬
‫ة‬‫ي‬‫ت‬‫ي‬‫ز‬‫ن‬‫ي‬‫ت‬‫س‬‫ن‬‫ر‬‫ك‬‫ة‬‫س‬‫ن‬‫لأ‬‫أ‬

More Related Content

Similar to Database Administration

المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
Prmigo
 
Www.kutub.info 5727
Www.kutub.info 5727Www.kutub.info 5727
Www.kutub.info 5727
Adel Totott
 
ادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptx
AhmedOthman511332
 

Similar to Database Administration (20)

Moodle plugins programing manual
Moodle plugins programing manualMoodle plugins programing manual
Moodle plugins programing manual
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
 
دليل البرمجة باستخدام Dynamo DB للمبتدئين
دليل البرمجة باستخدام Dynamo DB للمبتدئيندليل البرمجة باستخدام Dynamo DB للمبتدئين
دليل البرمجة باستخدام Dynamo DB للمبتدئين
 
الدرس الثالث عشر
الدرس الثالث عشرالدرس الثالث عشر
الدرس الثالث عشر
 
البرمجة غرضية التوجه بلغة البايثون
البرمجة غرضية التوجه بلغة البايثونالبرمجة غرضية التوجه بلغة البايثون
البرمجة غرضية التوجه بلغة البايثون
 
الوراثة في الجافا
الوراثة في الجافاالوراثة في الجافا
الوراثة في الجافا
 
الاندماج الطبى للصور باستخدام المعامل الأقصي لتحويل المويجات
الاندماج الطبى للصور باستخدام المعامل الأقصي لتحويل المويجاتالاندماج الطبى للصور باستخدام المعامل الأقصي لتحويل المويجات
الاندماج الطبى للصور باستخدام المعامل الأقصي لتحويل المويجات
 
النظم المضمنة ومواصفتها
النظم  المضمنة ومواصفتهاالنظم  المضمنة ومواصفتها
النظم المضمنة ومواصفتها
 
Access
AccessAccess
Access
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
 
Www.kutub.info 5727
Www.kutub.info 5727Www.kutub.info 5727
Www.kutub.info 5727
 
نظم التشغيل
نظم التشغيلنظم التشغيل
نظم التشغيل
 
خطة اختبار لنظام المودل للتعليم الالكتروني
خطة اختبار لنظام المودل للتعليم الالكترونيخطة اختبار لنظام المودل للتعليم الالكتروني
خطة اختبار لنظام المودل للتعليم الالكتروني
 
تصميم نظم
تصميم نظمتصميم نظم
تصميم نظم
 
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
 
Angular js دورة
Angular js دورةAngular js دورة
Angular js دورة
 
ادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptxادارة قواعد البيانات.pptx
ادارة قواعد البيانات.pptx
 
Backup and restore sql server 2008
Backup and restore sql server 2008Backup and restore sql server 2008
Backup and restore sql server 2008
 
أنظمة ادارة قواعد البيانات
أنظمة ادارة قواعد البياناتأنظمة ادارة قواعد البيانات
أنظمة ادارة قواعد البيانات
 
Big data clustering with the use of the random projection features reduction ...
Big data clustering with the use of the random projection features reduction ...Big data clustering with the use of the random projection features reduction ...
Big data clustering with the use of the random projection features reduction ...
 

Database Administration

  • 1.
  • 2. Database view Database view"‫"منطقي‬ ‫افتراضي‬ ‫جدول‬ ‫عن‬ ‫عبارة‬ ‫وهو‬ ‫المعطيات‬ ‫قواعد‬ ‫أغراض‬ ‫من‬ ‫غرض‬ ‫هو‬ ‫باستخدام‬ ‫إنشاؤه‬ ‫يتم‬select query‫أعمدة‬ ‫و‬ ‫سطور‬ ‫على‬ ‫يحوي‬ ‫فإنه‬ ‫للجدول‬ ‫مشابه‬ ‫المنظار‬ ‫.وألن‬ ‫لغة‬ . ‫إنشاؤها‬ ‫تم‬ ‫التي‬ ‫المناظير‬ ‫على‬ ‫االستعالمات‬ ‫إجراء‬ ‫على‬ ‫قادر‬ ‫ستكون‬ ‫فإنك‬ ‫ولذلك‬Mysql‫تمكنك‬ .‫الحقا‬ ‫عرضها‬ ‫سيتم‬ ‫شروط‬ ‫عدة‬ ‫االعتبار‬ ‫بعين‬ ‫تأخذ‬ ‫ولكن‬ ‫المنظار‬ ‫داخل‬ ‫معطيات‬ ‫تعديل‬ ‫من‬ ‫أيضا‬ ‫دينامي‬ ‫يتغير‬ ‫المنظار‬. ‫منها‬ ‫باالستعالم‬ ‫إنشاؤه‬ ‫تم‬ ‫التي‬ ‫الجداول‬ ‫محتوى‬ ‫تغيير‬ ‫عند‬ ‫كيا‬ ‫المنظار‬ ‫ميزات‬view: 1-‫الجداول‬ ‫ربط‬ ‫تعليمات‬ ‫استخدام‬ ‫يمكن‬ : ‫المعقدة‬ ‫االستعالمات‬ ‫تبسيط‬ ‫لك‬ ‫تتيح‬ ‫المناظير‬(join , union ..‫التعامل‬ ‫يتم‬ ‫بحيث‬ ‫المعقدة‬ ‫لالستعالمات‬ ‫تبسيط‬ ‫المنظار‬ ‫يعد‬ ‫لذلك‬ ‫المناظير‬ ‫إنشاء‬ ‫في‬ ) ‫مثل‬ ‫البسيطة‬ ‫االستعالمات‬ ‫باستخدام‬ ‫منظار‬ ‫جعله‬ ‫بعد‬ ‫المعقد‬ ‫االستعالم‬ ‫مع‬select .. 2-‫المستخدمين‬ ‫صالحيات‬ ‫تقييد‬ " ‫للمعطيات‬ ‫المستخدمين‬ ‫وصول‬ ‫بمدى‬ ‫التحكم‬ ‫في‬ ‫تساعد‬ ‫المناظير‬ ‫كنت‬ ‫فإذا‬ : "‫قابلة‬ ‫جعلها‬ ‫تريد‬ ‫ال‬ ‫بحيث‬ ‫العالية‬ ‫األهمية‬ ‫ذات‬ ‫المعطيات‬ ‫من‬ ‫مجموعة‬ ‫تملك‬ ‫حساسة‬ ‫الغير‬ ‫المعطيات‬ ‫بعرض‬ ‫المنظار‬ ‫لك‬ ‫يتيح‬ ‫عندها‬ ‫المستخدمين‬ ‫قبل‬ ‫من‬ ‫لالستعالم‬ . ‫لالستعالم‬ ‫قابلة‬ ‫وجعلها‬ ‫للمستخدمين‬
  • 3. 3-‫مناظ‬ ‫إنشاء‬ ‫لك‬ ‫تتيح‬ ‫ألنها‬ : ‫المعطيات‬ ‫لقواعد‬ ‫إضافية‬ ‫حماية‬ ‫طبقة‬ ‫تشكل‬ ‫المناظير‬‫للقراءة‬ ‫قابلة‬ ‫ير‬ ‫فقط‬READ ONLY. ‫حذف‬ ‫أو‬ ‫إضافة‬ ‫أو‬ ‫تعديل‬ ‫ألي‬ ‫قابلة‬ ‫غير‬ ‫و‬ 4-‫قاعدة‬ ‫تصميم‬ ‫عند‬ ‫أنه‬ ‫نعلم‬ ‫نحن‬ :‫ضمنها‬ ‫الجداول‬ ‫على‬ ‫الحسابية‬ ‫العمليات‬ ‫تخزين‬ ‫المناظير‬ ‫تتيح‬ ‫أخرى‬ ‫وحقول‬ ‫جداول‬ ‫على‬ ‫حسابية‬ ‫عمليات‬ ‫عن‬ ‫تنتج‬ ‫حقول‬ ‫على‬ ‫تحوي‬ ‫أال‬ ‫يجب‬ ‫المعطيات‬, ‫المنظار‬ ‫إنشاء‬ ‫عند‬ ‫ولكن‬‫عملية‬ ‫وتتم‬ ‫ضمنه‬ ‫الجداول‬ ‫على‬ ‫الحسابية‬ ‫العمليات‬ ‫تخزين‬ ‫يمكن‬ ‫الجداول‬ ‫تغير‬ ‫مع‬ ‫ديناميكيا‬ ‫المحسوبة‬ ‫تتغيرالقيم‬ ‫المنظار‬ ‫عن‬ ‫فيها‬ ‫يستعلم‬ ‫مرة‬ ‫كل‬ ‫عند‬ ‫الحساب‬ . ‫األساسية‬ : ‫المنظار‬ ‫استخدام‬ ‫مساوئ‬ 1-‫مناظ‬ ‫إنشاء‬ ‫عند‬ ‫خصوصا‬ ‫أبطأ‬ ‫يصبح‬ ‫أن‬ ‫يمكن‬ ‫المناظير‬ ‫من‬ ‫المعطيات‬ ‫عن‬ ‫االستعالم‬‫تعتمد‬ ‫ير‬ . ‫أخرى‬ ‫مناظير‬ ‫على‬ 2-. ‫بها‬ ‫المرتبطة‬ ‫المناظير‬ ‫تغيير‬ ‫أيضا‬ ‫يجب‬ ‫بمناظير‬ ‫المرتبطة‬ ‫الجداول‬ ‫بنية‬ ‫تغيير‬ ‫عند‬ ‫المناظير‬ ‫إنشاء‬ ‫تعليمات‬ : ‫هو‬ ‫منظور‬ ‫إلنشاء‬ ‫العام‬ ‫الشكل‬ CREATE [ ALGORITHM = {MERGE | TEMPTABLE |UNDEFINED] VIEW [database_name].[view_name] AS [SELECT statement] ‫أن‬ ‫حيث‬ ‫الخوارزمية‬ ‫مع‬ ‫نبدأ‬MySQL‫كما‬ ‫وهي‬ ‫المنظار‬ ‫إنشاء‬ ‫كيفية‬ ‫لتحديد‬ ‫خوارزميات‬ ‫ثالث‬ ‫تعتمد‬ : ‫يلي‬ MERGE‫المنظار‬ ‫على‬ ‫الواردة‬ ‫االستعالمات‬ ‫تفسير‬ ‫سيتم‬ ‫الدمج‬ ‫خوارزمية‬ ‫استخدام‬ ‫عند‬ : ‫ال‬ ‫األولى‬ ‫بالطريقة‬‫عبارة‬ ‫احتوت‬ ‫حال‬ ‫في‬ ‫مسموحة‬ ‫غير‬ ‫الدمج‬ ‫خوارزمية‬ ‫إن‬ . ‫سابقا‬ ‫مشروحة‬ SELECT‫مثل‬ ‫تجميعية‬ ‫توابع‬ ‫على‬MAX,MIN,AVG,COUNT,SUM … etc ‫مثل‬ ‫عبارات‬ ‫أو‬DISTINCT,GROUP BY,HAVING,LIMIT,UNION,UNION ALL ‫فإن‬ ‫مسموحة‬ ‫غير‬ ‫الدمج‬ ‫خوارزمية‬ ‫كانت‬ ‫حال‬ ‫وفي‬ ‫فرعية‬ ‫استعالمات‬ ‫أو‬MySQL‫سيغير‬ ‫خوارزمية‬ ‫إلى‬ ‫تلقائيا‬UNDEFINED. TEMPTABLE‫الواردة‬ ‫االستعالمات‬ ‫تفسير‬ ‫سيتم‬ ‫المؤقت‬ ‫الجدول‬ ‫خوارزمية‬ ‫استخدام‬ ‫عند‬ : ‫وألن‬ . ‫سابقا‬ ‫المشروحة‬ ‫الثانية‬ ‫بالطريقة‬ ‫المنظار‬ ‫على‬MySQL‫مؤقت‬ ‫جدول‬ ‫بإنشاء‬ ‫ستقوم‬ ‫هذه‬ ‫فإن‬ ‫الجدول‬ ‫هذا‬ ‫الى‬ ‫الرئيسية‬ ‫الجداول‬ ‫من‬ ‫البيانات‬ ‫وتنقل‬‫من‬ ‫فاعلية‬ ‫أقل‬ ‫الخوارزمية‬ ‫للتحديث‬ ‫قابلة‬ ‫غير‬ ‫لكونها‬ ‫باإلضافة‬ ‫الدمج‬ ‫خوارزمية‬ UNDEFINED‫دون‬ ‫المنظار‬ ‫إنشاء‬ ‫عند‬ ‫وذلك‬ ‫افتراضية‬ ‫كخوارزمية‬ ‫الخوارزمية‬ ‫هذه‬ ‫تستخدم‬ : ‫لـ‬ ‫عندها‬ ‫ويكون‬ , ‫السابقتين‬ ‫الخوارزميتين‬ ‫إحدى‬ ‫تحديد‬MySQL‫الدمج‬ ‫خوارزمية‬ ‫بين‬ ‫الخيار‬ MERGE‫الج‬ ‫وخوارزمية‬‫المؤقت‬ ‫دول‬TEMPTABLE.MySQL‫الجدول‬ ‫على‬ ‫الدمج‬ ‫يفضل‬ .‫فاعلية‬ ‫أكثر‬ ‫إلنها‬ ‫المؤقل‬
  • 4. ‫جدول‬ ‫باسم‬ ‫المنظار‬ ‫تسمية‬ ‫يجوز‬ ‫فال‬ ‫الجدول‬ ‫بنية‬ ‫نفس‬ ‫للمنظار‬ ‫وإلن‬ ‫للمنظار‬ ‫اسم‬ ‫تحديد‬ ‫يتم‬ ‫ذلك‬ ‫بعد‬ . ‫سابقا‬ ‫موجود‬ ‫عبارة‬ ‫كتابة‬ ‫تتم‬ ‫ذلك‬ ‫وبعد‬SELECT‫جد‬ ‫أي‬ ‫عن‬ ‫نستعلم‬ ‫ان‬ ‫ممكن‬ ‫خاللها‬ ‫من‬ ‫والتي‬‫موجود‬ ‫منظار‬ ‫أو‬ ‫ول‬ . ‫المعطيات‬ ‫قاعدة‬ ‫ضمن‬ ‫مثل‬ ‫سابقا‬ ‫تعلمناها‬ ‫التي‬ ‫التعليمات‬ ‫طريق‬ ‫عن‬ ‫المنظار‬ ‫تعديل‬ ‫يمكن‬update‫على‬ ‫جديدة‬ ‫أسطر‬ ‫إضافة‬ ‫أو‬ ‫تعليمة‬ ‫طريق‬ ‫عن‬ ‫المنظار‬Insert: ‫وهي‬ ‫اال‬ ‫بالمنظار‬ ‫خاصة‬ ‫جديدة‬ ‫صيغة‬ ‫عنطريق‬ ‫أو‬ Create or replace view [view name] as select [select statement] ‫خوارزمية‬ ‫استخدام‬ ‫يمكن‬ ‫طالما‬ ‫مسموحا‬ ‫يكون‬ ‫التعديل‬ ‫هذا‬ ‫لكن‬merge‫المنظار‬ ‫إنشاء‬ ‫في‬ ‫قواعد‬ ‫في‬ ‫المناظير‬ ‫استخدام‬ ‫على‬ ‫أمثلة‬‫البيانات‬
  • 5. ‫الموظفين‬ ‫عن‬ ‫معلومات‬ ‫يحوي‬ ‫منظار‬ ‫انشاء‬ mysql> CREATE VIEW emp_dep AS SELECT name , gender , salary FROM employee; ‫النتيجة‬ ‫عن‬ ‫لالستعالم‬ mysql> SELECT * FROM emp_dep; ‫المنظار‬ ‫الى‬ ‫جديد‬ ‫موظف‬ ‫إدخال‬ mysql>INSERT INTO emp_dep VALUES(6,”ahmad sh”,”male”,4,7500); ‫من‬ ‫اي‬ ‫او‬ ‫تجميعي‬ ‫تابع‬ ‫اي‬ ‫على‬ ‫احتوائه‬ ‫لعدم‬ ‫وذلك‬ ‫المنظار‬ ‫بتحديث‬ ‫القيام‬ ‫استطعنا‬ ‫اننا‬ ‫نالحظ‬ ‫تجع‬ ‫التي‬ ‫التليمات‬‫إضافته‬ ‫تمت‬ ‫قد‬ ‫الجديد‬ ‫الموظف‬ ‫ان‬ ‫نالحظ‬ ‫كما‬ ‫للتعديل‬ ‫قابل‬ ‫غير‬ ‫المنظار‬ ‫ل‬ ‫األصل‬ ‫الجدول‬ ‫الى‬ mysql> SELECT * FROM employee; ‫الرواتب‬ ‫من‬ ‫متوسط‬ ‫أكبر‬ ‫يصرف‬ ‫الذي‬ ‫القسم‬ ‫عن‬ ‫استعلم‬ ‫قسم‬ ‫كل‬ ‫في‬ ‫الرواتب‬ ‫متوسط‬ ‫على‬ ‫يحوي‬ ‫منظار‬ ‫بإنشاء‬ ‫نقوم‬ mysql> CREATE VIEW avg_salary (depname,avg) AS SELECT d.depmame , avg(e.salary) FROM employee e , department d WHERE e.depid=d.depid GROUP BY e.depid;
  • 6. ‫الرواتب‬ ‫من‬ ‫متوسط‬ ‫أكبر‬ ‫يملك‬ ‫الذي‬ ‫القسم‬ ‫عن‬ ‫نستعلم‬ ‫ثم‬ ‫ومن‬ mysql> SELECT depname FROM avr_salary WHERE avg = ( select max(avg) from avr_salary) ; ‫ذل‬ ‫من‬ ‫وللتأكد‬ ‫تجميعي‬ ‫تابع‬ ‫على‬ ‫احتوى‬ ‫ألنه‬ ‫للتعديل‬ ‫قابل‬ ‫غير‬ ‫السابق‬ ‫المنظار‬ ‫ان‬ ‫نالحظ‬‫بإجراء‬ ‫نقوم‬ ‫ك‬ ‫في‬ ‫إنشاؤها‬ ‫تم‬ ‫التي‬ ‫المناظير‬ ‫جميع‬ ‫في‬ ‫التعديل‬ ‫خاصية‬ ‫لنا‬ ‫ُظهر‬‫ي‬ ‫بحيث‬ ‫التالي‬ ‫االستعالم‬‫المعطيات‬ ‫قاعدة‬ ‫نختارها‬ ‫التي‬ mysql> SELECT table_name,is_updatable FROM information_schema.views WHERE table_schema="test1" ; ‫للتعديل‬ ‫قابل‬ ‫غير‬ ‫السابق‬ ‫المنظار‬ ‫وان‬ ‫صحيح‬ ‫كالمنا‬ ‫أن‬ ‫الحظ‬ . ‫بأضا‬ ‫نقوم‬ ‫االساسي‬ ‫الجددول‬ ‫تغير‬ ‫مع‬ ‫الديناميكي‬ ‫التغير‬ ‫وهي‬ ‫للمنظار‬ ‫الهامة‬ ‫الميزة‬ ‫لنالحظ‬‫اسطر‬ ‫عدة‬ ‫فة‬ ‫ومن‬ ‫االساسي‬ ‫للجدول‬‫على‬ ‫االستعالم‬ ‫بإجراء‬ ‫نقوم‬ ‫ثم‬‫النتائج‬ ‫اختالف‬ ‫وسنالحظ‬ ‫المنظار‬ mysql> INSERT INTO employee VALUES(7,” Shukri”,”male”,2,112233); mysql> SELECT depname FROM avr_salary WHERE avg=(select max(avg) from avr_salary) ; ‫اسم‬ ‫عن‬ ‫واستعلم‬ ‫أوالده‬ ‫وعدد‬ ‫وقسمه‬ ‫موظف‬ ‫كل‬ ‫اسم‬ ‫عن‬ ‫استعلم‬‫الذ‬ ‫الموظف‬ ‫وقسم‬‫عد‬ ‫أكبر‬ ‫لديه‬ ‫ي‬‫د‬‫م‬‫ن‬ ‫االوال‬: ‫التالي‬ ‫المنظار‬ ‫بإنشاء‬ ‫نقوم‬ . ‫د‬ mysql> CREATE VIEW emp_dep_chil (emp_name,depname,no_of_chil) AS SELECT e.name,d.depname,count(c.ch_id) FROM employee e LEFT JOIN department d ON e.depid=d.depid LEFT JOIN children c ON e.empid=c.empid GROUP BY e.name; mysql> select * from emp_dep_chil ; mysql> SELECT emp_name,depname FROM emp_dep_chil WHERE no_of_chil=(select max(no_of_chil) from emp_dep_chil) ; ‫أوالده‬ ‫عدد‬ ‫عن‬ ‫استعلم‬ ‫ثم‬ ‫راتب‬ ‫اعلى‬ ‫يأخذ‬ ‫الذي‬ ‫الموظف‬ ‫اسم‬ ‫عن‬ ‫استعلم‬: ‫نقوم‬‫على‬ ‫يعتمد‬ ‫المنظار‬ ‫هذا‬ ‫و‬ ‫االكبر‬ ‫الراتب‬ ‫صاحب‬ ‫الموظف‬ ‫اسم‬ ‫عن‬ ‫لالستعالم‬ ‫منظار‬ ‫بأنشاء‬ ‫المنظار‬emp_dep mysql> CREATE VIEW max_salary AS SELECT name FROM emp_dep WHERE salary=(select max(salary) from emp_dep) ; mysql> select * from max_salary ;
  • 7. ‫باالستعالم‬ ‫نقوم‬‫المنظارين‬ ‫على‬ ‫باالعتماد‬ ‫االكبر‬ ‫الراتب‬ ‫ذو‬ ‫الموظف‬ ‫اوالد‬ ‫عدد‬ ‫عن‬ max_salary &&& emp_dep_chil mysql> SELECT no_of_chil FROM emp_dep_chil WHERE emp_name=(select * from max_salary ) ; ‫اس‬‫السابقة‬ ‫المناظير‬ ‫على‬ ‫اعتمادا‬ ‫االكبر‬ ‫الراتب‬ ‫ذو‬ ‫الموظف‬ ‫قسم‬ ‫و‬ ‫اسم‬ ‫عن‬ ‫تعلم‬ mysql> SELECT depname,emp_name FROM emp_dep_chil WHERE emp_name=(select * from max_salary); :‫مقدمة‬ ‫يسمى‬ ‫ما‬ ‫عليها‬ ‫يطلق‬ ‫التي‬ ‫و‬ ‫البيانات‬ ‫قواعد‬ ‫إدارة‬ ‫بعملية‬ ‫المتعلقة‬ ‫الخاصة‬ ‫القضايا‬ ‫بعض‬ ‫هناك‬ Database Administration( ً‫ا‬‫اختصار‬ ‫يسمى‬ ‫ما‬ ‫أو‬DBA. ) ‫أهمية‬ ‫تظهر‬‫معظم‬ ‫في‬ ‫الحال‬ ‫هو‬ ‫كما‬ ‫شخص‬ ‫من‬ ‫أكثر‬ ‫طريق‬ ‫عن‬ ‫استخدامها‬ ‫عند‬ ‫البيانات‬ ‫قواعد‬ ‫إدارة‬ ..‫المنظمات‬ ‫و‬ ‫الشركات‬ ‫الحماية‬Security: ‫البيانات‬ ‫قاعدة‬ ‫عن‬ ‫المسؤول‬ ‫الشخص‬ ‫به‬ ‫يقوم‬ ‫عمل‬ ‫أهم‬database administrator(DBA‫منع‬ ‫هو‬ ) .‫البيانات‬ ‫قاعدة‬ ‫إلى‬ ‫المرخص‬ ‫غير‬ ‫الوصول‬ ‫ال‬ ‫يقوم‬ ‫حيث‬DBA‫و‬‫و‬ ‫صالحياته‬ ‫بتحديد‬ ‫مستخدم‬ ‫لكل‬ ‫العمل‬ ‫متطلبات‬ ‫و‬ ‫الشركة‬ ‫قوانين‬ ‫على‬ ‫باالعتماد‬ .‫به‬ ‫القيام‬ ‫يمكنه‬ ‫ما‬ ‫بيانات‬ ‫قواعد‬ ‫معظم‬SQL: ‫هما‬ ‫للحماية‬ ‫آليتين‬ ‫توفر‬ 1‫.التحكم‬‫ب‬‫المستخدمين‬. 2)‫الوهمية(المناظير‬ ‫الجداول‬ ‫.إنشاء‬View. ً‫ال‬‫أو‬-‫التحكم‬‫ب‬:‫المستخدمين‬ ‫صالحيات‬ ‫و‬ ‫سر‬ ‫كلمة‬ ‫و‬ ‫اسم‬ ‫مستخدم‬ ‫لكل‬ ‫يكون‬Privileges‫قاعدة‬ ‫مدير‬ ‫بواسطة‬ ‫بهم‬ ‫التحكم‬ ‫يتم‬ ..‫المعطيات‬
  • 8. : ‫البيانات‬ ‫قاعدة‬ ‫بمدير‬ ‫تتعلق‬ ‫والتي‬ ‫الهامة‬ ‫األمور‬ ‫بعض‬ ‫فهم‬ ‫علينا‬ ‫يجب‬ ‫األمور‬ ‫بتلك‬ ‫الخوض‬ ‫قبل‬ ‫ي‬‫المعطيات‬ ‫قاعدة‬ ‫أن‬ ‫معرفة‬ ‫علينا‬ ‫جب‬mysql‫مخ‬ ‫جداول‬ ‫خمسة‬ ‫على‬ ‫تحوي‬ ‫أساسي‬ ‫بشكل‬‫في‬ ‫صصة‬ . ‫المدير‬ ‫قبل‬ ‫من‬ ‫الممنوحة‬ ‫الصالحيات‬ ‫تخزين‬ 1.‫جدول‬db table‫المستخدمين‬ ‫من‬ ‫معطيات‬ ‫قاعدة‬ ‫كل‬ ‫على‬ ‫المفروضة‬ ‫الصالحيات‬ ‫على‬ ‫:يحوي‬ ‫واالعمدة‬ ‫الجدلول‬ ‫على‬ ‫المطبقة‬ ‫والصالحيات‬ ‫مضيف‬ ‫أي‬ ‫ومن‬ ‫بالدخول‬ ‫لهم‬ ‫المخول‬ .‫القاعدة‬ ‫تلك‬ ‫في‬ ‫واألجرائيات‬ 2.‫جدول‬User table‫حسابات‬ ‫على‬ ‫:يحوي‬‫لمنع‬ ‫ويستخدم‬ ‫العامة‬ ‫الصالحية‬ ‫وأعمدة‬ ‫المستخدمين‬ . ‫المعطيات‬ ‫لقاعدة‬ ‫معين‬ ‫مضيف‬ ‫دخول‬ ‫قبول‬ ‫أو‬ 3.‫جدول‬Table_priv:‫الصالحيات‬ ‫هذه‬ ‫وتشمل‬ ‫الجدول‬ ‫على‬ ‫المطبقة‬ ‫الصالحيات‬ ‫على‬ ‫يحوي‬ .‫الجدول‬ ‫أعمدة‬ 4.‫جدول‬columns_priv:‫التشمل‬ ‫الصالحيات‬ ‫وهذه‬ ‫ما‬ ‫جدول‬ ‫أعمدة‬ ‫الصالحيات‬ ‫على‬ ‫يحوي‬ ‫الجدو‬.‫ككل‬ ‫ل‬ 5.‫جدول‬Procs_priv:‫المخزنة‬ ‫التوابع‬ ‫أو‬ ‫لألجرائيات‬ ‫الممنوحة‬ ‫الصالحيات‬ ‫الجدول‬ ‫هذا‬ ‫يتضمن‬ . ‫القاعدة‬ ‫تلك‬ ‫في‬ ‫الحسابات‬ ‫إدارة‬ ‫تعليمات‬Account Management System: CREATE USER Syntax.1 2.DROP USER Syntax 3.GRANT Syntax 4.RENAME USER Syntax 5.REVOKE Syntax 6.SET PASSWORD Syntax CREATE USER Syntax.1: CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ... ‫نقو‬ ‫حتى‬‫م‬‫تعليمة‬ ‫نستخدم‬ ‫جديد‬ ‫مستخدم‬ ‫بإنشاء‬Create user‫تعليمة‬ ‫باستخدام‬ ‫حتى‬ ‫أو‬Insert. ‫عن‬ ‫ينتج‬ ‫أنه‬ ‫حيث‬‫في‬ ‫جديد‬ ‫سطر‬ ‫جديد‬ ‫مستخدم‬ ‫إضافة‬ mysql.user table.
  • 9. ‫يتم‬ ‫مستخدم‬ ‫كل‬: ‫التالية‬ ‫بالطريقة‬ ‫تسميته‬ ‫تتم‬ ‫إضافته‬‘Medfa’@’localhost’ •‫تحديد‬ ‫فقط‬ ‫أردنا‬ ‫إذا‬user_name‫نستبدل‬localhost‫ب‬‘%’‫أو‬’‘_‫يستطيع‬ ‫المستخم‬ ‫يعنيأن‬ ‫وهذا‬ ‫مضيف‬ ‫أي‬ ‫من‬ ‫المعطيات‬ ‫بقاعدة‬ ‫االتصال‬. ‫الخيار‬ ‫باستخدام‬ ‫سر‬ ‫كلمة‬ ‫للحساب‬ ‫نضع‬ ‫أن‬ ‫يمكن‬IDENTIFIED BY. :‫مثال‬ Create user ‘Tajj’@’localhost’ identified by ‘Taj1234’; :‫ثانية‬ ‫طريقة‬ Use mysql; mysql> insert into user( user,host,password) values('Medfa','localhost',password('taj1234')); ‫التابع‬ ‫استخدام‬ ‫إن‬ :‫مالحظة‬Password‫لنا‬ ‫توفره‬ ‫الذي‬MySQL‫السر‬ ‫كلمة‬ ‫بتشفير‬ ‫يقوم‬ mysql> insert into user( user,host,password) values('christine','localhost','12345tt'); DROP USER Syntax: drop user 'username'@'hostname', 'username1'@'hostname…… ‫تعليمة‬ ‫تستخدم‬DROP USER‫حسابات‬ ‫من‬ ‫أكثر‬ ‫أو‬ ‫حساب‬ ‫إلزالة‬MySQL.
  • 10. ‫صالحية‬ ‫لدينا‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫اإلزالة‬ ‫من‬ ‫نتمكن‬ ‫حتى‬Create user‫أو‬Delete‫من‬‫بيانات‬ ‫قاعدة‬ mysql. .ً‫ا‬‫تلقائي‬ ‫صالحياته‬ ‫حذف‬ ‫يتم‬ ‫مستخدم‬ ‫حساب‬ ‫حذف‬ ‫عند‬ : ‫التالية‬ ‫الحذف‬ ‫تعليمات‬ ‫تنفيذ‬ ‫بعد‬ mysql> drop user 'Medfa'@'::1; ' mysql>drop user 'username'@'hostname; ' mysql> drop user 'tajj1'@'kokab','dbadmin'@'lolhost; ' ‫مالحظة‬‫أخرى‬ ‫مرة‬ ‫واالتصال‬ ‫المستخدم‬ ‫قبل‬ ‫من‬ ‫االتصال‬ ‫غلق‬ ‫عند‬ ‫تطبق‬ ‫مستخدم‬ ‫حساب‬ ‫حذف‬ : . ‫المعطيات‬ ‫بقاعدة‬ GRANT Syntax: GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level TO user_specification [, user_specification] ... [REQUIRE {NONE | tsl_option [[AND] tsl_option] ...}] [WITH {GRANT OPTION | resource_option} ...] GRANT PROXY ON user_specification
  • 11. TO user_specification [, user_specification] ... [WITH GRANT OPTION]  object_type: { TABLE | FUNCTION | PROCEDURE }  priv_level: { * | *.* | db_name.* | db_name.tbl_name | tbl_name | db_name.routine_name }  user_specification: user [ auth_option ] }  auth_option: { # As of MySQL 5.7.6 IDENTIFIED BY 'auth_string' | IDENTIFIED BY PASSWORD 'hash_string' | IDENTIFIED WITH auth_plugin | IDENTIFIED WITH auth_plugin BY 'auth_string' | IDENTIFIED WITH auth_plugin AS 'hash_string' }  tsl_option: { SSL | X509 | CIPHER 'cipher' | ISSUER 'issuer' | SUBJECT 'subject' }  resource_option: {
  • 12. | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count } PRIVILEGE DESCRIPTION ALL [PRIVILEGES] Grant all privileges at specified access level except GRANT OPTION ALTER Allow to use of ALTER TABLE statement ALTER ROUTINE Allow user to alter or drop stored routine CREATE Allow user to create database and table CREATE ROUTINE Allow user to create stored routine CREATE TABLESPACE Allow user to create, alter or drop tablespaces and log file groups CREATE TEMPORARY Allow user to create temporary table by using CREATE TEMPORARY TABLE
  • 13. TABLES CREATE USER Allow user to use the CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES statements. CREATE VIEW Allow user to create or modify view DELETE Allow user to use DELETE DROP Allow user to drop database, table and view EVENT Allow user to schedule events in Event Scheduler EXECUTE Allow user to execute stored routines FILE Allow user to read any file in the database directory. GRANT OPTION Allow user to have privileges to grant or revoke privileges from other accounts INDEX Allow user to create or remove indexes. INSERT Allow user to use INSERT statement LOCK TABLES Allow user to use LOCK TABLES on tables for which you have the SELECT privilege PROCESS Allow user to see all processes with SHOW PROCESSLIST statement. PROXY Enable user proxying REFERENCES Not implemented RELOAD Allow user to use FLUSH operations
  • 14. REPLICATION CLIENT Allow user to query to see where master or slave servers are REPLICATION SLAVE Allow the user to use replicate slaves to read binary log events from the master. SELECT Allow user to use SELECT statement SHOW DATABASES Allow user to show all databases SHOW VIEW Allow user to use SHOW CREATE VIEW statement SHUTDOWN Allow user to use mysqladmin shutdown command SUPER Allow user to use other administrative operations such as CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, and mysqladmin command TRIGGER Allow user to use TRIGGER operations. UPDATE Allow user to use UPDATE statement USAGE Equivalent to “no privileges” ‫تعليمة‬ ‫تستخدم‬Grant‫إل‬‫إمكان‬ ‫و‬ ‫صالحيات‬ ‫عطاء‬,‫البيانات‬ ‫قاعدة‬ ‫لمستخدمي‬ ‫الوصول‬ ‫ية‬‫مثل‬ ‫جدول‬ ‫من‬ ‫سطر‬ ‫إظهار‬ ‫إمكانية‬select‫جديدة‬ ‫أسطر‬ ‫إدخال‬ ,insert‫على‬ ‫بتعديل‬ ‫القيام‬ , ‫الجداول‬ ‫أسطر‬update..‫هكذا‬ ‫و‬ :‫مثال‬ mysql> GRANT ALL ON company.* TO 'tajj'@'localhost';
  • 15. ‫السابق‬ ‫المثال‬ ‫في‬:‫للمستخدم‬ ‫الصالحيات‬ ‫كل‬ ‫بأعطاء‬ ‫قمنا‬tajj‫المعطيات‬ ‫قاعدة‬ ‫على‬company :‫مثال‬ ‫الصالحيات‬ ‫أعطي‬select,update,delete,create,drop‫للمستخدم‬medfa1‫قاعدة‬ ‫على‬ .‫األفتراضية‬ ‫امعطيات‬ mysql>Grant select,update,delete,create,drop On *.* To 'medfa1'@'localhost;' Note1: If you use ON * syntax (rather than ON *.*) and you have selected a default database, privileges are assigned at the database level for the default database. An error occurs if there is no default database. Note2: The CREATE, DROP, EVENT, GRANT OPTION, LOCK TABLES, and REFERENCES privileges can be specified at the database level. Table or routine privileges also can be specified at the database level, in which case they apply to all tables or routines in the database. Note3: Table privileges apply to all columns in a given table. To assign table-level privileges, use ON db_name.table_name syntax. : ‫مثال‬‫طبق‬‫للمستخدم‬ ‫الصالحيات‬ ‫جميع‬tajj‫للوصول‬‫المعطيات‬ ‫قاعدة‬ ‫لجداول‬bb mysql> grant all on bb.* to 'tajj'@'localhost'; ‫بإعطاء‬ ‫مثال:قم‬‫صالحيات‬insert ,select,drop‫للمستخدم‬dbadmin‫جدول‬ ‫على‬department ‫المعطيات‬ ‫قاعدة‬ ‫في‬bb.
  • 16. mysql> grant insert ,select,drop on bb.department To 'dbadmin'@'localhost'; Note4: The permissible priv_type values at the table level are ALTER, CREATE VIEW, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, REFERENCES,SELECT, SHOW VIEW, TRIGGER, and UPDATE. MySQL stores table privileges in the mysql.tables_priv table. : ‫مثال‬ ‫جدول‬ ‫لدينا‬ ‫ليكن‬department‫المعطيات‬ ‫قاعد‬ ‫ضمن‬bb‫المستخدم‬ ‫باعطاء‬ ‫قم‬Tajj‫صالحية‬ ‫العرض‬‫األ‬ ‫للعمود‬‫وصال‬ ‫الجدول‬ ‫من‬ ‫ول‬. ‫الثاني‬ ‫العمود‬ ‫على‬ ‫االدخال‬ ‫حية‬ GRANT SELECT (col1), INSERT (col2) ON bb.department TO 'Tajj'@'locallhost'; Note5: The permissible priv_type values for a column (that is, when you use a column_list clause) are INSERT, REFERENCES, SELECT, and UPDATE. MySQL stores column privileges in the mysql.columns_priv table. ‫صالحيات‬ ‫لمعرفة‬: ‫الحالي‬ ‫المستخدم‬ mysql> show grants; mysql> SHOW GRANTS FOR CURRENT_USER; mysql> SHOW GRANTS FOR CURRENT_USER(); ‫تعليمة‬ ‫بعد‬ ‫المستخدم‬ ‫اسم‬ ‫نكتب‬ ‫ما‬ ‫لمستخدم‬ ‫الصالحيات‬ ‫لمعرفة‬show grants: ‫للمستخدم‬ ‫المسندة‬ ‫الصالحيات‬ ‫لمعرفة‬ :ً‫ال‬‫مث‬Tajj: ‫نكتب‬ show grants for 'tajj'@'localhost;'
  • 17. RENAME User Syntax: RENAME USER old_user TO new_user [, old_user TO new_user] ... .ً‫ا‬‫مع‬ ‫مستخدمين‬ ‫عدة‬ ‫أسماء‬ ‫تغير‬ ‫يمكن‬ ‫األقل‬ ‫على‬ ‫لديك‬ ‫يكون‬ ‫أن‬ ‫يجب‬ ‫مستخدم‬ ‫حساب‬ ‫أسم‬ ‫تغير‬ ‫تستطيع‬ ‫حتى‬ CREATE USER privilege or the UPDATE privilege for the mysql database RENAME USER 'Medfa1'@'localhost' TO 'Medfa'@'127.0.0.1'; . ‫القديم‬ ‫الحساب‬ ‫وابقاء‬ ‫جديد‬ ‫حساب‬ ‫أنشاء‬ ‫سيتم‬ ‫السابق‬ ‫المثال‬ ‫في‬ RENAME USER 'tajj'@'localhost' TO 'Medfa'@'localhost'; REVOKE Syntax: REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level
  • 18. FROM user [, user] ... OR REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ... ‫لحذف‬ : ‫مثال‬‫اإل‬ ‫صالحية‬‫دخال‬‫محتوياتها‬ ‫وجميع‬ ‫المعطيات‬ ‫قاعدة‬ ‫إلى‬‫مستخدم‬ ‫من‬‫التالي‬ ‫نكتب‬: REVOKE All ON *.* FROM 'tajj'@'localhost'; GRANT USAGE.‫المستخدم‬ ‫لهذا‬ ‫صالحيات‬ ‫يوجد‬ ‫ال‬ ‫أنه‬ ‫تعني‬ NOTE: To use this REVOKE syntax, you must have the global CREATE USER privilege or the UPDATE privilege for the mysql database. Mysql change password Account: : ‫حساب‬ ‫مرور‬ ‫كلمة‬ ‫لتغير‬ ‫طرق‬ ‫ثالث‬ ‫لدينا‬ 1.Update user table: USE mysql; UPDATE user SET password = PASSWORD('newpass') WHERE user = 'user_name' AND host = host_name'; FLUSH PRIVILEGES; ‫جديد‬ ‫من‬ ‫للمستخدم‬ ‫الصالحيات‬ ‫نقل‬ ‫يتم‬ ‫حتى‬
  • 19. 2.Setpassword: ‫صالحية‬ ‫األقل‬ ‫على‬ ‫لدي‬ ‫يكون‬ ‫أن‬ ‫يجب‬Update SET PASSWORD FOR 'username'@'hostname= PASSWORD('newpass'); ‫تعليمة‬ ‫الستخدام‬ ‫بحاجة‬ ‫لسنا‬Flush privileges : ‫مثال‬ Set password for 'Tajj'@'localhost'=password('KK222'); 3.Grant statement GRANT USAGE ON *.* TO 'username'@'hostname' IDENTIFIED BY 'newpass'; :‫مثال‬ GRANT USAGE ON *.* TO tajj@localhost IDENTIFIED BY 'Secret1970' ;