Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que usar WITH GRANT OPTION?

Olá pessoal, tudo bem?

O que exatamente o trecho "WITH GRANT OPTION" faz? Neste vídeo o professor mostrou como revogar os privilégios de um usuário e depois os deu novamente com o mesmo código, porém omitindo esse trecho. Alguém poderia, por favor, me explicar a diferença de usar ou omitir esse trecho quando essa tarefa for executada em linha de comando?

Usou este comando:

GRANT ALL PRIVILEGES 
ON *.* TO 'admin01'@'localhost' WITH GRANT OPTION;

Depois ele revogou todos os privilégios dados anteriormente e selecionou apenas alguns omitindo o trecho em questão (with grant option) usando este comando:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE
ON *.* TO 'user02'@'localhost;

Obrigado.

2 respostas
solução!

Olá Danilo, tudo bem ?

Segundo a documentação do MySql, a cláusula WITH GRANT OPTION dá ao usuário a capacidade de conceder a outros usuários quaisquer privilégios que o usuário tenha no nível de privilégio especificado.

Então o instrutor concedeu a permissão ao usuário admin01, conceder a outros usuários quaisquer privilégios que ele tenha. Mas não concedeu essa permissão ao usuário user02.

Você pode saber mais sobre a instrução GRANT, acessando a documentação do MySql.

Espero ter esclarecido a sua dúvida, qualquer coisa é só falar e bons estudos!

Olá Danielle, tudo bem?

Obrigado pelo retorno. É isso mesmo, sua explicação junto com a documentação que compartilhou consegui entender a função dessa instrução.

Então para o usuário admin01 estou dando permissão para ele conceder a qualquer outro usuário que ele criar qualquer um dos privilégios que ele tem, já que ele tem todos os privilégios ALL PRIVILEGES.

GRANT ALL PRIVILEGES 
ON *.* TO 'admin01'@'localhost' WITH GRANT OPTION;

Já para o usuário user02 estou dando privilégios específicos no qual esse usuário não poderá conceder nenhum dos teus privilégios a qualquer outro, pois além de não ser administrador não pode criar outros usuários. Por isso a omissão da instrução WITH GRANT OPTION.

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE
ON *.* TO 'user02'@'localhost;

Muito obrigado Danielle.