5.1.3

5.1.3 Δημιουργία Χρηστών και Απόδοση Ρόλων
**Στόχοι / Προσδοκώμενα Αποτελέσματα** Ο μαθητής/τρια πρέπει να είναι ικανός/ή:
 * να χρησιμοποιεί εντολές SQL για να διαχειρίζεται λογαριασμούς του ΣΔΒΔ (δημιουργία, μετονομασία, διαγραφή, ορισμός και αλλαγή κωδικού)
 * να κατανοεί την αναγκαιότητα προστασίας των λογαριασμών με κωδικό πρόσβασης
 * να κατανοεί την αναγκαιότητα μετονομασίας των λογαριασμών με δικαιώματα Διαχειριστή ΒΔ που δημιουργούνται αυτόματα κατά την εγκατάσταση του ΣΔΒΔ
 * να περιγράφει τα προνόμια που μπορούν να αποδοθούν σε ένα λογαριασμό
 * να χρησιμοποιεί εντολές SQL για να διαχειρίζεται προνόμια (εκχώρηση, ανάκληση, εμφάνιση)
 * να κατανοεί τα κενά ασφάλειας που δημιουργούνται αν επιτραπεί σε χρήστες που δεν είναι Διαχειριστές ΒΔ να εκχωρούν προνόμια
 * να γνωρίζει καλές πρακτικές για τη σωστή διαχείριση των προνομίων

Κάθε άτομο ή εφαρμογή που θέλει να χρησιμοποιήσει μια ΒΔ πρέπει πρώτα να συνδεθεί στο ΣΔΒΔ χρησιμοποιώντας ένα **λογαριασμό χρήστη (user account)**. Οι συγκεκριμένοι λογαριασμοί είναι διαφορετικοί από τους λογαριασμούς του λειτουργικού συστήματος. Υπάρχουν ΣΔΒΔ που μπορούν να συνδέσουν τους δύο τύπους λογαριασμών, ώστε ο χρήστης να μην χρειάζεται να ταυτοποιηθεί δύο φορές, μία από το λειτουργικό σύστημα και μία από το ΣΔΒΔ, για να χρησιμοποιήσει τη ΒΔ.

Η σύνδεση των λογαριασμών του ΣΔΒΔ με τους λογαριασμούς του λειτουργικού συστήματος μειώνει την ασφάλεια του συστήματος καθώς αν κάποιος εισβολέας παραβιάσει ένα λογαριασμό του λειτουργικού συστήματος θα αποκτηθεί αυτόματα πρόσβαση και στο ΣΔΒΔ.

Η δημιουργία λογαριασμών χρήστη στο ΣΔΒΔ είναι από τις σπουδαιότερες αρμοδιότητες του Διαχειριστή ΒΔ καθώς από τη σωστή διαχείριση των λογαριασμών εξαρτάται η ασφάλεια της ΒΔ. Ο λογαριασμός χρήστη με δικαιώματα Διαχειριστή ΒΔ που δημιουργείται κατά την εγκατάσταση του ΣΔΒΔ είναι αρχικά ο μοναδικός που μπορεί να δημιουργήσει άλλους λογαριασμούς.

Η δημιουργία λογαριασμών χρήστη υλοποιείται με διαφορετικό τρόπο από κάθε ΣΔΒΔ, με αποτέλεσμα η σύνταξη των σχετικών εντολών να διαφέρει. Στο ΣΔΒΔ MySQL χρησιμοποιείται η εντολή **CREATE USER**. Για παράδειγμα η εντολή

code format="sql" CREATE USER 'g_pappas'; code

δημιουργεί ένα λογαριασμό με όνομα χρήστη //g_pappas//.

Οι λογαριασμοί χρήστη μπορούν να διαθέτουν κωδικό πρόσβασης. Στο ΣΔΒΔ MySQL, αν στην εντολή CREATE USER χρησιμοποιηθεί η παράμετρος **IDENTIFIED BY** μπορεί να οριστεί κωδικός πρόσβασης. Για παράδειγμα η εντολή

code format="sql" CREATE USER 'k_aggelou' IDENTIFIED BY 'p@$$'; code

δημιουργεί ένα λογαριασμό με όνομα χρήστη //k_aggelou// και κωδικό πρόσβασης //p@$$//.

