Os privilégios MySQL controlam exatamente o que um utilizador pode e não pode fazer dentro de uma base de dados. O Painel Nobregas MySQL oferece 18 privilégios individuais mais o atalho ALL PRIVILEGES. Compreender cada um ajuda-o a conceder o nível correto de acesso para cada caso de uso.
Tabela de Referência de Privilégios
| Privilégio | Categoria | Descrição |
|---|---|---|
| SELECT | Dados | Ler linhas de tabelas |
| INSERT | Dados | Adicionar novas linhas a tabelas |
| UPDATE | Dados | Modificar valores em linhas existentes |
| DELETE | Dados | Remover linhas de tabelas |
| CREATE | Estrutura | Criar novas tabelas |
| ALTER | Estrutura | Alterar estrutura de tabelas (colunas, tipos) |
| DROP | Estrutura | Eliminar tabelas e vistas |
| INDEX | Estrutura | Criar e remover índices |
| REFERENCES | Estrutura | Criar restrições de chave estrangeira |
| CREATE TEMPORARY TABLES | Admin | Criar tabelas temporárias por sessão |
| LOCK TABLES | Admin | Bloquear tabelas para acesso exclusivo |
| CREATE VIEW | Admin | Criar tabelas virtuais (vistas) |
| SHOW VIEW | Admin | Ver a definição SQL de vistas |
| CREATE ROUTINE | Admin | Criar stored procedures e funções |
| ALTER ROUTINE | Admin | Modificar ou eliminar stored procedures |
| EXECUTE | Admin | Executar stored procedures e funções |
| EVENT | Admin | Criar e gerir eventos agendados |
| TRIGGER | Admin | Criar e gerir triggers de tabelas |
Privilégios de Dados — Explicação Detalhada
SELECT
Permite ao utilizador ler dados usando consultas SELECT. Este é o privilégio mais fundamental. Sem ele, o utilizador não consegue obter qualquer informação das tabelas. Necessário para qualquer tipo de relatório, apresentação ou obtenção de dados.
INSERT
Permite ao utilizador adicionar novas linhas com instruções INSERT. Necessário para submissões de formulários, registos de utilizadores, logging e qualquer operação que crie novos registos.
UPDATE
Permite ao utilizador modificar linhas existentes com instruções UPDATE. Necessário para editar perfis, alterar definições, atualizar contagens de inventário e operações similares.
DELETE
Permite ao utilizador remover linhas com instruções DELETE. Necessário para remover registos, limpar dados antigos e gerir conteúdo.
Privilégios de Estrutura — Explicação Detalhada
CREATE
Permite criar novas tabelas usando CREATE TABLE. A maioria das aplicações só precisa disto durante a configuração inicial ou ao executar migrações.
ALTER
Permite modificar a estrutura de tabelas com ALTER TABLE — adicionar, renomear ou remover colunas, alterar tipos de dados e modificar índices. Essencial durante migrações mas raramente necessário em produção.
DROP
Permite eliminar tabelas e vistas com DROP TABLE ou DROP VIEW. Este é um privilégio destrutivo — um utilizador com DROP pode remover permanentemente uma tabela inteira e todos os seus dados.
INDEX
Permite criar e remover índices em tabelas. Índices aceleram consultas mas podem tornar escritas mais lentas. Normalmente só necessário para administradores de base de dados ou ferramentas de migração.
REFERENCES
Permite criar restrições de chave estrangeira entre tabelas. Apenas relevante para bases de dados que usam integridade relacional com definições de FOREIGN KEY.
Privilégios de Administração — Explicação Detalhada
CREATE TEMPORARY TABLES
Permite criar tabelas temporárias que só existem para a sessão de base de dados atual. Útil para consultas complexas que precisam de armazenamento intermediário de resultados.
LOCK TABLES
Permite bloquear tabelas explicitamente com LOCK TABLES. Necessário para operações que requerem acesso exclusivo para prevenir modificações concorrentes.
CREATE VIEW
Permite criar vistas — tabelas virtuais definidas por uma consulta SQL. Vistas simplificam consultas complexas e podem restringir colunas visíveis.
SHOW VIEW
Permite visualizar a instrução CREATE VIEW por trás de uma vista existente. Necessário para depuração ou inspeção de definições de vistas.
CREATE ROUTINE
Permite criar stored procedures e funções. Estes são programas SQL reutilizáveis armazenados dentro da base de dados.
ALTER ROUTINE
Permite modificar ou eliminar stored procedures e funções existentes.
EXECUTE
Permite executar stored procedures e funções com instruções CALL. Um utilizador pode precisar de EXECUTE sem CREATE ROUTINE se apenas precisar de executar procedures criadas por outros.
EVENT
Permite criar, modificar e eliminar eventos agendados — o agendador de tarefas integrado do MySQL para executar SQL em intervalos especificados.
TRIGGER
Permite criar e eliminar triggers — ações SQL automáticas que disparam quando linhas são inseridas, atualizadas ou eliminadas numa tabela.
ALL PRIVILEGES
Marcar ALL PRIVILEGES concede todos os privilégios listados acima simultaneamente. É um atalho de conveniência equivalente a marcar todos os 18 checkboxes individuais. Use-o para utilizadores de confiança que precisam de controlo completo sobre uma base de dados.
Escolher os Privilégios Corretos
| Caso de Uso | Privilégios Recomendados |
|---|---|
| Relatórios apenas de leitura | SELECT |
| Aplicação web padrão | SELECT, INSERT, UPDATE, DELETE |
| App com migrações | SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX |
| Acesso admin total | ALL PRIVILEGES |
| Executor de stored procedures | SELECT, EXECUTE |