sql >> Databasteknik >  >> RDS >> Mysql

1045, Åtkomst nekad för användaren 'användarnamn'@'NOT-local' (med lösenord:JA)

visa inloggningar till servern (observera att % betyder valfri värd eller jokertecken)

select user,host from mysql.user;

+-----------+------------+
| user      | host       |
+-----------+------------+
| ajax_guy  | %          |
| joe7      | %          |
| joe8      | %          |
+-----------+------------+

visa vilka bidrag som finns för en viss användare.

show grants for 'ajax_guy'@'%';

+----------------------------------------------------------------------
| Grants for [email protected]%                                              
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Hur man beviljar åtkomst till en viss db till en viss inloggning. Nedan ger vi användaren alla rättigheter till so_gibberish databas .

grant ALL on so_gibberish.* to 'ajax_guy'@'%';

Titta på bidrag som gäller nu för den inloggningen

+----------------------------------------------------------------------
| Grants for [email protected]%                                              
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
| GRANT ALL PRIVILEGES ON `so_gibberish`.* TO 'ajax_guy'@'%'         
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Skapa en ny inloggning drew_saturday med ett lösenord friday987 .Han har alla privilegier på databasen so_gibberish och kan logga in från vilken värd som helst (% )

grant ALL on so_gibberish.* to 'drew_saturday'@'%' IDENTIFIED BY 'friday987';

select user,host,password from mysql.user where user='drew_saturday';

+---------------+------+-------------------------------------------+
| user          | host | password                                  |
+---------------+------+-------------------------------------------+
| drew_saturday | %    | *4600ED0F377308959665877BD327D4788DC2071F |
+---------------+------+-------------------------------------------+

Lösenordet ovan är förresten det hashade lösenordet.

Obs:för MySQL 5.7 skulle kommandot ovan vara:

select user,host,authentication_string from mysql.user where user='drew_saturday';

Mysql manualsida på Grant . Ge inte överdrivna rättigheter till användare som använder grant ALL on *. ... . Det skulle vara för alla databas i systemet. Läs bara manualen och mindre är mer.

Ibland vill administratörer ge åtkomst till bara en handfull tabeller i en databas (inte alla tabeller i den) till en inloggning. Manualen är ett måste att läsa om detta.

Och en sista sak. 'drew_saturday'@'%' är en annan inloggning än 'drew_saturday'@'NOT-local' (lånar från din titel). Det är olika inloggningar med olika rättigheter. Det är poängen med det första jag skrev långt upp.




  1. Skapa en kml-fil från en mysql-databas med php

  2. Hur man använder Kör omedelbart med INTO-klausul i Oracle Database

  3. Hur kan jag köra ett inbyggt SQL-skript i JPA/Hibernate?

  4. Lär dig hur du prestandajusterar Microsoft SQL Server