Για λόγους ασφάλειας, **κάθε λογαριασμός χρήστη του ΣΔΒΔ θα πρέπει να προστατεύεται με κωδικό πρόσβασης (password)**. Από τις πρώτες ενέργειες του Διαχειριστή ΒΔ μετά την εγκατάσταση του ΣΔΒΔ πρέπει να είναι ο ορισμός κωδικών για όλους τους λογαριασμούς που δημιουργούνται αυτόματα κατά την εγκατάσταση του ΣΔΒΔ.

Τα στοιχεία των λογαριασμών χρήστη αποθηκεύονται σε ειδικό πίνακα που δημιουργείται αυτόματα κατά την εγκατάσταση του ΣΔΒΔ. Στο ΣΔΒΔ MySQL αυτός ο πίνακας ονομάζεται **mysql.user**. Με την εντολή

code format="sql" SELECT * FROM mysql.user; code

θα εμφανιστούν οι λεπτομέρειες όλων των λογαριασμών που έχουν δημιουργηθεί. Θα παρατηρήσετε ότι οι κωδικοί πρόσβασης είναι ακατάληπτοι. Αυτό συμβαίνει επειδή οι κωδικοί που ορίζονται με την εντολή **CREATE USER … IDENTIFIED BY …;** κωδικοποιούνται πριν αποθηκευτούν στον πίνακα mysql.user. Έτσι ακόμα κι αν ένα μη εξουσιοδοτημένο άτομο αποκτήσει πρόσβαση στον πίνακα mysql.user δεν θα μπορέσει να ανακτήσει τους κωδικούς.

Για να αλλάξουμε τον κωδικό ενός λογαριασμού ή να ορίσουμε κωδικό σε περίπτωση που αυτό δεν είχε γίνει κατά τη δημιουργία του λογαριασμού, στο ΣΔΒΔ MySQL χρησιμοποιούμε την εντολή **SET PASSWORD**. Για παράδειγμα η εντολή

code format="sql" SET PASSWORD FOR 'a_dimou' = PASSWORD('0p3n'); code

ορίζει κωδικό πρόσβασης //0p3n// για τον λογαριασμό με όνομα χρήστη //a_dimou//. Η συνάρτηση **PASSWORD(...)** κρυπτογραφεί τον κωδικό πρόσβασης πριν αποθηκευτεί στον πίνακα mysql.user με τα στοιχεία των λογαριασμών.

Στο ΣΔΒΔ **MySQL** η εντολή **SET PASSWORD** δεν κωδικοποιεί τους κωδικούς – σε αντίθεση με την εντολή **CREATE USER … IDENTIFIED BY …;** – γι' αυτό πρέπει να χρησιμοποιηθεί η συνάρτηση **PASSWORD(...)**.

Υπάρχει δυνατότητα αλλαγής του ονόματος ενός λογαριασμού. Αυτό συνήθως γίνεται για λόγους ασφάλειας. Για παράδειγμα, στο ΣΔΒΔ MySQL το προτεινόμενο όνομα του λογαριασμού με δικαιώματα Διαχειριστή ΒΔ που δημιουργείται κατά την εγκατάσταση του ΣΔΒΔ είναι //root//. Αν χρησιμοποιηθεί αυτό το όνομα τότε μειώνεται η ασφάλεια του συστήματος καθώς από τα δύο συστατικά του λογαριασμού (όνομα και κωδικός) το ένα είναι ήδη γνωστό (όνομα) και το μόνο που χρειάζεται κάποιος εισβολέας είναι να μαντέψει το άλλο (κωδικός). Στο ΣΔΒΔ MySQL η μετονομασία ενός λογαριασμού γίνεται με την εντολή **RENAME USER**. Για παράδειγμα η εντολή

code format="sql" RENAME USER ‘root’ TO ‘db_admin’; code

θα μετονομάσει τον λογαριασμό με όνομα //root// σε //db_admin//.

Από τις πρώτες ενέργειες του Διαχειριστή ΒΔ μετά την εγκατάσταση του ΣΔΒΔ πρέπει να είναι η **μετονομασία των λογαριασμών με δικαιώματα Διαχειριστή ΒΔ που έχουν συνηθισμένα ονόματα ή ονόματα που αναφέρονται στις οδηγίες του κατασκευαστή**.

Υπάρχουν περιπτώσεις που ένας λογαριασμός πρέπει να καταργηθεί, π.χ. επειδή τo άτομο που τον χρησιμοποιούσε μετακινήθηκε σε άλλη θέση ή αποχώρησε. Για τον σκοπό αυτό χρησιμοποιείται η εντολή **DROP USER**. Για παράδειγμα η εντολή

code format="sql" DROP USER 'm_alexiou'; code

