Concessão de privilégios para o usuário mysql não funcionar

3

Estou logado no mysql como root. Eu posso adicionar um usuário assim:

CREATE USER test01@localhost IDENTIFIED BY 'test01';

Quando tento conceder privilégios ao usuário test01 , nada parece acontecer:

GRANT SELECT,INSERT,UPDATE,DELETE ON test_database.* TO 'test01'@'localhost';

Todas as colunas *_priv estão definidas como N para o usuário test01 .

Alguma idéia do que estou fazendo errado aqui? Obrigado!

Aqui estão os resultados de SHOW GRANTS...

mysql> SHOW GRANTS FOR 'test01'@'localhost';
+--------------------------------------------------------------------------------------+
| Grants for test01@localhost                                                          |
+--------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test01'@'localhost' IDENTIFIED BY PASSWORD 'removed_hash' |
+--------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
    
por Mike Moore 26.08.2011 / 04:58

1 resposta

7

All of the *_priv columns are set to N for the test01 user.

Você fez check da tabela mysql.user , algo assim:

mysql> select * from mysql.user where user='test01' and host='localhost'\G

Se assim for, você está verificando no lugar errado. Todos os privilégios nesta tabela são privilégios globais , são atribuídos usando em *. * .

Enquanto você concede no banco de dados nível on test_database.* , precisa fazer check-in na tabela mysql.db :

select * from mysql.db where user='test01' and host='localhost' and db='test_database'\G

Leia mais: link

    
por 26.08.2011 / 06:39