Det er meget almindeligt at se en bevillingserklæring som den følgende, der giver adgang til alle tabellerne i en given database.
GRANT SELECT, SHOW VIEW
ON mydatabase.*
TO myreaduser@myhost IDENTIFIED BY 'somepassword';
FLUSH PRIVILEGES;
Hvor mydatabase
, myreaduser
, myhoost
, og somepassword
er de passende variabler til din database. Bemærk, at FLUSH PRIVILEGES
kommandoen nulstiller MySQLs privilegier, og du vil ikke være i stand til at bruge de nye brugerbevillinger, før den er kørt.
En sådan bruger vil være i stand til at læse og få adgang til alle tabellerne i en database. Til dette eksempel skal vi bruge boatio-databasen, som har 3 tabeller:boats
, trips
og users
.
mysql> show tables;
+------------------+
| Tables_in_boatio |
+------------------+
| boats |
| trips |
| users |
+------------------+
3 rows in set (0.00 sec)
Hvis vi gerne vil oprette en bruger, der kun har adgang til trips
tabel, erstatter vi simpelthen jokertegnet splat (*), som repræsenterer alle tabeller, med de specifikke tabeller, du ønsker (i dette tilfælde:trips
).
GRANT SELECT, SHOW VIEW
ON boatio.trips
TO myreaduser@localhost IDENTIFIED BY 'somepassword';
FLUSH PRIVILEGES;
Nu kan vi logge ind som den nye bruger og køre show-tabeller for at se, at den kun har adgang til trips
bord og ikke de to andre. Denne nye bruger ved simpelthen ikke, at de andre tabeller eksisterer.
$ mysql -umyreaduser boatio -psomepassword
mysql> show tables;
+------------------+
| Tables_in_boatio |
+------------------+
| trips |
+------------------+
1 row in set (0.00 sec)
For at give brugeren adgang til flere tabeller skal du blot køre den samme GRANT
igen sætning med de ekstra tabelnavne. For eksempel vil følgende give adgang til trips
og users
tabeller, men ikke boats
.
GRANT SELECT, SHOW VIEW ON boatio.trips TO myreaduser@localhost IDENTIFIED BY 'somepassword';
GRANT SELECT, SHOW VIEW ON boatio.users TO myreaduser@localhost IDENTIFIED BY 'somepassword';
FLUSH PRIVILEGES;
Og beviset:brugeren har nu adgang til trips
og users
tabeller, men ikke boats
.
$ mysql -umyreaduser boatio -psomepassword
mysql> show tables;
+------------------+
| Tables_in_boatio |
+------------------+
| trips |
| users |
+------------------+
2 rows in set (0.00 sec)