sql >> Databáze >  >> RDS >> Mysql

1045, Přístup odepřen pro uživatele 'uživatelské jméno'@'NOT-local' (pomocí hesla:ANO)

zobrazit přihlášení k serveru (všimněte si, že % znamená libovolný hostitel nebo zástupný znak)

select user,host from mysql.user;

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

ukázat, jaké granty existují pro určitého uživatele.

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

Jak udělit přístup k určité databázi určitému přihlášení. Níže udělujeme všechna práva uživateli na so_gibberish databáze .

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

Podívejte se na platné granty nyní pro toto přihlášení

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

Vytvořte nové přihlašovací údaje drew_saturday s heslem friday987 .Má všechna práva v databázi so_gibberish a může se přihlásit z libovolného hostitele (% )

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

To heslo výše je mimochodem hashované heslo.

Poznámka:pro MySQL 5.7 by výše uvedený příkaz byl:

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

Manuální stránka Mysql na Grant . Neudělujte nadměrná práva uživatelům pomocí grant ALL on *. ... . To by bylo pro všechny databáze v systému. Stačí si přečíst návod a méně je více.

Někdy chtějí administrátoři udělit přístup pouze k několika tabulkám v databázi (ne všem tabulkám v ní) k přihlášení. Manuál si musíte přečíst.

A poslední věc. 'drew_saturday'@'%' je jiné přihlášení než 'drew_saturday'@'NOT-local' (vypůjčené z vašeho titulu). Jsou to různá přihlášení s různými právy. To je pointa první věci, kterou jsem tam nahoře napsal.




  1. Jak nainstalovat Oracle na Mac

  2. MySQL #1140 - Míchání sloupců GROUP

  3. Složitost NULL – Část 4, Chybějící standardní jedinečné omezení

  4. Ansible miluje PostgreSQL