Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> PHP /MySQL Programmering >> Content
Hoe maak je een openbare gebruiker aan waarvoor een wachtwoord nodig is om de database in MySQL te bekijken?
Hier leest u hoe u een openbare gebruiker in MySQL maakt waarvoor een wachtwoord nodig is om een ​​database te bekijken, samen met uitleg en best practices:

1. Maak verbinding met MySQL als root- of beheerdersgebruiker

U moet verbinding maken met uw MySQL-server met behulp van een gebruikersaccount dat voldoende rechten heeft om gebruikers aan te maken en machtigingen te verlenen. Meestal is dit de `root`-gebruiker of een andere beheerder.

``` bash

mysql -u root-p

```

Voer het rootwachtwoord in wanneer daarom wordt gevraagd.

2. Maak de gebruiker aan

Gebruik de instructie `CREATE USER` om de gebruiker aan te maken. Het is het beste om de host op te geven waarmee de gebruiker verbinding kan maken. Als je wilt dat de gebruiker verbinding maakt vanaf elke host, gebruik dan `%`. Wees zeer voorzichtig met het gebruik van `%` voor gevoelige accounts! Voor een veiliger aanpak kunt u de gebruiker beperken om alleen verbinding te maken vanaf specifieke IP-adressen of hostnamen.

```sql

MAAK GEBRUIKER 'public_user'@'%' GEIDENTIFICEERD DOOR 'uw_sterke_wachtwoord';

```

* `'openbare_gebruiker'@'%'` :Dit definieert de gebruikersnaam (`public_user`) en de host (`%` betekent elke host). Vervang `uw_sterke_wachtwoord` door een sterk, uniek wachtwoord.

* `GEIDENTIFICEERD DOOR 'uw_sterke_wachtwoord'` :Hiermee wordt het wachtwoord voor de gebruiker ingesteld. Gebruik een sterk wachtwoord dat lang en complex is en een combinatie van hoofdletters en kleine letters, cijfers en symbolen bevat. Overweeg het gebruik van een wachtwoordbeheerder om uw wachtwoorden veilig te genereren en op te slaan.

Belangrijke veiligheidsopmerking: Door `'%'` als host te gebruiken, kan de gebruiker verbinding maken vanaf *elk* IP-adres. Dit kan een veiligheidsrisico zijn. Beperk de gebruiker indien mogelijk tot een specifiek IP-adres of een reeks IP-adressen. Bijvoorbeeld:

```sql

MAAK GEBRUIKER 'public_user'@'192.168.1.100' GEIDENTIFICEERD DOOR 'uw_sterke_wachtwoord'; -- Alleen toestaan ​​vanaf IP 192.168.1.100

MAAK GEBRUIKER 'public_user'@'192.168.1.%' GEIDENTIFICEERD DOOR 'uw_sterke_wachtwoord'; -- Toestaan ​​vanaf subnet 192.168.1.x

```

3. Verleen alleen-lezen-rechten aan de database

Gebruik de `GRANT`-instructie om de gebruiker alleen-lezen-rechten te verlenen voor de gewenste database.

```sql

VERLEEN SELECTIE OP uw_database.* AAN 'public_user'@'%';

```

* `GRANT SELECTIE` :Dit specificeert dat de gebruiker alleen het `SELECT`-privilege heeft, waarmee hij gegevens kan lezen. Ze zullen *niet* de structuur van de database kunnen invoegen, bijwerken, verwijderen of wijzigen.

* `OP uw_database.*` :Dit specificeert de database (`uw_database`) en dat het privilege van toepassing is op alle tabellen binnen die database (`.*`). Vervang `uw_database` door de werkelijke naam van uw database.

* `TO 'public_user'@'%'` :Dit specificeert de gebruiker aan wie het recht wordt verleend. Zorg ervoor dat dit overeenkomt met de gebruiker die u in stap 2 heeft aangemaakt.

4. Rechten doorspoelen

Na het verlenen van bevoegdheden is het van essentieel belang dat u de privilegetabellen leegmaakt om ervoor te zorgen dat de wijzigingen onmiddellijk van kracht worden.

```sql

SPOEL PRIVILEGES;

```

5. Test de gebruiker

Meld u af bij het root- of beheerdersaccount en log in met het nieuw aangemaakte 'public_user'-account.

``` bash

mysql -u public_user -p -h uw_mysql_server_adres

```

Vervang `your_mysql_server_address` door het daadwerkelijke adres van uw MySQL-server. Als u verbinding maakt vanaf dezelfde machine, kunt u vaak `localhost` gebruiken.

Voer het wachtwoord in dat u hebt ingesteld voor `public_user` wanneer daarom wordt gevraagd.

Eenmaal ingelogd, probeer gegevens uit de database te selecteren:

```sql

GEBRUIK uw_database;

SELECTEER * UIT uw_tabel;

```

Als de `SELECT`-instructie werkt, heeft de gebruiker alleen-lezen toegang gekregen. Probeer een bewerking waarvoor andere rechten nodig zijn, zoals 'INSERT', 'UPDATE', 'DELETE' of 'CREATE TABLE'. Deze zouden moeten mislukken met de foutmelding 'toestemming geweigerd'.

Volledig voorbeeld:

