CONCESSÃO DE MOSTRAS MySQL

Resumo : Neste tutorial, você aprenderá como usar SHOW GRANTSa instrução MySQL para visualizar os privilégios concedidos anteriormente a um usuário ou função.

Introdução à instrução MySQL SHOW GRANTS

A instrução MySQL SHOW GRANTSretorna todos os privilégios e funções concedidos a um usuário ou função da conta.

Aqui está a sintaxe básica da SHOW GRANTSinstrução:

SHOW GRANTS
[FOR {user | role}
[USING role [, role] ...]]Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • Primeiro, especifique o nome da conta de usuário ou função para a qual deseja exibir os privilégios concedidos anteriormente após a FORpalavra-chave. Se você omitir a FORcláusula, a SHOW GRANTSinstrução retornará os privilégios do usuário atual.
  • Segundo, use a USINGcláusula para inspecionar os privilégios associados às funções do usuário. As funções especificadas na USINGcláusula devem ter sido concedidas previamente ao usuário.

Para executar a SHOW GRANTSinstrução, você precisa ter SELECTprivilégios no mysqlbanco de dados do sistema, exceto quando mostra privilégios e funções para o usuário atual.

Exemplos de instruções MySQL SHOW GRANTS

Vejamos alguns exemplos de uso da SHOW GRANTSinstrução MySQL.

1) Usando a instrução SHOW GRANTS para exibir os privilégios do usuário atual

A instrução a seguir usa a SHOW GRANTSinstrução para exibir os privilégios concedidos ao usuário atual:

SHOW GRANTS;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Se você usar a ferramenta mysql, a saída poderá não ser legível. Para corrigir isso, você pode exibir a saída no layout vertical:

SHOW GRANTS\G

É equivalente à seguinte afirmação:

SHOW GRANTS FOR CURRENT_USER\GLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

e

SHOW GRANTS FOR CURRENT_USER()\GLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que ambas CURRENT_USERas CURRENT_USER()funções e retornam o usuário conectado no momento.

2) Usando a instrução SHOW GRANTS para exibir os privilégios concedidos a um usuário

Primeiro, crie um novo banco de dados chamado vehicles:

CREATE DATABASE vehicles;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, selecione o banco de dados vehicles :

USE vehicles;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, crie uma nova tabela chamada carsno vehiclesbanco de dados:

CREATE TABLE cars (
    id INT AUTO_INCREMENT,
    make VARCHAR(100) NOT NULL,
    model VARCHAR(100) NOT NULL,
    PRIMARY KEY (id)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, crie um novo usuário chamado musk@localhost:

CREATE USER musk@localhost 
IDENTIFIED BY 'Super1Pass!';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quinto, mostre os privilégios padrão concedidos ao usuário musk@localhost:

SHOW GRANTS 
FOR musk@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar subsídios

O GRANT USAGEé sinônimo de nenhum privilégio. Por padrão, quando um novo usuário é criado, ele não possui privilégios.

Sexto, conceda todos os privilégios no vehiclesbanco de dados ao usuário musk@localhost:

GRANT ALL 
ON vehicles.* 
TO musk@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, mostre os privilégios concedidos ao usuário musk@localhost:

SHOW GRANTS 
FOR musk@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar concessões para um exemplo de usuário

3) Usando a instrução SHOW GRANTS para exibir os privilégios concedidos para uma função

Primeiro, crie uma nova função chamada writer@localhost:

CREATE ROLE writer@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, mostre os privilégios concedidos para a função writer@localhost:

SHOW GRANTS 
FOR writer@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar subsídios para uma função

Terceiro, conceda privilégios SELECT, INSERT, UPDATEe DELETEno vehiclesbanco de dados para writer@localhost:

GRANT 
    SELECT, 
    INSERT, 
    UPDATE, 
    DELETE
ON vehicles.*
TO writer@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, mostre os privilégios concedidos para a função writer@localhost:

SHOW GRANTS 
FOR writer@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar subsídios para um exemplo de função

4) Usando SHOW GRANTS com exemplo de cláusula USING

Primeiro, crie uma nova conta de usuário chamada jame@localhost:

CREATE USER jame@localhost
IDENTIFIED BY 'Secret@Pass1';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, conceda o EXECUTEprivilégio ao usuário jame@localhost:

GRANT EXECUTE 
ON vehicles.* 
TO jame@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, conceda a função writer@localhostao usuário jame@localhost:

GRANT writer@localhost
TO jame@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quarto, exiba os privilégios concedidos ao usuário jame@localhost:

SHOW GRANTS 
FOR jame@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por fim, use a USINGcláusula na SHOW GRANTSinstrução para exibir os privilégios associados à writer@localhostfunção:

SHOW GRANTS 
FOR jame@localhost 
USING writer@localhost;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )
mostrar concessões para um usuário com cláusula using

Resumo

  • Use a SHOW GRANTSinstrução MySQL para exibir privilégios concedidos a um usuário ou função.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *