Privilégios Fornecidos pelo MariaDB


Informações sobre privilégios de usuários são armazenados nas tabelas user, db, host, tables_priv e columns_priv no banco de dados chamado MariaDB. O servidor MariaDB lê o conteúdo destas tabelas quando ele inicia e sob as circunstâncias indicadas em "Quando as Alterações nos Privilégios tem Efeito".

Os nomes usados neste manual que se referem-se aos privilégios fornecidos pelo MariaDB são vistos abaixo juntos com o nome da coluna associada com cada privilégio nas tabelas de permissão e o contexto em que o privilégio se aplica. Informações adicionais sobre o significado de cada privilégio pode ser encontrado em "A Sintaxe de GRANT e REVOKE".

Privilégio Coluna Contexto
ALTER Alter_priv tabelas
DELETE Delete_priv tabelas
INDEX Index_priv tabelas
INSERT Insert_priv tabelas
SELECT Select_priv tabelas
UPDATE Update_priv tabelas
CREATE Create_priv banco de dados, tabelas, ou índices
DROP Drop_priv banco de dados ou tabelas
GRANT Grant_priv banco de dados ou tabelas
REFERENCES References_priv banco de dados ou tabelas
CREATE TEMPORARY TABLES Create_tmp_tabela_priv administração do servidor
EXECUTE Execute_priv administração do servidor
FILE File_priv acessa a arquivos no servidor
LOCK TABLES Lock_tabelas_priv administração do servidor
PROCESS Process_priv administração do servidor
RELOAD Reload_priv administração do servidor
REPLICATION CLIENT Repl_client_priv administração do servidor
REPLICATION SLAVE Repl_slave_priv administração do servidor
SHOW DATABASES Show_db_priv administração do servidor
SHUTDOWN Shutdown_priv administração do servidor
SUPER Super_priv administração do servidor

Os priviláegios SELECT, INSERT, UPDATE e DELETE permitem realizar operações em registros nas tabelas existentes em um banco de dados.

Instruções SELECT necessitam do privilégio select somente se ele precisar recuperar registros de uma tabela. Você pode executar certas instruções SELECT mesmo sem permissão para acessar algum dos bancos de dados no servidor. Por exemplo, você pode usar o cliente MariaDB como uma simples calculadora:

mysql> SELECT 1+1;
mysql> SELECT PI()*2;

O privilégio INDEX permite a criação ou remoção de índices.

O privilégio ALTER permite utilizar ALTER TABLE.

Os privilégios CREATE e DROP permitem a criação de novos bancos de dados e tabelas, ou a remoção de bancos de dados e tabelas existentes.

Perceba que se for concedido o privilégio DROP no banco de dados MariaDB para algum usuário, este usuário pode remover o banco de dados no qual os privilégios de acesso do MariaDB estão armazenados!

O privilégio GRANT permite a você fornecer a outros usuários os privilégios que você mesmo possui.

O privilégio FILE fornece permissão para ler e escrever arquivos no servidor usando instruções LOAD DATA INFILE e SELECT ... INTO OUTFILE. Qualquer usuário que tenha este privilégio pode ler ou gravar qualquer arquivo que o servidor MariaDB possa ler ou escrever. O usuário também pode ler qualquer arquivo no diretório de banco de dados atual. O usuário não pode, no entanto, alterar qualquer arquivo existente.

Os privilégios restantes são usados para operações administrativas, que são realizadas utilizando o programa mysqladmin. A tabela abaixo mostra quais comandos do mysqladmin cada privilégio administrativos permite a execução:

Privilégio Comandos permitidos
RELOAD reload, refresh, flush-privileges, flush-hosts, flush-logs, and flush-tables
SHUTDOWN shutdown
PROCESS processlist
SUPER kill

O comando reload diz ao servidor para recarregar as tabelas de permissões. O comando refresh descarrega todas as tabelas e abre e fecha os arquivos de log. flush-privileges é um sinônimo para reload. Os outros comandos flush-* realizam funções similares ao refresh mas são mais limitados no escopo e podem ser preferíveis em alguns casos. Por exemplo, se você deseja descarregar apenas os arquivos log, flush-logs é uma melhor escolha do que refresh.

O comando shutdown desliga o servidor.

O comando processlist mostra informações sobre as threads em execução no servidor. O comando kill mata threads no servidor. Você sempre poderá mostrar ou matar suas próprias threads, mas você precisa do privilégio PROCESS para mostrar e privilégio SUPER para matar threads iniciadas por outros usuários. Leia "Sintaxe de KILL".

É uma boa idéia em geral conceder privilégios somente para aqueles usuários que necessitem deles, mas você deve ter muito cuidado ao conceder certos privilégios:

Existema algumas coisas que você não pode fazer com o sistem de privilégios do MariaDB:

Retornar