Administració de MySQL: com crear un usuari i definir els seus drets

Taula de continguts:

Administració de MySQL: com crear un usuari i definir els seus drets
Administració de MySQL: com crear un usuari i definir els seus drets
Anonim

Una característica característica de MySQL és la seva pròpia seguretat, que es basa en una protecció externa. Com a sistema de gestió de bases de dades modern, complet i eficient, MySQL té les seves pròpies eines per gestionar els usuaris i el seu accés als recursos que controla.

mysql crea usuari
mysql crea usuari

Si no coneixeu el nom d'usuari i la contrasenya correctes, és molt difícil accedir a la base de dades mitjançant MySQL.

En el mode d'allotjament normal, això és suficient. Les situacions imprevistes, els atacs de pirates informàtics i altres problemes són una qüestió d'administració del sistema extern i serveis de seguretat. Aquest concepte s'ha convertit en tradicional i pràcticament no es parla.

Instal·la el servidor MySQL i l'usuari root

En qualsevol entorn operatiu que estigui instal·lat el sistema de gestió de bases de dades, sempre té almenys un usuari: root. Instal·leu MySQL, creeu un usuari amb tots els drets root; sense això, treballeu-hiservidor no és possible. Els privilegis d'aquest usuari són suficients per:

  • crear i administrar nous usuaris;
  • creeu i gestioneu bases de dades.
mysql crea un usuari i dóna drets a la base de dades
mysql crea un usuari i dóna drets a la base de dades

És fonamentalment possible que els usuaris "sense contrasenya" existeixin a MySQL, però això és inacceptable.

Pràctica habitual:

  • servidor instal·lat al propi ordinador, on es pot instal·lar l'allotjament (opció local);
  • servidor està en allotjament públic a Internet.

En el primer cas, és possible treballar amb el servidor des de la línia d'ordres i utilitzar phpMyAdmin, en el segon cas, només phpMyAdmin o una eina similar, però es pot accedir a la línia d'ordres mitjançant accés SSH remot.

Eines d'administració pròpies

El sentiment de parentiu amb la família Unixoid i amb el passat dels servidors Apache és un segell distintiu de MySQL: create user és una línia d'ordres amb una sintaxi estranya. Per als professionals que treballen amb Linux i sistemes similars, això és tan familiar com salvatge als ulls dels usuaris de Windows que mai han "entrat a la vida real".

La creació d'un usuari comença amb l'inici de la línia d'ordres del servidor. En un entorn Windows, això es fa de la següent manera.

mysql crea usuari amb tots els drets
mysql crea usuari amb tots els drets

Primer (1) heu d'executar la línia d'ordres com a administrador, després aneu a la carpeta on es troba MySQL (2) i desprésiniciar el propi servidor (3):

mysql -u… -p

aquí "-u…" i "-p" són tecles que apunten al nom "…"=root (o un altre nom) i la seva contrasenya. En principi, pot ser que un usuari no sigui root, sinó que tingui drets "root" (administratius).

Important: el servidor en realitat sempre s'està executant, aquí mysql -u… -p és l'ordre per accedir al servidor, no iniciar-lo.

En un entorn Linux i sistemes similars, aquesta ordre és una acció "nativa" i, per regla general, es determina simplement iniciant mysqld al lloc correcte (al camí correcte), això s'ha de comprovar amb l'administrador. Normalment hi ha un nom diferent aquí: no mysql, sinó mysqld. També aquí, aquesta acció no sempre està disponible per a tots els usuaris (del sistema operatiu, no del servidor MySQL). A diferència de Windows, en Linuxoids, l'ordre i la seguretat són un requisit natural i no negociable, que sempre es tracta de manera civilitzada.

En qualsevol cas, un cop s'hagi iniciat mysql, ho anunciarà amb un missatge (4):

mysql>

i serà possible treballar tant amb usuaris com amb bases de dades.

Nota. Quan s'instal·la en un entorn Windows, tot: Apache, MySQL, PHP, phpMyAdmin es pot configurar amb els camins predeterminats, però es recomana utilitzar ubicacions més compactes i properes per a aquestes eines importants:

  • c:\SCiA\Apache;
  • c:\SCiA\PHP;
  • c:\SCiA\MySQL;
  • c:\SCiB\localhost\www\phpMyAdmin;
  • c:\SCiB\site1\www;
  • c:\SCiB\site2\www;
  • c:\SCiB\siteN\www\.

Aquesta lògica no només simplificarà l'administració, sinó que també ampliarà la capacitat del desenvolupador per moure's entre les versions del producte i gestionar-ne la funcionalitat.

