Bases de datos en MySQL
Bases de datos en MySQL
Bases de datos en MySQL
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
© FUOC • P06/M2109/02151 47 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> <strong>en</strong> <strong>MySQL</strong><br />
El comando flush privileges solicita a <strong>MySQL</strong> que vuelva a leer las tablas <strong>de</strong><br />
privilegios. En el mom<strong>en</strong>to <strong>de</strong> ejecutarse, el servidor lee la información <strong>de</strong> estas<br />
tablas sobre privilegios. Pero si se han alterado las tablas manualm<strong>en</strong>te, no<br />
se <strong>en</strong>terará <strong>de</strong> los cambios hasta que utilicemos el comando flush privileges.<br />
Tablas <strong>de</strong> la base <strong>de</strong> <strong>datos</strong> mysql<br />
Tabla Cont<strong>en</strong>ido<br />
user Cu<strong>en</strong>tas <strong>de</strong> usuario y sus privilegios globales<br />
db Privilegios sobres bases <strong>de</strong> <strong>datos</strong><br />
tables_priv Privilegios sobre tablas<br />
columns_priv Privilegios sobre columnas<br />
host Privilegios <strong>de</strong> otros equipos anfitriones sobre bases <strong>de</strong> <strong>datos</strong><br />
El acceso directo a las tablas <strong>de</strong> privilegios es útil <strong>en</strong> varios casos; por ejemplo, para<br />
borrar un usuario <strong>de</strong>l sistema <strong>en</strong> las versiones <strong>de</strong> <strong>MySQL</strong> anteriores a la 4.1.1:<br />
mysql> <strong>de</strong>lete from user<br />
-> where User = ’visitante’ and Host = ’localhost’;<br />
mysql> flush privileges;<br />
No es posible eliminar mediante un solo comando revoke todos los privilegios<br />
<strong>de</strong> un usuario.<br />
Ejemplo<br />
Se otorgan <strong>de</strong>rechos a un usuario con dos comandos grant.<br />
Observando el cont<strong>en</strong>ido <strong>de</strong> la base <strong>de</strong> <strong>datos</strong> <strong>de</strong> privilegios, po<strong>de</strong>mos <strong>en</strong>t<strong>en</strong><strong>de</strong>r el comportami<strong>en</strong>to<br />
<strong>de</strong> los comandos grant y revoke. Primero asignamos privilegios para usar el comando<br />
select al usuario visitante con dos comandos grant: el primero <strong>de</strong> ellos le permite el<br />
ingreso <strong>de</strong>s<strong>de</strong> el servidor nuestra-ong.org y el segundo le otorga el mismo tipo <strong>de</strong> privilegio,<br />
pero <strong>de</strong>s<strong>de</strong> cualquier equipo <strong>en</strong> Internet.<br />
mysql> grant select<br />
-> on *.*<br />
-> to visitante@nuestra-ong.org;<br />
Query OK, 0 rows affected (0.01 sec)<br />
mysql> grant select<br />
-> on *.*<br />
-> to visitante@’%’;<br />
Query OK, 0 rows affected (0.00 sec)<br />
Consultando la tabla user <strong>de</strong> la base <strong>de</strong> <strong>datos</strong> <strong>de</strong> privilegios, po<strong>de</strong>mos observar los valores ’Y’<br />
<strong>en</strong> la columna <strong>de</strong>l privilegio select.<br />
mysql> select user,host,select_priv from user<br />
-> where user = ’visitante’;