Permissão negada em Conectar apenas com privilégios de tabela

1

(originalmente perguntado no StackOverflow, mas foi sugerido que eu pergunte aqui)  - comunidade MySQL 5.1.41 (Windows Server 2003)  - .Net / Connector 6.1.3.0

Acabei de criar um novo usuário e, em vez de conceder privilégios de esquema, concedi direitos apenas a tabelas específicas. Em outras palavras, não há um conjunto de permissões no nível global ou de esquema, somente as permissões configuradas são para algumas tabelas específicas. Isto parecia uma política perfeitamente aceitável e pelo que eu tenho pronto, o MySQL irá procurar:

  1. global
  2. esquema / DB
  3. Tabela
  4. Coluna

para permissões apropriadas. No entanto, quando tento abrir uma conexão com o servidor usando essa nova conta de usuário, recebo um erro de permissão negada.

Access denied for user 'xxxxxx'@'%' to database 'xxxxxxx'

Eu tentei com vários clientes diferentes e o resultado é o mesmo. Eu também verifiquei o log do servidor e não há detalhes adicionais, apenas isto:

110816 10:23:15 543 Connect [email protected] on xxxxxxxx 543 Init DB Access denied for user 'xxxxx'@'%' to database 'xxxxxxx'"

Se eu conceder SELECT no esquema em questão, posso me conectar bem. Estou entendendo mal o modo como o sistema de permissões funciona ou deveria funcionar como eu penso?

    
por Steve K 16.08.2011 / 21:06

2 respostas

2

Se você adicionar um usuário com uma inserção manual no mysql.user, você precisa executar flush privileges antes de poder fazer o login com esse usuário. Se você usa um GRANT para criar o usuário, o flush é feito automaticamente para você.

Veja um exemplo de inserção:

INSERT INTO mysql.user (user, host, password) 
  VALUES ('user', 'localhost', password('yourpassword'));
    
por 16.08.2011 / 23:46
1

A mensagem de erro informa o que você precisa saber: Nenhum acesso ao banco de dados. Não é possível acessar a tabela sem acessar o banco de dados delimitador, portanto conceda permissões apropriadas para o último. É como ter acesso a um arquivo em um servidor, mas negou acesso ao próprio servidor.

    
por 17.08.2011 / 06:48

Tags