MySQL pedindo ao usuário privilégio SUPER para executar uma exclusão

2

Ao tentar fazer uma operação de exclusão em uma tabela, o mysql reporta o seguinte erro:

Error code 1227: Access denied; you need the SUPER privilege for this operation.

No entanto, meu usuário tem esse privilégio concedido para todas as tabelas no esquema:

GRANT ALL PRIVILEGES ON myschema.* TO 'my_admin'@'%'

Por que me pede privilégio SUPER para uma exclusão?

    
por scetoaux 11.05.2010 / 18:01

4 respostas

3

Tem certeza de que não está logado como usuário menos privilegiado? Você obtém os privilégios do usuário com o qual está logado, não de todos os usuários com os quais você pode logar-se.

Se [email protected] tiver menos privilégios que myadmin@% e você estiver efetuando login a partir de 10.11.12.13, receberá os privilégios do primeiro.

Faça \s de um cliente mysql para ver qual é o "usuário atual" e, em seguida, SHOW GRANTS FOR desse usuário.

Você fez FLUSH PRIVILEGES depois de executar o GRANT , suponho.

    
por 11.05.2010 / 18:13
1

Eu tive o mesmo problema. Foi uma instalação incompleta que causou isso. Eu era incapaz de executar o mysql a partir da linha de comando com acesso root porque eu não tinha defina uma senha de root. Então, eu re-instalei o mysql (não precisei) - ah sim, fiz backup das minhas tabelas usando o mysqldump: mysqldump --all-databases > huge_dump.dump (isso não me pediu uma senha) Aqui está a chave - Execute o script mysql_secure_installation:

mysql_secure_installation

Bla Bla Bla - - - Digite a senha atual para root (digite para nenhum); HIT ENTER desde que você não definiu uma senha root ainda

Definir senha de root? [Y / n] y < --- diga sim !! Nova senha: kick_me_hard Redigite a nova senha: kick_me_hard Senha atualizada com sucesso! Recarregando tabelas de privilégios ... . . .Sucesso!

Agora você pode fazer login usando o phpMyAdmin ou a linha de comando:

mysql -u root -p

Digite a senha: kick_me_hard Digite 'help;' ou '\ h' para ajuda bla bla bla

mysql >

Agora você é o cara mais legal desde que você o consertou. A menos que você seja o único em volta - bem, então você ainda é o mais bacana!

    
por 19.03.2011 / 06:20
0

Dê uma olhada nas tabelas mysql.* . É possível que algumas permissões tenham sido definidas nessa tabela e removam seu acesso. Eu sei que as permissões do MySQL normalmente não funcionam assim, mas vale a pena olhar.

Além disso, o próprio arquivo da tabela possui as permissões corretas do sistema de arquivos? Se o MySQL não puder gravar nele, poderá confundir o subsistema de permissões com o que está errado.

    
por 17.05.2010 / 05:28
0

Outra possibilidade é: talvez haja um gatilho (como um EVENTO de exclusão) nessa tabela. Se você excluir linhas nessa tabela, ele emitirá o acionador, mas o acionador precisará do privilégio SUPER para ser executado.

    
por 17.04.2012 / 10:43