```sql

-- Verbind als root:mysql -u root -p

-- Maak de gebruiker aan (vervang door een sterk wachtwoord!)

MAAK GEBRUIKER 'public_user'@'%' GEIDENTIFICEERD DOOR 'SuperSecretPassword123!';

-- Verleen alleen-lezen toegang tot de database 'mydatabase'

VERLEEN SELECTIE OP mijndatabase.* AAN 'public_user'@'%';

-- Vernieuwingsrechten

SPOEL PRIVILEGES;

-- Sluit de rootsessie af

UITGANG;

-- Log in als de nieuwe gebruiker (vanaf de opdrachtregel):

-- mysql -u public_user -p -h uw_mysql_server_adres

-- Test de rechten:

GEBRUIK mijndatabase;

SELECTEER * VAN klanten; -- Zou moeten werken

INSERT INTO klanten (naam) WAARDEN ('Nieuwe klant'); -- Moet mislukken

-- Sluit de public_user-sessie

UITGANG;

```

Belangrijke overwegingen en beste praktijken:

* Minste privilege: Verleen alleen de noodzakelijke rechten. Vermijd het verlenen van bredere rechten dan vereist. Als de gebruiker bijvoorbeeld alleen uit een specifieke tabel hoeft te lezen, verleent u 'SELECT' alleen voor die tabel, en niet voor de hele database.

* Hostbeperking: Beperk de hosts waarmee de gebruiker verbinding kan maken. Gebruik `'%'` niet tenzij absoluut noodzakelijk en u de veiligheidsimplicaties begrijpt.

* Wachtwoordbeheer: Dwing een sterk wachtwoordbeleid af en wissel wachtwoorden regelmatig af. Gebruik een wachtwoordbeheerder.

* Controleregistratie: Schakel auditregistratie in op uw MySQL-server om gebruikersactiviteiten bij te houden, inclusief aanmeldingen, zoekopdrachten en andere bewerkingen. Dit kan u helpen beveiligingsincidenten op te sporen en te onderzoeken.

* Regelmatige beveiligingsaudits: Controleer regelmatig uw MySQL-configuratie, gebruikersaccounts en rechten om potentiële beveiligingsproblemen te identificeren en aan te pakken.

* Codering: Gebruik encryptie om gegevens in rust en onderweg te beschermen. Schakel SSL in voor clientverbindingen.

* Firewall: Configureer uw firewall om alleen het noodzakelijke verkeer naar uw MySQL-server toe te staan.

* Toezicht: Controleer uw MySQL-server op prestatieproblemen en beveiligingsbedreigingen.

* Databaseontwerp: Ontwerp uw database met veiligheid in gedachten. Gebruik de juiste gegevenstypen en beperkingen om gegevenscorruptie en injectie-aanvallen te voorkomen. Overweeg het gebruik van voorbereide instructies om SQL-injectie te voorkomen.

* Vermijd directe blootstelling aan internet: In de meeste gevallen moet u uw MySQL-database *niet* rechtstreeks blootstellen aan het openbare internet. Gebruik in plaats daarvan een applicatieserver (bijvoorbeeld een webserver met PHP, Python, Node.js, enz.) om verzoeken van clients af te handelen en namens de gebruiker met de database te communiceren. Hierdoor kunt u strengere beveiligingscontroles implementeren en de database beschermen tegen directe aanvallen. Dit is van cruciaal belang voor het voorkomen van ongeoorloofde toegang en datalekken.

* Geen directe blootstelling aan de eindgebruiker: Laat de eindgebruiker nooit rechtstreeks gegevens in uw database invoeren, maar gebruik in plaats daarvan een website.

Door deze stappen en best practices te volgen, kunt u een openbare gebruiker aanmaken die een wachtwoord nodig heeft om gegevens in MySQL te bekijken, terwijl een redelijk beveiligingsniveau behouden blijft. Vergeet niet om deze instructies aan te passen aan uw specifieke omgevings- en beveiligingsvereisten. Geef altijd prioriteit aan beveiliging en controleer uw configuratie regelmatig om ervoor te zorgen dat deze effectief blijft.

Previous: Next: No
  PHP /MySQL Programmering
·Hoe te importeren uit . SQL in…
·Hoe om te doen Multiple Mailto…
·Hoe kan ik PHP insluiten in ee…
·Hoe maak je een server Parse Z…
·Hoe maak je een Live Search me…
·Hoe je het wachtwoord van Loca…
·Hoe kan ik PHP software downlo…
·Hoe je alle variabelen vastleg…
·Hoe maak je een URL in PHP Red…
  Related Articles
Waarom gebruiken we functies bij het pro…
Welke rol speelt een tolk bij het progra…
Wat is de rol van een compiler bij compu…
Wat is het doel van een voorwaardelijke …
Wat is de hiërarchie van programmeertal…
Wat is de analoge definitie in de inform…
Wat is redex en hoe verhoudt dit zich to…
Wat is assembleertaal en hoe wordt het g…
Wat is assemblagecode en hoe wordt deze …
  Programmering Articles
·Hoe maak je een Div invoegen in een Div 
·Wat is een Select Case in Visual Basic ?…
·Waarom is informatieverwerking vergelijk…
·Hoe te DOSEMU op Dot Matrix Print 
·Wat is een Dialog formulier in Visual Ba…
·Hoe te Octaal Getallen schrijven in PHP 
·Tutorial over JSP -tags 
·Hoe te Aantallen op Visual Basic Reverse…
·Hoe heet een verzameling computerprogram…
Copyright © Computer Kennis https://www.nldit.com