Jak poznać wszystkich użytkowników, którzy mogą uzyskać dostęp do bazy danych?
19
Połącz się z instancją mysql jako użytkownik admin (ogólnie jako root) i wydaj następujące polecenie ...
select user from mysql.db where db='DB_NAME';
select user from mysql.db
bez kwalifikacji zwraca również 2 puste wiersze.Odpowiedź użytkownika 79644 zapewnia użytkownikom z uprawnieniami na poziomie bazy danych, ale będzie brakować użytkownikom z uprawnieniami tylko na poziomie tabeli, kolumny lub procedury. Aby znaleźć je wszystkie, użyj następujących instrukcji:
Przynajmniej w MySQL 5.5 wydaje się, że posiadanie uprawnień na poziomie kolumny oznacza, że masz uprawnienia na poziomie tabeli. Posiadanie uprawnień na poziomie tabeli nie oznacza, że masz uprawnienia na poziomie bazy danych. Nie jestem pewien co do uprawnień na poziomie procedury.
źródło
ERROR 1046 (3D000): No database selected
mysql
bazy danych. Tam przechowywane są wszystkie dane używane przez MySQL. Albo wydaj polecenieUSE mysql;
dodania nazwy bazy danych do nazw tabel, takich jakFROM mysql.db
lubFROM mysql.tables_priv
źródło
Należy pamiętać, że MySQL
GRANT
dla baz danych może zawierać znaki wieloznaczne . Należy to uwzględnić przy użyciuLIKE
w zapytaniu:źródło