θα διαγράψει από το ΣΔΒΔ το λογαριασμό με όνομα χρήστη //m_alexiou//.

Οι ενέργειες που μπορεί να εκτελέσει ένας λογαριασμός χρήστη του ΣΔΒΔ καθορίζονται από τα δικαιώματα που διαθέτει ο λογαριασμός. Στην ορολογία των ΒΔ, τα δικαιώματα αυτά ονομάζονται **προνόμια (privileges)**. Στην ορολογία των ΒΔ, όταν δίνεται ένα προνόμιο λέμε ότι το προνόμιο **εκχωρείται (grant)** και όταν αφαιρείται λέμε ότι το προνόμιο **ανακαλείται (revoke)**.

Ένα προνόμιο μπορεί να είναι καθολικό, δηλαδή να αφορά όλες τις ΒΔ δεδομένων του ΣΔΒΔ. Εναλλακτικό το προνόμιο μπορεί να είναι για συγκεκριμένη ΒΔ του ΣΔΒΔ, για συγκεκριμένο πίνακα μιας ΒΔ ή για συγκεκριμένη στήλη ενός πίνακα. Τα πιο συνηθισμένα προνόμια που υποστηρίζει το ΣΔΒΔ MySQL και το επίπεδο στο οποίο μπορούν να εφαρμοστούν παρουσιάζονται στον ακόλουθο πίνακα.


 * Πίνακας 5.1** Κατάλογος προνομίων του ΣΔΒΔ MySQL
 * ~ Προνόμιο ||~ Επιτρεπόμενες ενέργειες ||~ Επίπεδο ||
 * ALL || Όλα τα προνόμια εκτός από GRANT OPTION || Καθολικό, ΒΔ, Πίνακας, Στήλη ||
 * ALTER || Τροποποίηση της δομής πίνακα || Καθολικό, ΒΔ, Πίνακας ||
 * CREATE || Δημιουργία ΒΔ και πίνακα || Καθολικό, ΒΔ, Πίνακας ||
 * CREATE USER || Δημιουργία, διαγραφή και μετονομασία λογαριασμού χρήστη || Καθολικό ||
 * DELETE || Διαγραφή γραμμών από πίνακα || Καθολικό, ΒΔ, Πίνακας ||
 * DROP || Διαγραφή ΒΔ, πίνακα και όψης || Καθολικό, ΒΔ, Πίνακας ||
 * GRANT OPTION || Εκχώρηση και ανάκληση προνομίου σε λογαριασμό χρήστη || Καθολικό, ΒΔ, Πίνακας ||
 * INDEX || Δημιουργία και διαγραφή ευρετηρίου || Καθολικό, ΒΔ, Πίνακας ||
 * INSERT || Εισαγωγή γραμμών σε πίνακα || Καθολικό, ΒΔ, Πίνακας, Στήλη ||
 * REFERENCES || Δημιουργία ξένου κλειδιού || Καθολικό, ΒΔ, Πίνακας, Στήλη ||
 * SELECT || Επιλογή γραμμών από πίνακα || Καθολικό, ΒΔ, Πίνακας, Στήλη ||
 * SHUTDOWN || Τερματισμός ΣΔΒΔ || Καθολικό ||
 * SUPER || Χρήση εργαλείων διαχείρισης ΣΔΒΔ, παραμετροποίηση ΣΔΒΔ || Καθολικό ||
 * UPDATE || Ενημέρωση γραμμών πίνακα || Καθολικό, ΒΔ, Πίνακας, Στήλη ||

Ένας λογαριασμός χρήστη μπορεί να εκχωρήσει σε άλλο λογαριασμό μόνο προνόμια που ήδη κατέχει. Ο λογαριασμός χρήστη με δικαιώματα Διαχειριστή ΒΔ που δημιουργείται κατά την εγκατάσταση του ΣΔΒΔ κατέχει όλα τα διαθέσιμα προνόμια σε όλα τα επίπεδα και στη συνέχεια μπορεί να τα εκχωρήσει στους λογαριασμούς που θα δημιουργηθούν.

Στο ΣΔΒΔ MySQL η εκχώρηση προνομίου γίνεται με την εντολή **GRANT**, η οποία έχει την ακόλουθη σύνταξη

code format="sql" GRANT ΟΝ ΤΟ ; code

