Odmowa dostępu do założenia tabeli mimo przyznanych uprawnień.

0

Witam.

Pierwszy raz walczę z bazą MySQL na Linuxie w trybie konsolowym :).

Zainstalowałem co trzeba, stworzyłem bazę, dodałem użytkownika, podłączyłem się klientem (HeidiSQL) i próbuję dodać tabelę jednak baza zwraca błąd:
screenshot-20171121231332.png

sprawdzając uprawnienia mam:
screenshot-20171121231414.png

o ile dobrze rozumiem zapisz to tomasz może "wszystko" w bazie teksty.
W takim razie dlaczego nie może dodać tabeli :)?

Wywoływałem flush privileges ale nic to nie zmienia.

0

Spróbuj z określeniem hosta.

0

A co zwróci zapytanie:

SELECT DATABASE();

No moze nie na tej bazie puszczasz....

I pokaż DDL-a

0

@Panczo:

root@Ubuntu1:~# mysql -p -u tomasz
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.5.54-0ubuntu0.12.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use tekst;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| tekst      |
+------------+
1 row in set (0.00 sec)

mysql> CREATE TABLE `testowa` (`ID` INT NULL );
ERROR 1142 (42000): CREATE command denied to user 'tomasz'@'localhost' for table 'testowa'

Baza jest pusta, więc nie bardzo mam co pokazać ;).

@Haskell dodałem usera tomasz@localhost


mysql> SELECT user, host, password, select_priv, insert_priv, shutdown_priv, grant_priv  FROM mysql.user;
+------------------+-----------+-------------------------------------------+-------------+-------------+---------------+------------+
| user             | host      | password                                  | select_priv | insert_priv | shutdown_priv | grant_priv |
+------------------+-----------+-------------------------------------------+-------------+-------------+---------------+------------+
| root             | localhost | *6C9421A5A5AB5FB033AAA12214CA985F7DB8601F | Y           | Y           | Y             | Y          |
| root             | ubuntu1   | *6C9421A5A5AB5FB033AAA12214CA985F7DB8601F | Y           | Y           | Y             | Y          |
| root             | 127.0.0.1 | *6C9421A5A5AB5FB033AAA12214CA985F7DB8601F | Y           | Y           | Y             | Y          |
| root             | ::1       | *6C9421A5A5AB5FB033AAA12214CA985F7DB8601F | Y           | Y           | Y             | Y          |
| debian-sys-maint | localhost | *4EA490E67450A06F6B015DFB6E4A018A5241604E | Y           | Y           | Y             | Y          |
| tomasz           | %         | *BAD26D21ABF43663A863552EB77ECBDFF12524CA | Y           | Y           | Y             | Y          |
| tomasz           | localhost | *21A41954AEDB3390924AA8EE2331EE49C2290BAC | N           | N           | N             | N          |
+------------------+-----------+-------------------------------------------+-------------+-------------+---------------+------------+

teraz po zalogowaniu na localhost (tak jak w przykładzie wyżej) tabla została założona.

Pytanie dlaczego '%' nie działa...

1
hipekk napisał(a):

teraz po zalogowaniu na localhost (tak jak w przykładzie wyżej) tabla została założona.

Pytanie dlaczego '%' nie działa...

Długo by tłumaczyć... :) Prawdopodobnie masz anonimowych userów na bazie: ''@'localhost' lub ''@'127.0.0.1', którzy nie mają uprawnień. Gdy się logujesz mysql próbuje dopasować usera i hosta, a przez anonima dopasowuje go właśnie jako anonima, który uprawnień nie ma. Wystarczy ich zdropować i wtedy wpis z '%' powinien zacząć działać.

0

@Haskell:
Taki użytkowników mam w bazie:
screenshot-20171123150643.png

Jeżeli byłby jakiś anonimowy to chyba (z tego co znalazłem w sieci) byłby wpis typu:

screenshot-20171123154341.png

0

Zrób sobie ponownie tego usera z '%', zaloguj się na niego i uruchom SELECT USER(),CURRENT_USER();

0

Tak namieszałem że żaden użytkownik nie ma ma uprawnień do uprawnień :D.

0

Ty dodajesz tych użytkowników przez create user czy insertujesz do tabeli nowych?

0

Przez create user.

0

Nie wiem co ja wcześniej zrobilem...
Postawiłem vm od nowa, wrzuciłem co trzeba, utworzyłem bazę, użytkownika i działa :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1