mysql create user how create new user mysql
Deze tutorial legt het MySQL Create User-commando uit met verschillende autorisatiemechanismen, wachtwoordbeheer, opties voor resourcelimieten, enz.:
De MySQL CREATE USER-opdracht wordt gebruikt om nieuwe gebruikers aan te maken en gedetailleerde toegang te verlenen tot databases / tabellen, enz.
Meerdere mensen gebruiken een MySQL-serverinstantie met verschillende toegangsniveaus. Bijvoorbeeld, sommige gebruikers hebben leestoegang tot een specifieke database, op dezelfde manier hebben sommige gebruikers lees- en schrijftoegang tot een bepaalde database, enz.
De opdracht CREATE USER wordt vaker gebruikt door MySQL-beheerders om gebruikers te maken voor de MySQL Server-instanties en om verschillende machtigingen te verlenen met behulp van de GRANT-query.
Wat je leert:
Mijn SQL CREATE USER-opdracht
De opdracht CREATE USER wordt gebruikt om nieuwe accounts aan te maken of toe te voegen aan MySQL-serverinstanties.
Deze opdracht is algemeen toegankelijk / wordt gebruikt door MySQL-beheerders om de toegang tot verschillende gebruikers van de MySQL Server-instantie te beheren.
Tijdens het aanmaken van een gebruiker met het CREATE USER commando, kunt u specificeren
- Authenticatie, die moet worden gebruikt bij het verbinden met MySQL.
- Beperking van middelen
- Eigenschappen voor wachtwoordbeheer: verlopen van wachtwoord, instellingen voor hergebruik van wachtwoorden.
- Accountvergrendeling: nieuw aangemaakte accounts worden vergrendeld of ontgrendeld.
De accounts worden gemaakt in de MySQL-systeemtabel met de naam ‘Mysql.user’
Notitie: Om het CREATE USER-commando te gebruiken, moet de gebruiker de rechten CREATE_USER hebben of toestemming invoegen voor MySQL systeemschema.
In de eenvoudigste vorm is de syntaxis voor de opdracht CREATE USER als volgt:
Let op het optionele INDIEN NIET BESTAAT Dit zorgt ervoor dat als de gebruiker al bestaat, het SQL-queryresultaat alleen een waarschuwing en geen foutmelding geeft. Hier, ‘Gebruikersnaam’ verwijst naar de daadwerkelijke gebruikersnaam waarmee de gebruiker verbinding zou maken en ‘Hostnaam’ verwijst naar de host waarmee de gebruiker verbinding zou maken.
Houd er rekening mee dat, als het veld ‘hostnaam’ leeg wordt gelaten, wordt aangenomen dat de waarde voor de host ‘%’ is, waardoor elke host verbinding kan maken met de opgegeven gebruikersnaam.
Maak een gebruiker met deze syntaxis:
Met de bovenstaande verklaring hebben we een gebruiker gemaakt met de gebruikersnaam ‘userx’ en wachtwoord als ‘wachtwoord’. De hostnaam is localhost aangezien we de gebruikers aanmaken op onze lokale MySQL-instantie.
Laten we eens proberen de tabel mysql.users te doorzoeken om de invoer te zien voor de gebruiker die we hebben gemaakt.
U ziet de uitvoer zoals hieronder:
De eerste 4 gebruikers worden vooraf aangemaakt tijdens de MySQL-installatie zelf, terwijl de laatste invoer de gebruiker is die we hebben gemaakt - d.w.z. ‘userx’.
Het is belangrijk op te merken dat we op dit moment zojuist een gebruiker hebben gemaakt zonder de gebruiker rechten te geven voor het maken / bijwerken / opvragen van een database enz.
Laten we proberen in te loggen met deze gebruiker met de MySQL-client.
U kunt de terminal gebruiken om verbinding te maken met de onderstaande opdracht:
Als u om een wachtwoord wordt gevraagd, voert u het wachtwoord in als ‘wachtwoord’.
Nu gaan we een nieuwe database maken met het trefwoord CREATE DATABASE.
Zoals u hierboven kunt zien, wordt er een foutbericht gegenereerd dat aangeeft dat de gebruiker ‘userx’ geen toegang heeft om DATABASE te maken. Laten we eens kijken naar andere opties die kunnen worden gebruikt met het CREATE USER-commando.
GEBRUIKER MAKEN met Auth Plugin
‘Auth plugin’ specificeert een authenticatie-optie en wordt opgeslagen in de plugin-kolom van de mysql.user-tabel. MySQL ondersteunt een handvol authenticatie-plug-ins.
Enkele ondersteunde plug-ins zijn als volgt:
- MySQL native wachtwoordhashing: Native wachtwoordhashing is niets anders dan SHA1 gebruiken om wachtwoordwaarden op te slaan in de tabel mysql.users. Dit mechanisme wordt beschouwd als minder veilig dan SHA1-wachtwoordhashing.
- SHA2 256 wachtwoordhashing: Dit is de standaard plug-in voor authenticatie die wordt gebruikt door MySQL. d.w.z. zelfs als er geen authenticatie-plug-in is opgegeven met het CREATE_USER-commando, wordt deze plug-in standaard toegepast.
- Externe authenticatie met LDAP: LDAP wordt over het algemeen gebruikt om MySQL-authenticatie te koppelen aan de active directory van de organisatie. Bijvoorbeeld, authenticatie met Google SSO, OAuth of Microsoft Outlook LDAP. Dit vereist ook de installatie van een LDAP-plug-in op MySQL-zijde. Voor meer details kunt u verwijzen hier.
>> Verwijs hier voor een volledige lijst met ondersteunde plug-ins.
Laten we proberen een gebruiker te maken met een standaard auth-plug-in en SHA2-auth-plug-in en de bijbehorende gehashte waarden in de tabel mysql.users. Eerst maken we een gebruiker met standaardverificatie (SHA2), en laten we zien wat er is opgeslagen in de mysql.user tafel.
Laten we eens kijken naar de authenticatie-plug-in voor deze gebruiker ‘user-default’ in de tabel mysql.users:
Hier in authentication_string kun je de SHA-256-waarde zien voor de wachtwoordreeks - ‘P @ ssw0rd’.
Laten we nu een gebruiker maken met een authenticatie-plug-in. ‘MySQL native wachtwoord’ en kijk wat de waarde is van de plug-in die wordt opgeslagen.
GEBRUIKER MAKEN met rol
MySQL biedt ook het toewijzen van vooraf gedefinieerde rollen aan nieuwe gebruikers. Deze rollen hebben al een geconfigureerde toegang tot sommige of alle databases (die ook kunnen worden aangepast), bijvoorbeeld, er zou een rol met de naam ‘ontwikkelaar’ kunnen worden gemaakt die alle rechten aan een database zou kunnen krijgen en later kunnen we dezelfde rol gebruiken om toe te wijzen aan nieuwe gebruikers.
Laten we dit eens bekijken met een voorbeeld:
- Maak een rol met de naam ontwikkelaar
- Maak een database met de naam ‘test’
- Wijs rechten toe om de database te testen voor de rol 'ontwikkelaar'
- Maak een gebruiker en wijs een ontwikkelaarsrol toe
- Valideer de gebruiker kan een tabel in de testdatabase maken
Laten we proberen in te loggen met de gebruiker met de naam ‘gebruiker-met-rol’ en we zullen proberen een nieuwe tabel in de testdatabase te maken.
verschil tussen c c ++ en java
GEBRUIKER MAKEN met SSL / TLS
Om een gebruiker met SSL / TLS-opties te maken, moeten zowel de client als de server SSL-certificaten hebben geïnstalleerd. SSL is standaard niet geconfigureerd voor MySQL.
Volg deze stappen om SSL te configureren voor MySQL-serverinstantie.
Om een gebruiker aan te maken met SSL ingeschakeld, kunt u de optie SSL VEREIST gebruiken tijdens het aanmaken van de gebruiker.
Evenzo zou het maken met X509 verwachten dat de client / gebruiker die verbinding maakt, een geldig X509-certificaat heeft.
>> Verwijs hier voor meer informatie over X509.
Gebruik de onderstaande query om een gebruiker met een X509-certificaat te maken:
GEBRUIKER MAKEN met opties voor wachtwoordbeheer
Wachtwoordopties worden gebruikt om een beleid voor het wachtwoord in te stellen tijdens het maken van een gebruiker met de opdracht CREATE USER.
# 1) Verloop het wachtwoord bij het inloggen. Het wachtwoord is verlopen na het eerste gebruik en vraagt gebruikers het wachtwoord te wijzigen.
#twee) Verloopt het wachtwoord na een vast interval. Wachtwoordverloop kan worden geconfigureerd met het geconfigureerde interval, bijvoorbeeld, 90 dagen.
# 3) Wachtwoord wordt vergrendeld na geconfigureerde nieuwe pogingen. Vaak is het wenselijk dat het gebruikersaccount wordt vergrendeld (voor een geconfigureerde periode) na ‘n’ onjuiste pogingen om opnieuw te proberen. In de onderstaande zoekopdracht wordt het gebruikersaccount gedurende 2 dagen vergrendeld na 5 onjuiste pogingen.
# 4) Nieuw wachtwoord mag niet hetzelfde zijn als eerder geconfigureerde wachtwoorden.
In de onderstaande zoekopdracht mag het nieuwe wachtwoord dat door de gebruikers is ingesteld, niet hetzelfde zijn als de vorige 2 wachtwoorden.
GEBRUIKER MAKEN met opties voor resourcebeperking
Resource-limieten zijn vereist, vooral voor MySQL-productie-instances, om te voorkomen dat de database wordt overweldigd door vragen / verzoeken van een enkele gebruiker, wat de prestaties van de MySQL-server kan beïnvloeden.
We kunnen de resource-limieten instellen door een van de volgende drie opties te gebruiken:
# 1) MAX_QUERIES_PER_HOUR - Aantal toegestane ophaalquery's voor een bepaalde gebruiker per uur.
Stel dat als de gebruiker probeert meer dan 5 zoekopdrachten per uur te overschrijden, de MySQL-server een foutmelding geeft zoals hieronder:
# 2) MAX_UPDATES_PER_HOUR - Aantal toegestane updateverzoeken voor een bepaalde gebruiker per uur.
# 3) MAX_CONNECTIONS_PER_HOUR - Het aantal keren dat een account per uur verbinding kan maken met de server.
# 4) MAX_USER_CONNECTIONS - Het aantal gelijktijdige verbindingen met de MySQL-serverinstantie van de opgegeven gebruiker.
Houd er rekening mee dat alle bovenstaande opties ook kunnen worden gecombineerd tijdens het aanmaken van een gebruiker. Stel dat als we MAX_QUERIES willen specificeren als 10 en MAX_UPDATES als 100, dan kunnen we een enkele CREATE_USER-query hebben als:
MySQL Update en verwijder gebruikers
MySQL biedt 2 belangrijke commando's - ALTER USER en DROP USER om respectievelijk bestaande gebruikers te wijzigen en te verwijderen. Laten we beide aan de hand van voorbeelden begrijpen.
ALTER GEBRUIKER
MySQL ALTER USER wordt gebruikt om bestaande MySQL-gebruikersaccounts bij te werken / aan te passen. Het kan worden gebruikt om,
- Update resource limieten
- Stel wachtwoordopties in
- Vergrendel en ontgrendel accounts, enz.
Laten we een voorbeeld bekijken van het gebruik van ALTER USER om een vergrendeld account te ontgrendelen.
Maak een gebruiker in een vergrendelde staat en ontgrendel deze vervolgens met de ALTER USER-opdracht.
Als we nu inloggen met deze gebruiker, krijgen we een bericht dat de account is vergrendeld (aangezien de gebruiker is aangemaakt in een vergrendelde accountstatus).
Gebruik de onderstaande query om de gebruiker te ontgrendelen met het ALTER-commando.
Log in met de gebruiker met MySQL-client:
DROP GEBRUIKER
Het MySQL DROP USER-commando verwijdert een of meer bestaande gebruikers en al hun bijbehorende privileges en toekenningen.
Houd er rekening mee dat het geen gegevens verwijdert / verwijdert die zijn ingevoegd / tabellen die zijn gemaakt of bijgewerkt door de gebruiker en die worden verwijderd.
Als iemand probeert een niet-bestaande gebruiker te verwijderen, zou de DROP USER-opdracht een fout veroorzaken.
Laten we een gebruiker maken en deze verwijderen met de opdracht DROP:
Veel Gestelde Vragen
V # 1) Wat is een gebruiker in MySQL?
Antwoord: Gebruiker in MySQL is een account / entiteit die kan inloggen op de MySQL-serverinstantie en verschillende bewerkingen kan uitvoeren. Een gebruiker kan op rollen gebaseerde toegang of granulaire toegang tot een of meer databases en / of tabellen worden toegewezen.
V # 2) Hoe kan ik verschillende gebruikers controleren die zijn verbonden met MySQL?
Antwoord: Om de actieve gebruikerssessies op een MySQL-serverinstantie te zien, kunt u de opdracht processlist uitvoeren zoals hieronder.
De uitvoer van deze opdracht zou verschillende kenmerken weergeven van de sessies van de actieve gebruiker die waren verbonden op het moment dat de opdracht werd uitgevoerd.
Voorbeelduitvoer hieronder:
V # 3) Hoe verander ik van gebruiker in MySQL?
Antwoord: MySQL werkt volgens het concept van gebruikerssessies. Wanneer u bent aangemeld met een bepaalde gebruiker, kunt u plannen om de sessie te beëindigen of een sessie tegen een nieuwe gebruiker te openen in een nieuw venster of als een nieuwe verbinding in MySQL GUI-clients zoals een werkbank.
Om in te loggen met een bepaalde gebruiker vanuit de mysql-client, kunt u de onderstaande syntaxis gebruiken:
Nadat u de bovenstaande opdracht heeft geschreven, wordt u, zodra u op Enter drukt, gevraagd het wachtwoord in te voeren voor de gebruiker die is opgegeven in het veld {gebruikersnaam}. Zodra het wachtwoord is gevalideerd, wordt u naar de MySQL-shell / opdrachtprompt geleid.
Om in te loggen met een aparte gebruiker, u kunt de huidige sessie beëindigen door de opdracht exit in te voeren en opnieuw in te loggen met een andere gebruiker.
Het is ook mogelijk om voor verschillende gebruikers meerdere verbindingen met de MySQL-serverinstanties te hebben. U kunt eenvoudig een nieuw tabblad / venster openen voor de opdrachtprompt en dezelfde opdracht gebruiken om in te loggen met een andere gebruiker.
V # 4) Hoe maak je een MySQL-gebruiker alleen-lezen?
Antwoord: MySQL biedt een uitgebreid mechanisme om granulaire toegang tot databases of tabellen te verlenen. U kunt verschillende soorten toegang verlenen, zoals SELECT, UPDATE, INSERT, enz. Tot een of meerdere databases of tabellen.
Om alleen-lezen toegang aan een gebruiker te verlenen, kunt u SELECT toegang verlenen tot een database (door * te gebruiken voor alle tabellen of expliciet de tabelnaam te vermelden volgens de vereisten)
Laten we dit begrijpen met behulp van een voorbeeld hieronder:
We maken een gebruiker met de naam ‘readaccess’ met een wachtwoord als ‘Wachtwoord’
Verleen nu leestoegang tot alle tabellen van een database met de naam ‘test’ door het trefwoord GRANT in MySQL te gebruiken
Om de toegang te valideren, kunt u inloggen met deze gebruiker genaamd ‘readaccess’ en proberen de tabellen in de ‘test’ van de database te doorzoeken.
Als u echter probeert gegevens in een van de tabellen in de testdatabase in te voegen, krijgt u een foutmelding voor toegang geweigerd, aangezien we deze gebruiker zojuist expliciet leestoegang hebben verleend.
V # 5) Hoe zie ik gebruikers in MySQL?
Antwoord: MySQL heeft een tabel op systeemniveau met de naam ‘mysql.user’ die een lijst bevat van alle gebruikers die zijn gemaakt voor de MySQL-serverinstantie. De privileges voor deze tabel zijn over het algemeen beperkt tot root- of admin-gebruikers of iemand die de authenticatie en autorisatie voor de MySQL-serverinstantie beheert.
V # 6) Hoe vind ik de MySQL-gebruikersnaam en het wachtwoord?
Antwoord: De MySQL-gebruikers- en wachtwoordtoewijzing wordt opgeslagen in de systeemtabel ‘mysql.user’, een tabel met beperkte toegang. Het wachtwoord wordt in gecodeerde indeling opgeslagen, afhankelijk van de coderingsmodus die is gekozen tijdens het maken van de gebruiker.
Als iemands account echter is vergrendeld, biedt MySQL een ander commando genaamd ALTER USER, dat kan worden gebruikt om een bepaald gebruikersaccount te ontgrendelen.
Gevolgtrekking
In deze tutorial hebben we geleerd over de MySQL CREATE USER-opdracht, die wordt gebruikt voor authenticatie en toegangsbeheer in het algemeen door databasebeheerders.
gekoppelde lijst c ++ weergeven
MySQL biedt veel krachtige authenticatiemechanismen en rolgebaseerde toewijzingen waarmee nieuwe gebruikers kunnen worden gemaakt met vooraf gedefinieerde toegangsrechten. We zagen ook voorbeelden van het aanmaken van gebruikers met verschillende autorisatiemechanismen, verschillende wachtwoordinstellingen, vervalopties, enz.
Aanbevolen literatuur
- Hoe MySQL voor Windows en Mac te downloaden
- MySQL Create Bekijk zelfstudie met codevoorbeelden
- MySQL Create Table Tutorial met voorbeelden
- 31 Topvragen en antwoorden over het testen van databases
- Database Normalisatie Tutorial: 1NF 2NF 3NF BCNF Voorbeelden
- Volledige gids voor databasetests (waarom, wat en hoe gegevens te testen)
- MongoDB Maak een databaseback-up
- MongoDB Maak een gebruiker en wijs rollen toe met voorbeelden