Så här skapar du en offentlig användare i MySQL med lösenordsautentisering, speciellt för skrivskyddad åtkomst till en databas:
1. Anslut till MySQL som en privilegierad användare:
Först måste du ansluta till din MySQL -server som användare med administrativa privilegier (som "root"). Använd MySQL -klienten:
`` `bash
mysql -u root -p
`` `
Ange rotlösenordet när du uppmanas.
2. Skapa användaren:
Använd uttalandet "Skapa användare" för att skapa den nya användaren. Byt ut `'public_user'` och`' your_password'` med önskat användarnamn och lösenord. Den "identifierade enligt" -klausulen ställer in användarens lösenord. `%'Betyder från någon värd.
`` `SQL
Skapa användare 'public_user'@'%' identifierad av 'Your_Password';
`` `
Viktig säkerhetsanmärkning: Med hjälp av `'%' 'gör det möjligt för användaren att ansluta från * vilken värd som helst. Detta är ofta * inte * en bra idé av säkerhetsskäl. Om du vet att användaren bara kommer att ansluta från en specifik IP -adress eller värdnamn, ersätt `'%' 'med den adressen (t.ex.`' public_user '@' 192.168.1.100' 'eller' 'public_User'@'yourdomain.com' '). Till exempel:
`` `SQL
Skapa användare 'public_user'@'192.168.1.100' identifierad av 'Your_Password';
`` `
Detta skulle bara göra det möjligt för användaren att ansluta sig från IP -adressen `192.168.1.100`.
3. Bevilja skrivskyddade privilegier:
Använd uttalandet "Grant" för att ge användaren skrivskyddad åtkomst till den specifika databasen. Byt ut `your_database` med namnet på den databas du vill ge åtkomst till.
`` `SQL
Bevilja välj på din_database.* Till 'public_user'@'%';
`` `
* `SELECT ':låter användaren läsa data från tabellerna i databasen.
* `Your_Database.*`:Anger att privilegiet gäller för alla tabeller inom `your_database '.
* `Till 'public_user'@'%'`:anger användaren och värden för vilken privilegiet beviljas.
4. Flush Privileges:
Efter att ha beviljat privilegier måste du spola privilegitabellerna för att göra ändringarna att träda i kraft.
`` `SQL
Spolar privilegier;
`` `
5. Avsluta mysql:
`` `SQL
utgång;
`` `
Komplett exempel:
`` `bash
mysql -u root -p # anslut som root
Ange ditt rotlösenord när du uppmanas
Skapa användare 'public_user'@'%' identifierad av 'MySecurePassword123!';
Bevilja välj på din_database.* Till 'public_user'@'%';
Spolar privilegier;
utgång;
`` `
Förklaring och viktiga överväganden:
* `Skapa användare`: Skapar ett nytt MySQL -användarkonto.
* `Grant`: Tilldelar specifika behörigheter (privilegier) till en användare.
* `Flush Privileges`: Laddar om bidragstabellerna. Detta är * väsentligt * efter att ha gjort ändringar i användarens privilegier; Annars kanske förändringarna inte träder i kraft omedelbart.
* `Identifierad av`: Ställer in användarens lösenord. Välj ett starkt lösenord!
* Säkerhet bästa metoder:
* Begränsa värdåtkomst: Som nämnts, undvik att använda `'%' 'för värden om möjligt. Begränsa användaren att endast ansluta från kända och pålitliga IP -adresser.
* princip för minst privilegium: Ge endast de minsta privilegierna som användaren behöver. I det här fallet är "Select" tillräckligt för skrivskyddad åtkomst. Undvik att bevilja "alla privilegier" såvida det inte är absolut nödvändigt.
* Lösenordskomplexitet: Verkställa starka lösenordspolicyer. Använd en blandning av små bokstäver, siffror och symboler. Överväg att använda MySQL:s lösningsplugin för lösenord för starkare lösenord.
* SSL/TLS: För produktionsmiljöer, kryptera alltid anslutningar mellan klienten och MySQL -servern med SSL/TLS för att skydda lösenordet och data som överförs över nätverket.
* Alternativa privilegier: Istället för att bevilja "Select" i hela databasen (`your_database.*`) Kan du bevilja `Select 'endast på specifika tabeller:
`` `SQL
GRANT Välj på Your_Database.Table1 till 'public_user'@'%';
Bevilja välj på din_database.table2 till 'public_user'@'%';
`` `
Detta är ännu säkrare, eftersom det begränsar tillgången till endast nödvändiga tabeller.
* Revision: Överväg att aktivera MySQL:s revisionsloggning för att spåra vem som har åtkomst till databasen och vilka frågor de kör.
Ansluta med den nya användaren:
För att ansluta med den nya användaren:
`` `bash
mysql -u public_user -p -h your_mysql_host -d your_database
`` `
* `-u public_user`:Anger användarnamnet.
* `-p`:instruktioner för lösenordet.
* `-h your_mysql_host`:Anger värdnamnet eller IP-adressen för din MySQL-server. Om du ansluter från samma maskin kan du ofta utelämna detta eller använda "localhost" eller `127.0.0.1`.
* `-D your_database`:Anger databasen som ska ansluter till.
Efter att ha kört detta kommando blir du ombedd att ange "Public_User" -lösenordet.
Genom att följa dessa steg och överväga säkerhetsrekommendationerna kan du skapa en offentlig användare med skrivskyddad åtkomst till din MySQL-databas på ett säkert och kontrollerat sätt. Prioritera alltid säkerheten när du ger tillgång till dina uppgifter.