Treballant a la línia d'ordres de MySQL

Un cop el servidor ha respost i ha proporcionat la seva línia d'ordres, es poden crear usuaris i se'ls poden assignar permisos.

mysql crea usuari per a qualsevol host
mysql crea usuari per a qualsevol host

En aquest exemple, l'ordre create user va crear l'usuari Petrov amb la contrasenya 123DFG. Si es comet un error en introduir una ordre, el servidor s'ofereix per corregir-la, però és millor no cometre mai errors quan es treballa a la línia d'ordres!

La següent comanda concedir tots els privilegis dóna tots els drets a tot. L'ordre de buidament es pot ometre, però fa "explotar" la memòria intermèdia d'ordres, és a dir, n'arregla l'execució.

MySQL: crea un usuari i concedeix drets a la base de dades

Ordre utilitzada a l'exemple:

CONSEGUEIX TOTS ELS PRIVILEGIS A. A 'Petrov'@'localhost';

en realitat concedeix a l'usuari Petrov accés a totes les bases de dades (primer asterisc) a totes les taules (segon asterisc).

mysql crea usuari amb tots els drets
mysql crea usuari amb tots els drets

Com a regla general de MySQL, crear un usuari és:

GRANT [tipus de privilegi] ON [nom de la base de dades].[nom de la taula] A '[usuari]'@'localhost';

Es permeten els privilegis següents:

  • TOTS ELS PRIVILEGIS - tots els drets.
  • CREATE: el dret de crear taules/bases de dades noves.
  • DROP: el dret a soltar taules/bases de dades.
  • DELETE: el dret a suprimir la informació de les taules.
  • INSERT: el dret d'escriure informació a les taules.
  • SELECT: el dret de llegir la informació de les taules.
  • ACTUALITZACIÓ: dret a actualitzar la informació de les taules.
  • GRANT OPTION: el dret a treballar amb els privilegis d' altres usuaris.

Des d'un punt de vista pràctic, a MySQL "crear un usuari" implica tres opcions de drets:

  • tots els drets de totes les bases de dades i tots els usuaris;
  • llegir i escriure;
  • només lectura.

Poques vegades es requereixen altres opcions per atorgar drets. A l'entorn Linux, hi ha moltes més raons per a la llibertat "legal" (i la necessitat), però hi ha moltes més oportunitats que a Windows.

L'operació inversa de "crear usuari" de MySQL és deixar anar.

drop usuari 'Petrov'@'localhost';

Després d'executar aquesta ordre, Petrov deixarà de ser usuari i es perdran els seus privilegis. Per canviar els privilegis, utilitzeu l'ordre:

REVOCA [privilegi] a [DB].[Taula] A '[usuari]'@'localhost';

L'acció habitual a MySQL és crear un usuari o suprimir-lo, però canviar els privilegis també és una operació vàlida (poques vegades es sol·licita).

Usant phpMyAdmin

Hi ha moltes implementacions d'aquesta meravellosa eina. Depenent de la versió d'Apache, PHP i MySQL utilitzada, sovint es triga molt de temps a trobar la versió adequada d'aquest producte, però un cop phpMyAdmin s'ha instal·lat correctament, l'usuari disposa de moltes funcions convenients i d'un servei còmode.interfície.

mysql crea usuari per a qualsevol host
mysql crea usuari per a qualsevol host

Mitjançant phpMyAdmin, podeu dir a MySQL que creï un usuari per a qualsevol amfitrió i gestione els usuaris existents de manera gairebé quirúrgica.

phpMyAdmin no és l'única eina amb una interfície còmoda, intuïtiva i rica en funcions, però és l'eina més popular per administrar servidors MySQL.

Sobre la línia d'ordres i la seguretat

Per descomptat, utilitzar la línia d'ordres de MySQL és un exercici poc atractiu, però cal tenir en compte que en alguns casos només la línia d'ordres del servidor pot desar la base de dades o l'usuari, garantir la importació o exportació d'informació.

mysql crea usuari per a qualsevol host
mysql crea usuari per a qualsevol host

Les versions de programari evolucionen tan ràpidament que els desenvolupadors simplement no tenen temps per combinar les funcions de, per exemple, PHP i MySQL, MySQL i phpMyAdmin. Si passa alguna cosa, la línia d'ordres sempre salvarà el dia.

Tampoc no s'ha d'oblidar mai: l'administració de MySQL només consisteix en accedir a les seves bases de dades i mitjançant la seva funcionalitat. Els fitxers de la base de dades estan oberts per accedir fora de MySQL. Protegir externament MySQL i els recursos que controla és una necessitat real i important.

Recomanat: