Advertiment
És molt recomanable fer sempre una còpia de seguretat de les bases de dades sempre que hi hagis de fer canvis importants
La funció GRANT de MySQL és la que s'utilitza per concedir privilegis:
GRANT privilegios
ON base/tabla
TO usuario [IDENTIFIED by ´contraseña´]
[WITH GRANT OPTION];L'opció WITH GRANT OPTION permet a l'usuari concedir a altres usuaris els mateixos privilegis que té.
Amb la consulta següent concediries tots els permisos (excepte WITH GRANT OPTION) a un usuari sobre una base de dades especificada:
GRANT ALL ON BD.* TO USER@localhost IDENTIFIED BY "PASSWORD";Per concedir tots els permisos, inclòs WITH GRANT OPTION, cal indicar-ho amb l'opció corresponent:
GRANT ALL ON BD.* TO USER@localhost IDENTIFIED BY "PASSWORD" WITH GRANT OPTION;Cal destacar que això no és aconsellable i és molt insegur, ja que només l'usuari administrador hauria de poder afegir o eliminar privilegis.
De la manera següent només li donaries permís per executar algunes consultes sobre la base de dades. Cal destacar que l'usuari no podria crear taules noves ni bases de dades noves:
GRANT select,insert,update,delete ON BD.* TO USER@localhost IDENTIFIED BY "PASSWORD";A MySQL +8 no és possible utilitzar IDENTIFIED amb GRANT. Per tant, per crear l'usuari i assignar permisos, caldria fer el següent:
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON BD.* TO 'usuario'@'localhost';
La funció REVOKE s'utilitza per revocar privilegis als usuaris. La seva sintaxi és molt semblant a la de GRANT:
REVOKE privilegios ON base/tabla FROM usuario;D'aquesta manera trauries tots els permisos de l'usuari.
REVOKE ALL ON BD.* from USER@localhost;