Mysql maakt een gebruiker met rechten aan. Hoe u een gebruiker aan een MySQL-database kunt toevoegen met behulp van phpMyAdmin. Een gebruiker aanmaken via de console

Bij het verbinden met een MySQL-server geeft de gebruiker een gebruikersnaam en wachtwoord op, en de server controleert of de client geautoriseerd is om toegang te krijgen tot de server en, indien succesvol, de juiste rechten aan de gebruiker te verlenen. Gebruikersprivilegegegevens worden opgeslagen in systeem basis mysql.

Gebruikersverificatie wordt uitgevoerd met behulp van drie velden van de gebruikerstabel (host, gebruiker en wachtwoord) in de mysql-database. De server brengt alleen een verbinding tot stand als deze wordt gevonden gebruikerstabel Een vermelding waarbij de gebruikersnaam en het wachtwoord overeenkomen met de ingevoerde waarden.

Met de volgende opdrachten kunt u zien hoe wachtwoorden in de gebruikerstabel worden opgeslagen:

mysql>GEBRUIK mysql

mysql>SELECTEER wachtwoord VAN gebruiker;

U kunt alle tabellen in de mysql-database bekijken door de opdracht uit te voeren

mysql>tabellen weergeven;

Zodra de verbinding tot stand is gebracht, begint de server een sessie met de gebruiker. Bij elk binnenkomend verzoek controleert de server of de gebruiker voldoende rechten heeft om het verzoek te voltooien. Informatie over bevoegdheden bevindt zich in de tabellen: gebruiker, db, host, tabellen_priv of kolommen_priv.

De lijst met privileges wordt hieronder weergegeven:

De MySQL-server leest de inhoud van deze tabellen tijdens het opstarten en telkens wanneer wijzigingen in privileges van kracht worden.

Met de bevoegdheden SELECT, INSERT, UPDATE en DELETE kunt u bewerkingen uitvoeren op rijen in databasetabellen. Het indexprivilege maakt het maken of vernietigen van indexen mogelijk. Met het alter-recht kunt u de opdracht gebruiken tafel veranderen. Met de bevoegdheden voor maken en verwijderen kunt u nieuwe databases en tabellen maken of bestaande vernietigen. VERLEEN voorrecht gram Hiermee kunt u andere gebruikers de rechten verlenen die u heeft.

De overige rechten worden gebruikt voor SQL-beheer-servers... opdracht afsluiten sluit de server af.

Bij het opstarten MySQL-server alle informatie over gebruikersrechten wordt in het geheugen geladen en vanaf dat moment worden de rechten van kracht.

De opdrachten Grant en Revoke staan ​​dit toe systeembeheerders creëer MySQL-gebruikers en verleen of weiger rechten aan gebruikers op vier niveaus.

· Mondiaal niveau.

Globale privileges zijn van toepassing op alle databases op opgegeven server. Deze rechten worden opgeslagen in mysql-tabel.gebruiker.

· Databaseniveau.

Databaserechten zijn van toepassing op alle tabellen in de opgegeven database. Deze bevoegdheden worden opgeslagen in de tabellen mysql.db en mysql.host.

· Tafelniveau.

Tabelrechten zijn van toepassing op alle kolommen van de opgegeven tabel.

Deze rechten worden opgeslagen in een mysql-tabel. tabellen_priv.

· Kolomniveau.

Kolomrechten zijn van toepassing op individuele kolommen in de opgegeven tabel. Deze bevoegdheden worden opgeslagen in de mysql-tabel .columns_priv.

Met de opdracht Grant kunt u nieuwe servergebruikers toevoegen:

mysql> GRANT SELECT, INSERT ON taxi.* NAAR Mike@localhost

GEÏDENTIFICEERD DOOR "geheim";

Deze opdracht geeft invoeg- en selectierechten voor de taxidatabase (voor alle tabellen - dit wordt aangegeven met een asterisk) aan de gebruiker Mike, die lokaal verbinding maakt (localhost), en bij verbinding met de server moet de gebruiker het wachtwoord "geheim" opgeven ". Het wachtwoord wordt gecodeerd op de server opgeslagen.

mysql> VERLEEN ALLE PRIVILEGES OP *.* AAN Ann@"%"

-> GEIDENTIFICEERD DOOR "some_pass" MET SUBSIDIEOPTIE;

Hier krijgt Anna alle rechten (alle privileges) op alle tabellen van alle serverdatabases (* . *), en kan ze zowel lokaal als op afstand verbinding maken via het netwerk (dit wordt aangegeven door het %-symbool achter Anna@). Bovendien kan Anna haar rechten overdragen aan andere gebruikers (met toekenningsoptie), d.w.z. zij kan zelf het toekenningscommando geven en nieuwe gebruikers van het systeem aanmaken.

mysql> VERLEEN GEBRUIK OP *.* AAN dummy@localhost