όπου // // το όνομα του προνομίου, // // το επίπεδο στο οποίο εφαρμόζεται το προνόμιο και // // το όνομα του λογαριασμού χρήστη στον οποίο εκχωρείται το προνόμιο. Το επίπεδο εφαρμογής του προνομίου μπορεί να λάβει τις ακόλουθες τιμές:
 * ***.*** για καθολικό προνόμιο που αφορά όλες τις ΒΔ του ΣΔΒΔ,
 * **db.*** για προνόμιο στη ΒΔ με όνομα //db//,
 * **db.table** για προνόμιο στον πίνακα με όνομα //table// που βρίσκεται μέσα στη ΒΔ με όνομα //db//,
 * **db.table(column)** για προνόμιο στη στήλη με όνομα //column// του πίνακα με όνομα //table// που βρίσκεται στη ΒΔ με όνομα //db//.

Με μία εντολή GRANT μπορούν να εκχωρηθούν περισσότερα από ένα προνόμια σε περισσότερους από έναν λογαριασμούς. Σε αυτή την περίπτωση η εντολή περιλαμβάνει λίστες από προνόμια και λίστες από χρήστες, με τα στοιχεία κάθε λίστας να διαχωρίζονται με κόμματα.

Ακολουθούν παραδείγματα εκχώρησης προνομίων στο ΣΔΒΔ MySQL σε όλα τα διαθέσιμα επίπεδα (καθολικό, ΒΔ, πίνακας, στήλη). **Στα παραδείγματα θεωρούμε ότι οι εντολές εκτελούνται από λογαριασμό χρήστη με δικαιώματα Διαχειριστή ΒΔ, ο οποίος κατέχει όλα τα διαθέσιμα προνόμια σε όλα τα πιθανά επίπεδα (καθολικό, ΒΔ, πίνακας, στήλη)**.

code format="sql" GRANT ALL ON *.* TO ‘g_pappas’; code

Εκχωρούνται όλα τα διαθέσιμα προνόμια στο λογαριασμό χρήστη με όνομα //g_pappas//. Ουσιαστικά ο λογαριασμός //g_pappas// αποκτάει δικαιώματα Διαχειριστή ΒΔ καθώς μπορεί να εκτελέσει οποιαδήποτε ενέργεια σε όλες τις ΒΔ του ΣΔΒΔ.

Το ειδικό προνόμιο **ALL** σημαίνει «όλα των διαθέσιμα προνομία για το αντίστοιχο επίπεδο εφαρμογής (καθολικό, ΒΔ, πίνακας, στήλη)». Δηλαδή αν εφαρμοστεί καθολικά περιλαμβάνει όλα τα καθολικά προνόμια, αν εφαρμοστεί σε ΒΔ περιλαμβάνει όλα τα προνόμια για ΒΔ κ.ο.κ. Μια εντολή **GRANT** με το προνόμιο **ALL** δεν μπορεί να περιλαμβάνει άλλα προνόμια παρά μόνο το προνόμιο **GRANT OPTION**.

code format="sql" GRANT CREATE, DROP ON mathitologio.* TO ‘k_aggelou’; code Στο λογαριασμό χρήστη με όνομα //k_aggelou// εκχωρείται τα προνόμια δημιουργίας πίνακα (CREATE) στη ΒΔ //mathitologio// και το προνόμιο διαγραφής (DROP) οποιουδήποτε πίνακα της ΒΔ //mathitologio//.

code format="sql" GRANT SELECT, INSERT ON mathitologio.Μάθημα TO ‘a_dimou’, ‘m_alexiou’; code

Στους λογαριασμούς χρήστη με ονόματα //a_dimou// και //m_alexiou// εκχωρείται το προνόμιο επιλογής γραμμών (SELECT) και το προνόμιο εισαγωγής γραμμών (INSERT) στον πίνακα //Μάθημα// της ΒΔ //mathitologio//.

code format="sql" GRANT SELECT (ΑΜ, Επώνυμο, Όνομα), UPDATE (ΑΜ) ON mathitologio.Μαθητής TO ‘d_georgiou’; code

Εκχωρούνται στο λογαριασμό χρήστη με όνομα //d_georgiou// το προνόμιο επιλογής (SELECT) στις στήλες //ΑΜ//, //Επώνυμο// και //Όνομα// του πίνακα //Μαθητής// της ΒΔ //mathitologio//, και το προνόμιο ενημέρωσης (UPDATE) στη στήλη //ΑΜ// του πίνακα //Μαθητής// της ΒΔ //mathitologio//. Δηλαδή ο χρήστης //d_georgiou// μπορεί με την εντολή SELECT να εμφανίσει μόνο τα περιεχόμενα των στηλών //ΑΜ//, //Επώνυμο// και //Όνομα// και με την εντολή UPDATE μπορεί να ενημερώσει μόνο τα περιεχόμενα της στήλης //ΑΜ//.

