sql >> Database >  >> RDS >> Mysql

1045, Toegang geweigerd voor gebruiker 'gebruikersnaam'@'NOT-local' (met wachtwoord:JA)

inloggegevens op de server weergeven (merk op dat % betekent anyhost of wildcard)

select user,host from mysql.user;

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

laten zien welke subsidies er zijn voor een bepaalde gebruiker.

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'@'%'
+----------------------------------------------------------------------

Hoe toegang te verlenen tot een bepaalde db voor een bepaalde login. Hieronder verlenen we alle rechten aan de gebruiker op de so_gibberish database .

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

Bekijk subsidies die nu van kracht zijn voor die login

+----------------------------------------------------------------------
| 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'@'%'
+----------------------------------------------------------------------

Maak een nieuwe login drew_saturday met een wachtwoord friday987 .Hij heeft alle rechten op database so_gibberish en kan inloggen vanaf elke host (% )

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 |
+---------------+------+-------------------------------------------+

Dat wachtwoord hierboven is trouwens het gehashte wachtwoord.

Opmerking:voor MySQL 5.7 zou het bovenstaande commando zijn:

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

Mysql-handleiding op Grant . Verleen geen buitensporige rechten aan gebruikers die grant ALL on *. ... . Dat is voor allemaal databank in het systeem. Lees gewoon de handleiding en minder is meer.

Soms willen beheerders toegang verlenen tot slechts een handvol tabellen in een database (niet alle tabellen erin) om in te loggen. De handleiding is een must om hierover te lezen.

En nog een laatste ding. 'drew_saturday'@'%' is een andere login dan 'drew_saturday'@'NOT-local' (ontlenend aan je titel). Het zijn verschillende logins met verschillende rechten. Dat is het punt van het eerste dat ik daar schreef.




  1. SQL Server, een benoemd exemplaar converteren naar een standaardexemplaar?

  2. SQL-joins

  3. Hoe een enkele tabel in de mysql-database te importeren met behulp van de opdrachtregel

  4. MariaDB 5.5 upgraden naar MariaDB 10.1 op CentOS/RHEL 7 en Debian-systemen