GEÏDENTIFICEERD DOOR `wachtwoord';

De dummygebruiker die in dit voorbeeld is gemaakt, kan verbinding maken met de server, maar alleen met lokale computer. Het USAGE-privilege betekent dat de gebruiker niet alle andere privileges heeft. Dit kan nodig zijn wanneer iemand wordt aangenomen, maar zijn verantwoordelijkheden zijn nog niet gedefinieerd. Er wordt verwacht dat databasegerelateerde privileges later zullen worden toegewezen. Het is niet mogelijk om een ​​gebruiker aan te maken met een leeg wachtwoord. Het systeem staat dit om veiligheidsredenen niet toe.

Met het REVOKE-commando kan een beheerder gebruikersrechten intrekken:

REVOKE SELECT (use_on) OP taxi.timetable VAN Mike @ localhost;

Gebruiker Mike kan de waarden van het use_on-veld in het rooster niet bekijken.

Met het set-commando kunnen verschillende opties worden ingesteld die de werking van de server of client beïnvloeden. Het wachtwoord voor de rootgebruiker kan ook met dit commando worden ingesteld:

mysql> WACHTWOORD INSTELLEN VOOR root@localhost=WACHTWOORD("nieuw_wachtwoord" );

Gebruikers kunnen ook rechtstreeks werken met privilegetoewijzingstabellen:

mysql> GEBRUIK mysql;

Mysql> UPDATE gebruiker SET Wachtwoord=WACHTWOORD("nieuw_wachtwoord")

-> WAAR gebruiker = "root";

Hierna moet u een commando geven dat de server dwingt de privilegetabellen opnieuw te lezen - dan zullen ze van kracht worden:

mysql> FLUSH-RECHTEN;

Als het wachtwoord is opgegeven met behulp van de toekenningsverklaring. . .geïdentificeerd door, het is niet nodig om de functie wachtwoord() te gebruiken. Deze opdracht voert zijn eigen versleuteling van het wachtwoord uit, dus het wachtwoord moet in een eenvoudige vorm worden opgegeven tekstvorm bijvoorbeeld op deze manier:

mysql> VERLEEN GEBRUIK OP *.* AAN jeffrey@"%" GEÏDENTIFICEERD DOOR "biscuit";

Wijzigingen die in de privilegetoewijzingstabellen zijn aangebracht met behulp van de opdrachten Grant, Revoke of Set Password, worden door de server in aanmerking genomen zodra deze instructies worden uitgevoerd.

Van de auteur: Ik raad u aan voorzichtiger te zijn met privileges. Een van mijn vrienden, die beheerdersrechten heeft in zijn appartement, gaf zijn vrouw het ‘voorrecht’ om de toegang tot de koelkast te beperken. Als gevolg hiervan ben ik nu twee maanden op dieet en eet ik alleen maar groenten. Denk daarom goed na voordat u een gebruiker aan MySQL toevoegt!

Degenen die we vertrouwen!

Maar er zijn nog steeds mensen op de wereld die je kunt vertrouwen. En dit is natuurlijk geen echtgenote of schoonmoeder. Laten we vandaag leren hoe we accounts in MySQL kunnen toevoegen en ze bepaalde rechten kunnen geven.

Dit kan zowel via de opdrachtregel als via shell-programma's worden gedaan. Laten we eerst eens kijken gemakkelijke optie. Laten we phpMyAdmin gebruiken om een ​​nieuwe gebruiker toe te voegen. Maar laten we eerst een kleine excursie maken naar het accountsysteem dat in het DBMS is geïmplementeerd.

De gebruiker met het root-account staat bovenaan de hiërarchie. In eerste instantie wordt dit account meegeleverd lege waarde wachtwoord. Een beheerder (root) kan een gebruiker aan MySQL toevoegen, hem bepaalde rechten geven, maar ook rechten intrekken.

Het privilegesysteem wordt niet alleen op de DBMS-server geïmplementeerd, maar ook op databaseniveau. U kunt een gebruiker toegang geven tot een specifieke database, en hem ook alleen bepaalde bewerkingen laten uitvoeren met de “opslag”. Verbied bijvoorbeeld het invoegen, verwijderen en bijwerken van gegevens, maar sta het maken van selecties uit tabellen toe. Maar dit alles is in de praktijk gemakkelijker te leren, dus laten we aan de slag gaan.

Accounts toevoegen via phpMyAdmin

Open de applicatie, ga bovenaan naar het tabblad “Gebruikers”. Hierdoor wordt de tabel Rekeningoverzicht weergegeven. Het vermeldt alle accounts die op de serverinstantie bestaan, evenals korte informatie over hun privileges.

Om een ​​nieuw account toe te voegen, klikt u op de link ‘Gebruiker toevoegen’, die zich onder de tabel bevindt. Hierna zal het applicatiesysteem een ​​speciaal dialoogvenster “Gebruiker toevoegen” weergeven.

Helemaal bovenaan (“Accountinformatie”) moet u een nieuwe gebruikersnaam instellen, een wachtwoord instellen en bevestigen. Je kunt ook krijgen willekeurige waarde wachtwoord, dat automatisch in de velden wordt ingevoerd. Om dit te doen, klikt u op de knop "Genereren".

Als u iets naar beneden scrollt, kunt u de globale privileges bewerken die u kunt toewijzen gebruiker die wordt aangemaakt. De afbeelding laat zien dat alle rechten zijn onderverdeeld in verschillende categorieën: “Gegevens”, “Structuur” en “Beheer”. Voordat u een gebruiker aan MySQL toevoegt, leest u deze en vinkt u de benodigde vakjes aan.

Om een ​​account aan te maken, klikt u op de knop “Gebruiker toevoegen” onderaan het dialoogvenster. Laten we nu eens kijken naar het resultaat van onze acties. Ga terug naar de tabel Rekeningoverzicht en bekijk de inhoud ervan. Zoals u kunt zien, is er een nieuw account aangemaakt op de server met de naam die we hebben opgegeven.

Een nieuwe databasegebruiker toevoegen

Via phpMyAdmin kunt u rollen niet alleen globaal beheren, maar ook op het niveau van individuele databases. Om een ​​gebruiker aan de database in MySQL toe te voegen, selecteert u degene die u nodig heeft in de lijst aan de linkerkant. Ga vervolgens door het menu-item “Privileges”, waar de tabel alle gebruikers toont die toegang hebben tot deze database. Om een ​​nieuw database-account aan te maken, klikt u op de link ‘Gebruiker toevoegen’, die zich iets lager (onder de tabel) bevindt.

Hierna verschijnt het bekende dialoogvenster “Gebruiker toevoegen”. We vullen alle velden in, zoals in het vorige voorbeeld. Laten we leha2 mondiale privileges geven aan de wereldbasis – laat hem doen wat hij wil met deze wereld. En klik onderaan op “Gebruiker toevoegen”.

Het beheren van de mogelijkheden van aangemaakte gebruikers

Laten we eens kijken wat de nieuwste “Lech” die we hebben gemaakt, kan doen. Laten we naar de opdrachtregel gaan. We loggen in op de server en voeren een selectie uit uit de database waarvoor de gebruiker is toegevoegd aan MySQL: Z:\usr\local\mysql-5.5\bin\mysql.exe -u leha2 -p123

Laten we nu proberen dit account (leha2) te gebruiken om in een andere database te komen en er ook een selectie uit te maken. Uit deze database bijvoorbeeld:

SELECTEER * UIT `db1`.`dier`;

SELECTEER * UIT `db1`. `dier`;

Maar het antwoord dat we krijgen van MySQL is “willekeurig”, aangezien het gebruikte account alleen rechten heeft op de werelddatabase.

Maar dat zijn niet alle functies voor privilegebeheer. U kunt een gebruiker met alleen-lezen-rechten toevoegen aan MySQL. Om dit te doen, bewerkt u de rechtentabel van een bestaand account of maakt u een nieuw account aan.

Ga opnieuw naar het tabblad “Rechten”. Klik in de gebruikerstabel, naast het vereiste account, op 'Rechten bewerken'. Schakel vervolgens in het dialoogvenster dat verschijnt alle rechten uit, behalve selecteren. De gebruiker kan de tabellen dus alleen bekijken of er selecties uit maken met behulp van het SQL SELECT-commando.

Een gebruiker aanmaken via de console

Laten we leren hoe u een gebruiker via de console aan MySQL kunt toevoegen. Om dit te doen, moeten we inloggen op de databaseserver met beheerdersrechten. Gebruik vervolgens het CREATE-commando om een ​​nieuwe gebruiker aan te maken en hem een ​​wachtwoord te geven:

MAAK GEBRUIKER "verter"@"localhost" GEIDENTIFICEERD DOOR "12345";

MAAK GEBRUIKER "verter" @ "localhost" GEIDENTIFICEERD DOOR "12345";

Laten we nu teruggaan naar de softwareshell en kijken of de “robot” die we hebben gemaakt, is verschenen in de tabel “Accountoverzicht”.

Zoals u kunt zien, is Verter gebruiker geworden van onze MySQL-server. Maar hij heeft helemaal geen rechten (zoals elke robot). Dit is onethisch in relatie tot onze ‘ijzeren’ broeders, dus we zullen hem alle privileges geven voor een van de bases. Wereld bijvoorbeeld.

Eindelijk kwam ik bij databases terecht, vandaag gaan we verder met de MySQL-server. Zoals je misschien al geraden hebt, zullen we het hebben over MySQL-gebruikers en het aanmaken van accounts MySQL-gebruiker server. Ik wil u eraan herinneren dat de allereerste gebruiker automatisch wordt aangemaakt MySQL-installaties server. U voert uw accountwachtwoord in MySQL-records gebruiker met de naam root. Maar soms zijn er situaties waarin de rootgebruiker te veel rechten heeft, bijvoorbeeld: sommige gebruikers zouden alleen rechten moeten hebben om gegevens te bekijken, maar niet om te bewerken.

Rechten MySQL-gebruikers kunnen heel verschillende hebben, en we zullen het hebben over toegangsrechten tot MySQL-databases in een aparte publicatie. Onze taak is om erachter te komen hoe we verbinding kunnen maken met een server die een specifiek heeft TCP-poort. In feite is het aanmaken van een nieuwe MySQL-gebruiker niet zo moeilijk, maar er zijn enkele subtiliteiten waar u rekening mee moet houden, zodat u geen problemen ondervindt bij het beheren van MySQL-databases.

Toegang krijgen tot de MySQL-server

Toen u uw eerste MySQL-gebruiker aanmaakte, heette hij root, en u heeft zelf een wachtwoord voor dit account bedacht. De rootgebruiker is de belangrijkste gebruiker van de MySQL-server, hoofdbeheerder met onbeperkte toegangsrechten, deze gebruiker kan nieuwe accounts aanmaken om toegang te krijgen tot MySQL-databases, met andere woorden: de hoofdbeheerder kan een MySQL-gebruiker aanmaken met minder rechten dan hijzelf.

Voor hoe u een MySQL-gebruiker aanmaakt, vergeet het niet. Om toegang te krijgen tot de MySQL-server moet u een verbinding tot stand brengen, hiervoor moet u een login en wachtwoord invoeren. Als de databaseserver zich op afstand bevindt, moet u ook de naam invoeren van de host waarop deze is geïnstalleerd; als u de hostnaam niet opgeeft, wordt er verbinding mee gemaakt lokale server.

U kunt een verbinding met de lokale server tot stand brengen met behulp van de volgende opdracht op de opdrachtregel besturingssysteem:

mysql –h localhost –p –u root

mysql –h localhost –p –u root

Bevestig de opdracht door op te drukken Voer sleutels in, waarna MySQL u vraagt ​​om het wachtwoord voor deze gebruiker in te voeren. Voer dit in en druk op Enter. Let op: als u op een operatiekamer werkt Windows-systeem 7, dan moet de opdrachtregel als beheerder worden uitgevoerd. Soms wordt de MySQL-server mogelijk niet gevonden; we zullen in een ander artikel praten over het oplossen van dit probleem.

Laten we dit team aanpakken. Deze opdracht wordt uitgevoerd MySQL-console server, een shell waarmee je met databases kunt werken, de bewerkingen die met gegevens kunnen worden uitgevoerd, kunnen heel verschillend zijn, het hangt allemaal af van de toegangsrechten van de MySQL-gebruiker, in in dit geval u kunt alle bewerkingen uitvoeren met alle databases, aangezien u bent ingelogd als de MySQL-rootgebruiker. Opmerking voor beginnende gebruikers van UNIX-achtige besturingssystemen: root MySQL-gebruiker de server en de rootgebruiker van het besturingssysteem zijn twee verschillende gebruikers. De gebruikersnaam van de MySQL-server wordt geschreven na de “-u” -constructie.

Het gebruikerswachtwoord van de MySQL-server wordt geschreven na de “-p” -constructie. U hoeft het niet meteen in te voeren, maar moet het invoeren nadat u op Enter hebt gedrukt. Na de “-h” constructie wordt de naam geschreven van de host waarop de MySQL-server zich bevindt; in dit geval geven we expliciet aan dat de verbinding tot stand moet worden gebracht met een lokale databaseserver; dit mag wel of niet gebeuren.

Nadat het is voltooid deze opdracht, moet u uw MySQL-gebruikerswachtwoord invoeren. Als de MySQL-gebruiker geen wachtwoord heeft, drukt u na het uitvoeren van de opdracht op de Return-toets. Ik hoop dat we erachter zijn gekomen hoe we toegang kunnen krijgen tot de MySQL-server en dat hier geen vragen zullen rijzen.

Informatie over bestaande MySQL-serverdatabases bekijken

Let op: het gebruikscommando is dat niet SQL-query, zodat u geen puntkomma aan het einde van dit commando hoeft te plaatsen, maar u kunt het ook invoeren, het resultaat zal hetzelfde zijn: u gaat aan de slag met gespecificeerde basis MySQL-servergegevens. Databasenaam is de naam van de database waarmee de MySQL-gebruiker zal werken. Het kan een willekeurige lijst zijn die is verkregen door de opdracht show databases. Ik denk dat dit alles is wat je moet weten om het verder te begrijpen hoe u een MySQL-gebruiker aanmaakt.

Hoe maak je een MySQL-gebruiker aan? GRANT-team.

Laten we dus verder gaan met de vraag: hoe maak je een MySQL-gebruiker aan. Nieuw rekening MySQL-gebruiker wordt aangemaakt met de opdracht GRANT. Met behulp van de GRANT-opdracht, niet alleen MySQL-gebruikers server, maar wijst ook toegangsrechten en privileges toe aan MySQL-gebruikers. Alle MySQL-gebruikers zijn onderverdeeld in twee categorieën, de ene is klein, de andere is groot:

  1. Root MySQL-gebruiker. In staat om alles te doen, dit is de hoofdbeheerder van de MySQL-server, vaak zijn rootrechten niet nodig, met deze rechten kun je jezelf schade toebrengen.
  2. MySQL-gebruikers aangemaakt door root. Deze MySQL-servergebruikers hebben verschillende rechten, rechten worden toegewezen door de rootgebruiker met behulp van de SQL GRANT-query.

Laten we dus eens kijken hoe we een MySQL-gebruiker kunnen aanmaken, voor het geval je het nog niet vergeten bent: MySQL-gebruikers worden aangemaakt met een GRANT-query:

GRANT priv_type [(kolomlijst)] [, priv_type [(kolomlijst)] ...] AAN (tbl_naam | * | *.* | db_naam.*) TO gebruikersnaam [, gebruikersnaam ...]

GRANT priv_type [ (kolomlijst ) ] [ , priv_type [ (kolomlijst ) ] . . . ]

AAN (tbl_naam | * | * . * | db_naam . * )

NAAR gebruikersnaam [ GEIDENTIFICEERD DOOR "wachtwoord" ]

[, gebruikersnaam [ GEIDENTIFICEERD DOOR "wachtwoord" ] . . . ]

[MET SUBSIDIEOPTIE]

Het voorbeeld toont de algemene syntaxis van de GRANT-opdracht. Het is vrij eenvoudig, maar u kunt MySQL-gebruikers met verschillende rechten aanmaken. Laten we eens kijken wat MySQL-gebruikers kan met deze opdracht worden gemaakt aan de hand van een specifiek voorbeeld.

We zullen een nieuwe MySQL-gebruiker aanmaken. Op mijn server staat er een genaamd mydb, je kunt je eigen database maken met de naam die je nodig hebt. Het is vermeldenswaard dat zelfs als er al een MySQL-gebruiker bestaat, hij nog steeds bepaalde rechten moet krijgen met het GRANT-commando. Laten we dus een nieuwe gebruiker aanmaken die alle acties kan uitvoeren met de mydb-database van de MySQL-server. Ik zal enkele invoergegevens verstrekken. MySQL-gebruikersnaam: "newusermysql", MySQL-gebruikerswachtwoord: "userpassword". Host waarop de server is geïnstalleerd: localhost. Acties die een nieuwe gebruiker kan uitvoeren: eventuele acties met de mydb-database. GRANT-verzoek om een ​​MySQL-gebruiker met de opgegeven rechten aan te maken:

NAAR "newusermysql" @ "localhost" GEIDENTIFICEERD DOOR "userpassword";

De puntkomma aan het einde van de opdracht is vereist omdat GRANT een SQL-query is. Laten we de opdracht voor het aanmaken van een MySQL-gebruiker in delen bekijken. GEIDENTIFICEERD DOOR "userpassword": Stel het wachtwoord voor de MySQL-gebruiker in als "userpassword". "newusermysql"@"localhost": specificeer de host waarmee de gebruiker met de naam "newusermysql" zal worden verbonden. De GRANT-instructie kan alleen worden gebruikt door de MySQL-rootgebruiker. De ALL ON-instructie verleent alle machtigingen aan de newusermysql-gebruiker in de mydb-database.

Let op: het wordt beheerd door een MySQL-server, dus WordPress-gebruikers kunnen handmatig worden aangemaakt door de juiste velden in te vullen en ze rechten te geven. Aan de andere kant: WordPress is een CMS dat het leven van een webmaster eenvoudiger maakt en biedt GUI om gebruikers aan te maken.

Ik meen dat ik de kwestie uitvoerig heb behandeld hoe u een MySQL-gebruiker aanmaakt, nu kunt u nieuwe gebruikers aanmaken, we zullen het hebben over de rechten van MySQL-gebruikers in een van de volgende publicaties. Als u nog vragen heeft over dit onderwerp, stel ze dan in de reacties als u denkt dat het artikel u heeft geholpen en u wilt om de hulpbron te helpen – gebruik het blok sociale knoppen op deze pagina zal ik je heel dankbaar zijn! Bedankt voor uw aandacht!

Als u geïnteresseerd bent in webontwikkeling of software ontwikkeling Over het algemeen heb je waarschijnlijk wel eens gehoord van databases. Databases zijn dat virtuele opslagplaatsen voor de gegevens die nodig zijn om webapplicaties te maken. Ze worden gebruikt om gebruikersinformatie op te slaan, zoals gebruikersnaam, wachtwoord, e-mailadres en andere. Over het algemeen kan elk type informatie dat u in de toekomst nodig heeft, in de database worden opgeslagen.

Uiteraard moeten de gegevens die u opslaat geordend zijn. Dit is waar databasebeheersystemen een rol gaan spelen. Deze systemen worden gebruikt om met een database te werken en stellen ontwikkelaars in staat gegevens te structureren, op te slaan, op te vragen en aan te passen.

MySQL is zo'n databasebeheersysteem. Dit is een van de meest bekende systemen, dankzij het gebruiksgemak en de ondersteuning van de gemeenschap. Trouwens, de prevalentie ervan heeft zelfs zulke mensen aangetrokken grote bedrijven zoals Facebook en Twitter, die er tot op zekere hoogte gebruik van maken.

In deze gids zullen we het beoordelen MySQL-basisprincipes en leer hoe u een MySQL-gebruiker maakt. We zullen ook leren hoe u toegangsrechten kunt verlenen aan MySQL-gebruikers. In deze zelfstudie doen we dit allemaal vanaf de opdrachtregel.

Voordat u begint, heeft u het volgende nodig:

  • Geïnstalleerd op uw MySQL-computer. Gebruikershandleiding voor installatie op .

Stap 1 – Maak een MySQL-gebruiker aan en verleen onbeperkte toegangsrechten

Zodra u MySQL gaat gebruiken, krijgt u een gebruikersnaam en wachtwoord. Deze initiële inloggegevens geven u 'root access'-rechten. Gebruiker met rechten root-toegang hebben volledige toegang naar alle databases en tabellen binnen deze databases.

Maar vaak moet u iemand anders zonder toestemming toegang tot een database verlenen volledige controle. Bedrijven die bijvoorbeeld ontwikkelaars inhuren om databases te onderhouden, maar hen niet de mogelijkheid willen geven deze te verwijderen of te wijzigen vertrouwelijke informatie, zal hen hoogstwaarschijnlijk toegangsrechten voor niet-rootgebruikers verlenen. In dit geval kan het bedrijf bepalen wat zijn ontwikkelaars wel en niet met de gegevens kunnen doen.

Het aanmaken van een MySQL-gebruiker is heel eenvoudig. We laten u zien hoe u een MySQL-gebruiker kunt aanmaken en hoe u hieraan databasetoegangsrechten kunt toewijzen. Als de gebruiker geen root is, is het niet praktisch om hem alle rechten te geven en dit is een goede reden om te onderzoeken hoe je toegangsrechten aan gebruikers kunt toewijzen. Om een ​​nieuwe gebruiker aan te maken, volgt u deze stappen:

  1. Start de opdrachtregel en van daaruit de MySQL-server: mysql
  2. Voer de volgende opdracht uit: CREATE USER "non-root"@"localhost" GEIDENTIFICEERD DOOR "123";

    In dit commando is 'non-root' de naam die we aan onze nieuwe gebruiker toekennen. En '123' is zijn wachtwoord. U kunt vervangen door uw waarden tussen de aanhalingstekens.

  3. Het simpelweg aanmaken van een nieuwe gebruiker is niet voldoende. U moet er toegangsrechten aan toewijzen. Om een ​​nieuw aangemaakte gebruiker onbeperkte toegangsrechten tot de database te verlenen, voert u de volgende opdracht uit: GRANT ALL PRIVILEGES ON * . * NAAR "niet-root"@"localhost";
  4. Om de wijzigingen door te voeren, voert u de updateopdracht uit: FLUSH PRIVILEGES;

Dit is alles! Uw nieuwe gebruiker heeft dezelfde databaserechten als root-gebruiker.

Stap 2 – Wijs speciale machtigingen toe aan de MySQL-gebruiker

Zoals hierboven aangegeven is het niet erg verstandig om een ​​niveau aan te geven root-toegang niet-rootgebruiker. Vaker wel dan niet, zult u moeten voorzien verschillende niveaus toegang voor verschillende gebruikers. MySQL maakt dit gemakkelijk en snel door de volgende opdracht uit te voeren:

GRANT [toestemmingstype] AAN [databasenaam].[tabelnaam] AAN ‘non-root’@"localhost’;

U hoeft alleen maar de waarde 'permission type' te vervangen door het type toegangsrechten dat u aan de nieuwe gebruiker wilt verlenen. U moet ook de database- en tabelnamen opgeven waartoe toegang moet worden verkregen. Net als in het vorige voorbeeld is 'non-root' de gebruikersnaam, dat wil zeggen dat u deze kunt vervangen door de gebruikersnaam die u nodig heeft. MySQL heeft verschillende soorten machtigingen, waarvan sommige hieronder worden beschreven:

  • CREËREN– Hiermee kunnen gebruikers databases/tabellen maken
  • SELECTEER– Hiermee kunnen gebruikers gegevens samplen
  • INVOEGEN– Hiermee kunnen gebruikers nieuwe records aan tabellen toevoegen
  • UPDATE– Geeft gebruikers de mogelijkheid om te veranderen bestaande records in tabellen
  • VERWIJDEREN– Hiermee kunnen gebruikers records uit tabellen verwijderen
  • DRUPPEL– Hiermee kunnen gebruikers records in databases/tabellen verwijderen

Om een ​​van deze opties te gebruiken, hoeft u alleen maar te vervangen [toestemmingstype] noodzakelijk woord. Als u meerdere typen machtigingen wilt toewijzen, scheidt u deze met komma's, zoals in de volgende opdracht. We kunnen bijvoorbeeld privileges toewijzen zoals CREËREN En SELECTEER voor onze niet-root MySQL-gebruiker met deze opdracht:

SUBSIDIE MAKEN, SELECTEER OP *. * NAAR "niet-root"@"localhost";

Uiteraard kan het voorkomen dat u een situatie tegenkomt waarin u eerder verleende toegangsrechten van een gebruiker moet intrekken. U kunt dit doen door de volgende opdracht uit te voeren:

REVOKE [toestemmingstype] AAN [databasenaam].[tabelnaam] FROM 'non-root'@'localhost';

Om bijvoorbeeld alle rechten van een niet-rootgebruiker in te trekken, moet u het volgende doen:

TREK ALLE PRIVILEGES IN OP *.* VAN "non-root"@"localhost";

Ten slotte kunt u een bestaande gebruiker verwijderen met behulp van de opdracht:

DROP GEBRUIKER 'niet-root'@'localhost';

Houd er rekening mee dat u root-toegang nodig hebt om deze opdrachten uit te voeren. Volg het zeker ook SPOEL PRIVILEGES na elke wijziging van de toegangsrechten.

Conclusie

In deze zelfstudie hebben we enkele basisprincipes geleerd over MySQL-machtigingen en hoe u een MySQL-gebruiker kunt maken. In het bijzonder:

  • Maak een nieuwe gebruiker aan en wijs alle toegangsrechten aan hem toe
  • Het toekennen van speciale toegangsrechten aan gebruikers, het intrekken en verwijderen van gebruikers

Het toekennen van rechten lijkt misschien moeilijk bij het ontwikkelen van een nieuwe webapplicatie, maar het is een zeer belangrijke stap voor het beheren en onderhouden van een database. Bijna alles moderne toepassingen zijn gebouwd op databases, dus het is erg belangrijk dat de ontwikkelaar weet hoe hij toegangsrechten tot databases in MySQL moet toewijzen/verwijderen.

Kenmerkend MySQL-functie - eigen veiligheid, afhankelijk van externe bescherming. Zo modern, volledig functioneel en efficiënt systeem databasebeheer heeft MySQL zijn eigen tools voor het beheren van gebruikers en hun toegang tot de bronnen die het beheert.

Als je het niet weet juiste naam en gebruikerswachtwoord, databasetoegang via MySQL heel moeilijk te krijgen.

IN normale modus Dit is voldoende voor het hosten van werk. Onvoorziene situaties, aanvallen van hackers en andere problemen zijn een kwestie van buitenaf systeembeheer en veiligheidsdiensten. Dit concept is traditioneel geworden en wordt praktisch niet besproken.

MySQL-serverinstallatie en rootgebruiker

Ongeacht in welke besturingsomgeving het databasebeheersysteem is geïnstalleerd, er is altijd minstens één gebruiker: root. Installeer MySQL, maak een gebruiker aan met alles wortelrechten- zonder dit is het onmogelijk om met de server te werken. Deze gebruiker heeft voldoende rechten om:

  • nieuwe gebruikers aanmaken en beheren;
  • databases maken en beheren.

Het is in principe mogelijk om "wachtwoordloze" gebruikers in MySQL te hebben, maar dit is onaanvaardbaar.

Algemene praktijk:

  • server geïnstalleerd eigen computer, waarop hosting geïnstalleerd kan worden (lokale optie);
  • De server bevindt zich op een openbare hosting op internet.

In het eerste geval is het mogelijk om vanaf de opdrachtregel met de server te werken en in het tweede geval alleen phpMyAdmin of een soortgelijke tool, maar soms beschikbaar opdrachtregel via externe SSH-toegang.

Native beheertools

Gevoel van familierelaties met de Unixoid-familie en met het verleden uit Apache-servers- een karakteristiek kenmerk van MySQL: een gebruiker aanmaken is een opdrachtregel met vreemde syntaxis. Voor specialisten die met Linux en soortgelijke systemen werken, is dit even bekend als wild in de ogen Windows-gebruikers, die nooit ‘in het echte leven uitkwam’.

Het aanmaken van gebruikers begint met het starten van de opdrachtregel van de server. IN Windows-omgeving dit gebeurt als volgt.

Eerst (1) moet u als beheerder de opdrachtregel uitvoeren, vervolgens naar de map gaan waar MySQL zich bevindt (2) en vervolgens de server zelf starten (3):

  • mysql -u... -p

hier zijn "-u..." en "-p" schakelaars die verwijzen naar de naam "..." = root (of een andere naam) en het bijbehorende wachtwoord. In principe mag de gebruiker geen root zijn, maar iemand die “root” (administratieve) rechten heeft.

In wezen: De server is eigenlijk altijd actief, hier is mysql -u... -p een commando om toegang te krijgen tot de server, niet om deze te starten.

IN Linux-omgeving en vergelijkbare systemen is een dergelijk commando een “native” actie en wordt in de regel eenvoudigweg bepaald door mysqld op de juiste plaats te starten (door het juiste pad), moet dit worden verduidelijkt met de beheerder. Hier staat meestal een andere naam: niet mysql, maar mysqld. Bovendien is deze actie niet altijd beschikbaar voor alle gebruikers (van het besturingssysteem, niet van de MySQL-server). In tegenstelling tot Windows zijn orde en veiligheid bij Linux een natuurlijke en onbesproken vereiste, waar altijd een beschaafde houding tegenover staat.

Zodra mysql is gestart, zal het dit in ieder geval aangeven met een prompt (4):

  • mysql>

en het zal mogelijk zijn om met zowel gebruikers als databases te werken.

Opmerking. Bij installatie in een Windows-omgeving kan alles: Apache, MySQL, in standaardpaden worden geïnstalleerd, maar het wordt aanbevolen om compactere en dichtbijgelegen locaties voor deze belangrijke tools te gebruiken:

  • 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\.

Deze logica zal niet alleen het beheer vereenvoudigen, maar ook de mogelijkheden van de ontwikkelaar vergroten om tussen productversies te schakelen en de functionaliteit ervan te beheren.

Werken aan de MySQL-opdrachtregel

Zodra de server heeft gereageerd en de opdrachtregel heeft opgegeven, kunnen gebruikers worden aangemaakt en rechten worden toegewezen.

IN in dit voorbeeld Met het commando create user werd de gebruiker Petrov aangemaakt met het wachtwoord 123DFG. Als er een fout wordt gemaakt bij het invoeren van een opdracht, biedt de server aan om deze te corrigeren, maar het is beter wanneer u op de opdrachtregel werkt maak nooit fouten!

Het volgende commando 'grant all privileges' geeft alle rechten op alles. U hoeft het flush-commando niet te geven, maar het "duwt" de commandobuffer eruit, dat wil zeggen, het herstelt de uitvoering ervan.

MySQL: maak een gebruiker aan en geef rechten op de database

Commando gebruikt in voorbeeld:

  • VERLEEN ALLE PRIVILEGES OP *.* AAN "Petrov"@"localhost";

in feite opent het voor de gebruiker Petrov toegang tot alle databases (eerste asterisk) tot alle tabellen (tweede asterisk).

Door algemene regel MySQL, een gebruiker aanmaken is:

  • VERLEEN [privilegetype] AAN [databasenaam].[tabelnaam] AAN "[gebruiker]"@"localhost";

De volgende rechten zijn toegestaan:

  • ALLE PRIVILEGES - alle rechten.
  • CREATE - het recht om nieuwe tabellen/databases te maken.
  • DROP - het recht om tabellen/databases te verwijderen.
  • VERWIJDEREN - het recht om informatie in tabellen te verwijderen.
  • INSERT - het recht om informatie in tabellen te schrijven.
  • SELECT - het recht om informatie uit tabellen te lezen.
  • UPDATE - het recht om informatie in tabellen bij te werken.
  • SUBSIDIEOPTIE - het recht om te werken met de rechten van andere gebruikers.

Vanuit praktisch oogpunt impliceert "create user" in MySQL drie machtigingen:

  • alle rechten op alle databases en alle gebruikers;
  • lezen en schrijven;
  • alleen lezen.

Andere mogelijkheden voor het verlenen van rechten zijn zelden nodig. In de omgeving van Linux-systemen zijn er veel meer redenen voor ‘juridische’ vrijheid (en noodzaak), maar daar liggen ook veel meer mogelijkheden dan in Windows.

De omgekeerde werking van MySQL "gebruiker aanmaken" is drop.

  • verwijder gebruiker "Petrov"@"localhost";

Na het uitvoeren van dit commando zal de gebruiker Petrov niet langer bestaan ​​en zullen zijn privileges verloren gaan. Gebruik de opdracht om rechten te wijzigen:

  • REVOKE [privilege] ON [DB].[Tabel] TO "[user]"@"localhost";

Een veel voorkomende actie in MySQL is het aanmaken of verwijderen van een gebruiker en dat is alles, maar het wijzigen van privileges is ook een geldige handeling (zelden nodig).

Met behulp van phpMyAdmin

Er zijn veel implementaties van deze prachtige tool. Afhankelijk van de gebruikte Apache-versies, PHP en MySQL duren vaak lang om te vinden de vereiste versie dit product, maar zodra phpMyAdmin succesvol is geïnstalleerd, heeft de gebruiker er veel handige mogelijkheden en een comfortabele interface.

Met behulp van phpMyAdmin kunt u MySQL opdracht geven een gebruiker voor elke host aan te maken en te beheren huidige gebruikers bijna operatief.

phpMyAdmin is niet de enige hulpmiddel met een comfortabele, intuïtieve en veelzijdige interface, maar het is de meest populaire tool voor het beheren van MySQL-servers.

Over de opdrachtregel en beveiliging

Natuurlijk, met behulp van de opdracht MySQL-reeksen- een onaantrekkelijke activiteit, maar u moet er rekening mee houden dat in sommige gevallen alleen de opdrachtregel van de server de database of gebruiker kan opslaan en de import of export van informatie kan garanderen.

Versies softwareproducten Ze ontwikkelen zich zo snel dat ontwikkelaars simpelweg geen tijd hebben om mogelijkheden te combineren, bijvoorbeeld PHP en MySQL, MySQL en phpMyAdmin. Als er iets onverwachts gebeurt, slaat de opdrachtregel de situatie altijd op.

Je mag ook nooit vergeten: MySQL-beheer heeft alleen betrekking op de toegang tot de databases en via de functionaliteit ervan. Databasebestanden zijn toegankelijk buiten MySQL. Externe bescherming van MySQL en de bronnen die het beheert, is een reële en belangrijke behoefte.