Υπάρχει ένα ειδικό προνόμιο που ονομάζεται **GRANT OPTION** και δίνει τη δυνατότητα σε ένα λογαριασμό χρήστη να εκχωρεί προνόμια σε άλλους λογαριασμούς. Αυτό γίνεται προσθέτοντας την επιλογή **WITH GRANT OPTION** στο τέλος μιας εντολής GRANT. Για παράδειγμα, στο ΣΔΒΔ MySQL η εντολή

code format="sql" GRANT SELECT ON mathitologio.* TO ‘i_petrou’ WITH GRANT OPTION; code

εκχωρεί στο λογαριασμό χρήστη με όνομα //i_petrou// το προνόμιο επιλογής γραμμών από όλους τους πίνακες της ΒΔ //mathitologio// και παράλληλα επιτρέπει στον χρήστη //i_petrou// να εκχωρήσει προνόμια που ήδη διαθέτει για τη ΒΔ //mathitologio// σε άλλο λογαριασμό χρήστη.

Ο λογαριασμός χρήστη με δικαιώματα Διαχειριστή ΒΔ που δημιουργείται κατά την εγκατάσταση του ΣΔΒΔ είναι αρχικά ο μοναδικός που μπορεί να εκχωρεί προνόμια σε άλλους λογαριασμούς.

Το προνόμιο **GRANT OPTION** πρέπει να χρησιμοποιείται με προσοχή, καθώς όταν εκχωρηθεί δίνει το δικαίωμα σε ένα χρήστη να εκχωρήσει σε κάποιον άλλο οποιοδήποτε προνόμιο **ήδη κατέχει ή θα αποκτήσει στο μέλλον**. Γι’ αυτό θα πρέπει να εκχωρείται με μεγάλη προσοχή καθώς μπορεί να χρησιμοποιηθεί για να παρακαμφθούν οι κανόνες ασφάλειας που έχει θέσει ο Διαχειριστής ΒΔ.

Για να γίνουν κατανοητά τα προηγούμενα, έστω ότι ο Διαχειριστής ΒΔ εκχωρεί στον χρήστη //user1// τα προνόμια SELECT, INSERT, UPDATE, DELETE με GRANT OPTION, και στον χρήστη //user2// τα προνόμια SELECT, UPDATE. Ο //user1// έχει το προνόμιο GRANT OPTION οπότε μπορεί να εκχωρήσει στον //user2// τα προνόμια INSERT, DELETE παρόλο που ο Διαχειριστής ΒΔ είχε αποφασίσει ότι ο //user2// δεν έπρεπε να τα κατέχει. Έστω ότι στη συνέχεια ο Διαχειριστής ΒΔ εκχωρεί στον //user1// το προνόμιο DROP (χωρίς την επιλογή GRANT OPTION). Παρόλο που ο //user1// απέκτησε το προνόμιο DROP χωρίς την επιλογή GRANT OPTION, μπορεί να εκχωρήσει το προνόμιο DROP στον //user2// καθώς ήδη διαθέτει το προνόμιο GRANT OPTION από προηγούμενη εντολή. Γι’ αυτό το λόγο, σε παραγωγικό περιβάλλον που η ΒΔ περιέχει πραγματικά δεδομένα, μόνο ο Διαχειριστής ΒΔ θα πρέπει να διαθέτει το προνόμιο GRANT OPTION.

Για την προστασία της δομής και των περιεχομένων μιας ΒΔ προτείνονται οι ακόλουθοι **κανόνες για τη διαχείριση των προνομίων**:
 * Σε κάθε λογαριασμό να δίνονται τα ελάχιστα προνόμια που χρειάζεται ο χρήστης του λογαριασμού για να χρησιμοποιήσει τη ΒΔ. Δηλαδή αν κάποιος απλώς αναζητάει δεδομένα τότε ο λογαριασμός του θα πρέπει να έχει μόνο το προνόμιο SELECT.
 * Τα προνόμια να δίνονται για συγκεκριμένη ΒΔ και αν είναι δυνατό για συγκεκριμένο πίνακα της ΒΔ. Καθολικά προνόμια να διαθέτει μόνο ο Διαχειριστής ΒΔ.
 * Το προνόμιο GRANT OPTION να διαθέτει μόνο ο Διαχειριστής ΒΔ.

