Prévia do material em texto
____________________________________________ATIVIDADE DA AULA 07
Você deverá responder as questões a seguir e enviá-las por
meio do Portfólio – ferramenta do ambiente de aprendizagem
UNIGRANET. Em caso de dúvidas, envie mensagem para o
e-mail felipe.perez@unigran.br
Faça uma pesquisa na internet da utilização do Gerenciamento de Usuários e sua
aplicação no MySQL. Deverá conter as vantagens, utilização e pelo menos um
exemplo.
Resp.
O MySQL apresenta uma estratégia para controle de acessos bastante flexível e
robusta que permite controlar as ações de cada usuário em diversos níveis dentro do
sistema. Portanto, é possível controlar quais os comandos cada usuário pode executar,
bem como em qual nível de dados: em apenas um banco de dados, tabela ou coluna.
Além disto, pode-se fazer um controle apurado levando-se em conta o host
(máquina cliente) de onde a conexão com o servidor MySQL foi estabelecida. Desta
forma, é factível que a partir do host local o usuário possua privilégios distintos dos que
estão disponíveis quando o acesso é feito a partir de um host remoto.
Assim, torna-se viável uma definição de privilégios de forma a conceder apenas
os acessos necessários a cada aplicação que utiliza o MySQL, evitando que sejam feitos
acessos indevidos aos dados.
Para criar um usuário deve ser utilizado o comando SQL CREATE USER:
CREATE USER 'paulo'@'localhost' IDENTIFIED BY '@[cont12#';
Para remover um usuário existente deve ser utilizado o comando DROP USER:
DROP USER 'paulo'@'localhost';
O sistema de privilégios do MySQL garante que todos usuários possam fazer
exatamente as operações que lhe é permitido. Quando você conecta a um servidor
MySQL, sua identidade é determinada pela maquina de onde você conectou e o nome
de usuário que você especificou.
O sistema concede privilégios de acordo com sua identidade e com o que você
deseja fazer.
Ao conceder algum privilégio ao usuário, ele poderá executar o comando que ele
recebeu o privilégio em um determinado local específico. Os mais comuns são:
mailto:felipe.perez@unigran.br
SELECT, INSERT, UPDATE, ALTER, DROP, INDEX e GRANT OPTION. A sintaxe
é:
GRANT priv [(colunas)] [, priv [(colunas)]] ...
ON {*.* | db.* | db.tabela}
TO usuario [IDENTIFIED BY 'senha']
[, usuario [IDENTIFIED BY 'senha']] ...
[WITH [GRANT OPTION |
MAX_QUERIES_PER_HOUR contador |
MAX_UPDATES_PER_HOUR contador |
MAX_CONNECTIONS_PER_HOUR contador]]
Limitando os recursos por usuário
O gerenciamento de três recursos é introduzido no nível de usuário individual:
• Número de todas as consultas por hora: Todos os comandos que podiam ser
executados por
um usuário.
• Número de todas as atualizações por hora: Qualquer comando que altera qualquer
tabela ou
banco de dados.
Número de conexões feitas por hora: Novas conexões abertas por hora.
Todos os usuários não são limitados por padrão no uso dos recursos acima, a menos que
os limites sejam garantidos a eles. Estes limites podem ser concedidos apenas através do
GRANT (*.*) global, usando esta sintaxe:
GRANT ... WITH MAX_QUERIES_PER_HOUR N1
MAX_UPDATES_PER_HOUR N2
MAX_CONNECTIONS_PER_HOUR N3;