sql >> Database teknologi >  >> RDS >> Mysql

1045, Adgang nægtet for brugeren 'brugernavn'@'NOT-local' (ved hjælp af adgangskode:JA)

vis logins til serveren (bemærk at % betyder enhver vært eller jokertegn)

select user,host from mysql.user;

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

vise hvilke bevillinger der findes til en bestemt bruger.

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

Sådan giver du adgang til en bestemt db til et bestemt login. Nedenfor giver vi alle rettigheder til brugeren til so_gibberish database .

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

Se på tilskud, der er gældende nu for det 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'@'%' +----------------------------------------------------------------------

Opret et nyt login drew_saturday med en adgangskode friday987 .Han har alle privilegier på databasen so_gibberish og kan logge på fra enhver vært (% )

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

Adgangskoden ovenfor er i øvrigt den hash-kodede adgangskode.

Bemærk:for MySQL 5.7 ville kommandoen ovenfor være:

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

Mysql manual side på Grant . Giv ikke overdrevne rettigheder til brugere, der bruger grant ALL on *. ... . Det ville være for alle database i systemet. Bare læs manualen og mindre er mere.

Nogle gange ønsker administratorer at give adgang til kun en håndfuld tabeller i en database (ikke alle tabeller i den) til et login. Manualen er et must at læse om dette.

Og en sidste ting. 'drew_saturday'@'%' er et andet login end 'drew_saturday'@'NOT-local' (låner fra din titel). Det er forskellige logins med forskellige rettigheder. Det er meningen med det første, jeg skrev langt deroppe.




  1. php fil upload, hvordan man begrænser fil upload type

  2. Sådan viser du en dato som iso 8601-format med PHP

  3. hvordan man udfylder mysql kolonneværdi baseret på en formel?

  4. SCHEMA() Funktion i MySQL