MySQL GRANT PROXY - o que isso significa?

14

Eu corro:

show grants for root@localhost;

e eu vejo

 GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

Dos documentos do mysql:

https://dev.mysql.com/doc/refman/5.5/en/proxy-users.html

Isso permite que o usuário externo seja um proxy para o segundo usuário; isto é, ter os privilégios do segundo usuário. Em outras palavras, o usuário externo é um "usuário proxy" (um usuário que pode se passar por um usuário proxy ou se tornar conhecido como outro usuário) e o segundo usuário é um "usuário proxy" (um usuário cuja identidade pode ser assumida por um usuário proxy) .

Mas não estou entendendo o que eles significam. Eu recebi o sistema de outro trabalhador que deixou o emprego e quer ter certeza de que tudo está seguro e não sei se essa concessão é necessária. Mas se isso não causar problemas de segurança, eu posso deixá-lo.

Alguém pode explicar de maneira mais simples?

Atualizar:

Como posso me conectar como outro usuário? Eu estava tentando várias combinações, de senha de nome de usuário, mas não consigo conectar.

Por exemplo, usei usuário root, mas senha de outro usuário, que não funcionou. Tentei outro usuário e senha root, também não funcionou.

Atualizar:

Ou talvez isso signifique que o usuário root pode se conectar como outro usuário? Como fazer isso, pelo menos, por exemplo, se sim?

Darius.V
fonte
"A conta raiz inicial criada durante a instalação do MySQL tem o privilégio PROXY ... WITH GRANT OPTION para '' @ '', ou seja, para todos os usuários e todos os hosts. Isso permite que o root configure usuários proxy, assim como delegar para outras contas, a autoridade para configurar usuários proxy ". De docs aqui: dev.mysql.com/doc/refman/5.5/en/proxy-users.html
Katie

Respostas:

3

A autenticação de usuário do MySQL é um processo bastante demorado para explicar. Eu o refiro à minha resposta de 3,5 anos ao erro do MySQL: Acesso negado para o usuário 'a' @ 'localhost' (usando a senha: YES) para que você possa ver as etapas que um usuário executa para se autenticar.

O que a concessão PROXY faz é permitir que um usuário se disfarce como outro usuário e ignore o protocolo de autenticação de usuário normal, porém demorado, do MySQL .

Essas concessões de proxy poderiam ser um furo de segurança se alguém soubesse disso e começasse a tirar vantagem disso. A maneira mais rápida de desativar isso seria executar

TRUNCATE TABLE mysql.proxies_priv;
FLUSH PRIVILEGES;

Isso eliminará os privilégios de proxy atuais.

Posteriormente, se você deseja restringir os privilégios de proxy, acesse o sistema operacional e faça o seguinte:

cd /var/lib/mysql/mysql
chmod -w proxies_priv.*

Isso impedirá a criação de novos privilégios de proxy.

DE UMA CHANCE !!!

RolandoMySQLDBA
fonte
1
E se algo quebrar se eu truncar a tabela? Eu posso antes de truncar - exportá-lo e, se algo quebrar, insira essas linhas novamente e tudo funcionará, espero. Eu vejo que há 2 rors na tabela.
Darius.V
Meus colegas de trabalho dizem que não há brecha na segurança, porque é raiz e ele tem todos os direitos de qualquer maneira. Mas talvez eles não tenham entendido por que pergunto - posso conectar-me a algum usuário não root como usuário root porque existe proxy e, em seguida, tenho direitos?
Darius.V
Nota: esta resposta não mostra como usar o recurso de proxy
Alastair Irvine