User Account Control no MySQL
Seminário: User Account Control no MySQL. Pesquise 861.000+ trabalhos acadêmicosPor: etoffuli • 18/11/2013 • Seminário • 692 Palavras (3 Páginas) • 354 Visualizações
Gerenciamento de Permissão em Base de dados
Prof. Marcelo Siedler
Objetivos do documento:
• Apresentar os conceitos relacionados a permissão de usuários em bases de dados.
Gerenciando contas de usuários no MYSQL
O MySQL permite o gerencimanto de contas de usuários de forma que, dependendo da aplicação que irá utilizar o sistema, pode-se definir permissões de acessos adequadas, visando evitar que o usuário realize operações que o mesmo não está apto ou visualize dados não disponíveis para ele.
CRIANDO USUÁRIOS
O comando "create user" é a forma mais rápida de criar um usuário e definir sua senha.
mysql> CREATE USER fulano IDENTIFIED BY 'senha';
Saia do prompt MySQL e entre com o usuário novo:
# mysql –u fulano -p
mysql>
O usuário é criado mas o mesmo não tem permissão nenhuma na base de dados, podemos tentar visualizar o conteúdo das bases de dados ou criar nossa base de dados específica que não será possível realizar as operações.
Para isso precisamos gerenciar as permissões de usuário através dos comandos GRANT e REVOKE que veremos posteriormente.
Para excluir o usuário:
mysql> DROP USER fulano;
Alterar senha do usuário (exceto root):
SET PASSWORD FOR 'estagiario' = PASSWORD('nova_senha');
Comandos GRANT e REVOKE
Os comandos GRANT e REVOKE permitem aos administradores do sistema criar usuários e conceder e revogar direitos aos usuários do MySQL em quatro níveis de privilégios:
• Nível Global: Privilégios globais aplicam para todos os bancos de dados em um determinado servidor. Estes privilégios são armazenados na tabela mysql.user. GRANT ALL ON *.* e REVOKE ALL ON *.* concederão e revogarão apenas privilégios globais.
• Nível dos bancos de dados: Privilégios de bancos de dados aplicam-se a todas as tabelas em um determinado banco de dados. Estes privilégios são armazenados nas tabelas mysql.db e mysql.host. GRANT ALL ON db.* e REVOKE ALL ON db.* concederão e revogarão apenas privilégios de banco de dados.
• Nível das tabelas: Privilégios de tabelas aplicam-se a todas as colunas em uma determinada tabela. Estes privilégios são armazenados na tabela mysql.tables_priv. GRANT ALL ON db.table e REVOKE ALL ON db.table concederão e revogarão apenas privilégios de tabelas.
• Nível das colunas: Privilégios de colunas aplicam-se a uma única coluna em uma determinada tabela. Estes privilégios são armazenados na tabela mysql.columns_priv.
Para instruções de níveis de tabela e coluna estão disponíveis os seguintes níveis de privilégios:
ALL [PRIVILEGES]
Configura todos os privilégios simples exceto WITH GRANT OPTION
ALTER
Permite o uso de ALTER TABLE
CREATE
Permite o uso de CREATE TABLE
CREATE TEMPORARY TABLES
Permite o uso de CREATE TEMPORARY TABLE
DELETE
Permite o uso de DELETE
DROP
Permite o uso de DROP TABLE.
EXECUTE
Permite que o usuário execute stored procedures (MySQL 5.0)
FILE
Permite o uso de SELECT ... INTO OUTFILE e LOAD DATA INFILE.
INDEX
Permite o uso de CREATE INDEX e DROP INDEX
INSERT
Permite o uso de INSERT
LOCK TABLES
Permite o uso de LOCK TABLES em tabelas nas quais se tem o privilégio SELECT.
PROCESS
Permite o uso de SHOW FULL PROCESSLIST
REFERENCES
Para o future
...