Publicado em MySQL

#5 Definir os privilégios de acesso dos utilizadores às bases de dados

Por esta altura já temos a base de dados “exemplo” e o utilizador ”psi” criados.
Para que o utilizador “psi” possa utilizar a base de dados “exemplo” é necessário atribuir-lhe privilégios de acesso.
A sequência seguinte demonstra como podemos:

  1. verificar a existência da base de dados “exemplo”;
  2. verificar a existência do utilizador ‘psi’ e respectivos privilégios;
  3. atribuir ao utilizador “psi” privilégios totais sobre a base de dados “exemplo”;
  4. verificar os novos privilégios do utilizador;
  5. remover os privilégios do utilizador ‘psi’;
  6. verificar se tudo voltou à situação inicial.
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| exemplo            |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

mysql> SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON exemplo.* TO 'psi'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
| GRANT ALL PRIVILEGES ON `exemplo`.* TO 'psi'@'%'                                                   |
+----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> REVOKE ALL ON exemplo.* FROM 'psi'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'psi';
+----------------------------------------------------------------------------------------------------+
| Grants for psi@%                                                                                   |
+----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'psi'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' |
+----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Nota: Após a utilização de GRANT ou REVOKE é necessário executar o seguinte comando de forma a que as alterações tenham efeito:

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Saber mais em:

http://dev.mysql.com/doc/refman/5.1/en/grant.html
http://dev.mysql.com/doc/refman/5.0/en/revoke.html

principal100

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s