Como diz o titulo esta publicação refere-se ao motor de base de dados MySQL, e a situação que surgiu tinha como base a atribuição de permissões a um determinado utilizador a várias tabelas, mas não todas.
Esta operação mesmo com programa de gestão de bases de dados como o MySQL Workbench é um operação que se torna penosa, visto que usa sistemas de árvore para navegar e vistos para marcar as permissões.
A maneira mais rápida então que arranjei de resolver isto, é através da criação de um script para atribuir as permissões ao utilizador por tabela dentro da base de dados.
Execute o seguinte SQL.
Nota: Garanta que o seu utilizador tem permissões totais dentro do MySQL, porque o script vai consultar tabelas de controle do motor.
Antes de prosseguir, já deve ter o utilizador criado no MySQL
-- Cria a linha a utilizar na próxima execução, atribuía mais permissões se assim se justificar
SELECT CONCAT("GRANT SELECT, INSERT, UPDATE, DELETE ON ", TABLE_NAME," TO 'testeUser'@'localhost' ;") AS ex
-- Aqui vai ao motor requisitar todas as tabelas
FROM INFORMATION_SCHEMA.TABLES
-- Indica que só quer as tabelas da base de dados indicada no WHERE
WHERE TABLE_SCHEMA = "NomeBaseDados"
-- Se pretender excluir algumas tabelas indique o nome das mesmas
AND TABLE_NAME NOT IN ('tblPagamentos','tblBancos');
Nota: se pretender incluir apenas algumas tabelas as linha acima deverá ser:
AND TABLE_NAME IN ('tblPagamentos','tblBancos');
O resultado final, deverá ser exportado para ficheiro de texto.
Próximo passo, executar o que está no ficheiro de texto.
E por fim executar o commando :
FLUSH PRIVILEGES;
Para que todas as permissões se tornem activas.
Sem comentários:
Enviar um comentário