Υπάρχουν περιπτώσεις που κάποια προνόμια πρέπει να ανακληθούν από ένα λογαριασμό, επειδή για παράδειγμα άλλαξαν οι αρμοδιότητες του χρήστη. Η ανάκληση προνομίων γίνεται με την εντολή **REVOKE**. Για παράδειγμα, στο ΣΔΒΔ MySQL με την εντολή

code format="sql" REVOKE SELECT, INSERT ON mathitologio.mathima TO ‘a_dimou’; code

θα ανακληθεί από το λογαριασμό χρήστη με όνομα //a_dimou// το προνόμιο επιλογής γραμμών (SELECT) και το προνόμιο εισαγωγής γραμμών (INSERT) στον πίνακα //mathima// της ΒΔ //mathitologio//.

Για να ανακαλέσει ένας χρήστης προνόμια από κάποιον άλλο χρήστη θα πρέπει να διαθέτει το προνόμιο **GRANT OPTION** καθώς και τα προνόμια που προσπαθεί να ανακαλέσει.

Όπως γίνεται κατανοητό, αν το πλήθος των χρηστών μιας ΒΔ είναι μεγάλο και γίνονται συχνά αλλαγές στα προνόμια, δεν είναι εύκολο να θυμάται ο Διαχειριστής ΒΔ τα προνόμια κάθε χρήστη. Γι’ αυτό υπάρχει η εντολή **SHOW GRANTS** που εμφανίζει τα προνομία ενός λογαριασμού. Για παράδειγμα, η εντολή

code format="sql" SHOW GRANTS FOR ‘m_alexiou’; code

θα εμφανίσει τις εντολές GRANT που απαιτήθηκαν για να αποκτήσει ο λογαριασμός χρήστη με όνομα //m_alexiou// τα προνόμια που διαθέτει.

Είναι συνηθισμένο σε μια ΒΔ να υπάρχουν πολλοί χρήστες που λόγω της εργασίας τους πρέπει να έχουν τα ίδια ακριβώς προνόμια. Για τις περιπτώσεις αυτές, ορισμένα ΣΔΒΔ υποστηρίζουν τη δημιουργία **ρόλων (roles)**. Ένας ρόλος δημιουργείται με την εντολή **CREATE ROLE** στην οποία προσδιορίζεται το όνομα του ρόλου. Στη συνέχεια εκχωρούνται προνόμια στο ρόλο με μια εντολή GRANT, στην οποία αντί για όνομα λογαριασμού αναφέρεται το όνομα του ρόλου. Τέλος, εκχωρείται ο ρόλος σε λογαριασμούς με μια εντολή GRANT, στην οποία αντί για προνόμια αναφέρεται ο ρόλος. Με αυτό τον τρόπο οι λογαριασμοί αποκτούν τα προνόμια που διαθέτει ο ρόλος. Η ύπαρξη ρόλων διευκολύνει το έργο του Διαχειριστή ΒΔ καθώς οι αλλαγές προνομίων γίνονται στους ρόλους αντί σε κάθε λογαριασμό ξεχωριστά.

Το ΣΔΒΔ **MySQL** στην τελευταία έκδοσή του (5.6.25, Μάιος 2015) **δεν** υποστηρίζει ρόλους.

**Ερωτήσεις / Δραστηριότητες**
 * 1) Συνδεθείτε στο ΣΔΒΔ MySQL με λογαριασμό χρήστη που διαθέτει τα προνόμια CREATE USER και GRANT OPTION.
 * Δημιουργήστε ένα νέο λογαριασμό χρήστη χρησιμοποιώντας ένα όνομα της επιλογής σας.
 * Στον λογαριασμό που δημιουργήσατε, ορίστε ως κωδικό πρόσβασης τη λέξη secret.
 * Στον λογαριασμό που δημιουργήσατε, εκχωρείστε το προνόμιο SELECT στη ΒΔ mathitologio, το προνόμιο INSERT στον πίνακα Μάθημα της ΒΔ mathitologio και το προνόμιο UPDATE στις στήλες Επώνυμο και Όνομα του πίνακα Μαθητής της ΒΔ mathitologio.
 * Χρησιμοποιήστε την κατάλληλη εντολή SQL για να εμφανίσετε τα προνόμια του λογαριασμού που δημιουργήσατε.
 * Συνδεθείτε με τον λογαριασμό που δημιουργήσατε και υποβάλετε διάφορα ερωτήματα SQL για να επιβεβαιώσετε ότι ο λογαριασμός διαθέτει τα προνόμια που εκχωρήθηκαν.