Resumo : neste tutorial, você aprenderá como usar REVOKE
a instrução MySQL para revogar privilégios de contas de usuários .
Introdução à instrução MySQL REVOKE
A REVOKE
instrução revoga um ou mais privilégios de uma conta de usuário.
A REVOKE
declaração tem vários formatos.
Revogar um ou mais privilégios
O seguinte ilustra a sintaxe básica da REVOKE
instrução que revoga um ou mais privilégios de contas de usuário:
REVOKE privilegee [,privilege]..
ON [object_type] privilege_level
FROM user1 [, user2] ..;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique uma lista de privilégios separados por vírgula que você deseja revogar de uma conta de usuário após a
REVOKE
palavra-chave. - Segundo, especifique o tipo de objeto e o nível de privilégio dos privilégios após a
ON
palavra-chave; confira aGRANT
declaração para obter mais informações sobre o nível de privilégio. - Terceiro, especifique uma ou mais contas de usuário das quais deseja revogar os privilégios na
FROM
cláusula.
Observe que para executar esta forma de REVOKE
instrução, você deve ter GRANT OPTION
privilégios ou deve ter os privilégios que está revogando.
Revogar todos os privilégios
Para revogar todos os privilégios de um usuário, você usa o seguinte formato de REVOKE ALL
declaração:
REVOKE
ALL [PRIVILEGES],
GRANT OPTION
FROM user1 [, user2];
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para executar a REVOKE ALL
instrução, você deve ter um CREATE USER
privilégio global ou o UPDATE
privilégio do mysql
banco de dados do sistema.
Revogar proxy
Para revogar um usuário proxy, você usa o REVOKE PROXY
comando:
REVOKE PROXY
ON proxied_user
FROM proxy_user1[,proxy_user1]...;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Um usuário proxy é um usuário válido no MySQL que pode se passar por outro usuário, portanto, o usuário proxy tem todos os privilégios do usuário que ele representa.
É uma boa prática mostrar os privilégios das contas de usuário usando a SHOW GRANTS
instrução antes de revogar os privilégios do usuário:
SHOW GRANTS FOR user;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Exemplos de MySQL REVOKE
Vejamos alguns exemplos de revogação de privilégios.
1) Exemplo de uso do MySQL REVOKE para revogar privilégios de uma conta de usuário
Primeiro, crie uma conta de usuário chamada rfc@localhost
:
CREATE USER rfc@localhost
IDENTIFIED BY 'Secret1Pass!';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, conceda rfc@localhost
os privilégios SELECT
, UPDATE
e INSERT
no classicmodels
banco de dados:
GRANT SELECT, UPDATE, INSERT
ON classicmodels.*
TO rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, exiba os privilégios concedidos ao rfc@localhost
usuário:
SHOW GRANTS FOR rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quarto, revogue os privilégios UPDATE
e INSERT
de rfc@localhost
:
REVOKE INSERT, UPDATE
ON classicmodels.*
FROM rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quinto, exiba os privilégios de rfc@localhost
:
SHOW GRANTS FOR rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando MySQL REVOKE para revogar todos os privilégios de um exemplo de conta de usuário
Primeiro, conceda o EXECUTE
privilégio ao rfc@localhost
:
GRANT EXECUTE
ON classicmodels.*
TO rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, mostre os privilégios de rfc@localhost
usuário concedidos anteriormente:
Terceiro, revogue todos os privilégios da rfc@localhost
conta do usuário usando a REVOKE ALL
instrução:
REVOKE ALL, GRANT OPTION
FROM rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, mostre os privilégios do rfc@localhost
para verificar a revogação:
SHOW GRANTS FOR rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O rfc@localhost
não tem privilégios. Observe que USAGE
privilégio significa nenhum privilégio no MySQL.
3) Usando MySQL REVOKE para revogar exemplo de privilégio PROXY
Primeiro, conceda o PROXY
privilégio à rfc@localhost
conta do usuário:
GRANT PROXY
ON root
TO rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Em segundo lugar, mostre os privilégios concedidos de rfc@localhost
:
SHOW GRANTS FOR rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, revogue o PROXY
privilégio de rfc@localhost
:
REVOKE PROXY
ON root
FROM rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por fim, mostre os privilégios concedidos rfc@lcoalhost
para verificar a ação:
SHOW GRANTS FOR rfc@localhost;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quando o comando MySQL REVOKE entra em vigor
O efeito da REVOKE
instrução depende do nível de privilégio:
Nível global
As alterações entram em vigor quando a conta do usuário se conecta ao servidor MySQL nas sessões subsequentes. As alterações não se aplicam a todos os usuários conectados no momento.
Nível de banco de dados
As alterações entram em vigor após a próxima USE
instrução.
Níveis de tabela e coluna
As alterações entram em vigor em todas as consultas subsequentes.
Resumo
- Use a
REVOKE
instrução MySQL para revogar privilégios de contas de usuário.