BANCO DE DADOS EM APLICATIVOS WEB
Aula 15
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
1
Agenda
Gestão de usuário
Exercícios Laboratório.
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
2
Gestão de usuario
Em todos bancos de dados para garantir a
integridade de dados e segurança é necessario praticar
a gestao de usuários.
Gestão de usuário, significa, entre outras coisas,
limitar/controlar acesso aos recursos do banco de
dados.
Controle de acesso se da através dos previlégios
concedidos aos usuarios.
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
3
Gestão de usuario
Pode-se conceder previlegios diferentes por host de onde
o usuario pode estabelecer conexão.
É possivel determinar quais comandos podem ser
executados por host, por exemplo localhost.
O MySQL armazena as informações dos usuarios em 4
tabelas no banco de dados mysql.
User
Db
Tables_priv
Columns_priv
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
4
Gestão de usuario
Tabela user
Armazena informações de todos usuário do banco e
previlégios globais.
Tabela DB
Armazena os previlégios dos usuários especificos de
um banco de dados
Tabelas tables_priv e columns_priv armazenam os
previlégios associados a tabelas e colunas
Recomenda-se o acesso a essas tabelas somente ao
administrador do banco de dados.
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
5
Gestão de usuario
Criação de usuário e privilégios
Grant – Para usuários inexistentes força sua criação,
Para usuários existentes adiciona privilégios aos já
existentes.
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]]
** [] indica comando opcional
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
6
Gestão de usuario
Lista de previlégios :
Privilégio
ALL [PRIVILEGES]
ALTER
Todos os privilégios exceto GRANT OPTION
Permite executar ALTER TABLE
CREATE
Permite executar CREATE TABLE
CREATE
TEMPORARY
TABLES
DELETE
Permite executar CREATE TEMPORARY TABLE
Permite executar DELETE
DROP
Permite executar DROP TABLE
EXECUTE
FILE
Permite executar stored procedures (MySQL 5.0)
Permite executar SELECT ... INTO OUTFILE e LOAD DATA INFILE
INDEX
Permite executar CREATE INDEX e DROP INDEX
INSERT
Permite executar INSERT
LOCK TABLES
PROCESS
05/11/2015
Descrição
Permite executar LOCK TABLES em tabelas que você tenha o privilégio SELECT
Permite executar SHOW FULL PROCESSLIST
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
7
Gestão de usuario
Lista de previlégios - Continuação:
Privilégio
Descrição
RELOAD
Permite executar FLUSH
REPLICATIO
N CLIENT
Permite ao usuário obter a localização do Master ou Slave
REPLICATIO
N SLAVE
Necessário para a replicação Slave (leitura dos eventos do log binário do Master)
SELECT
Permite executar SELECT
SHOW
DATABASES
exibe todos os bancos de dados
SHUTDOWN
Permite executar mysqladmin shutdown
SUPER
Permite executar CHANGE MASTER, KILL , PURGE MASTER LOGS e SET GLOBAL. Permite
conectar-se ao servidor uma vez, mesmo que o max_connections tenha sido atingido
UPDATE
Permite executar UPDATE
USAGE
Sinônimo para "no privileges''
GRANT
OPTION
Permite ao usuário repassar os seus privilégios
INSERT
Permite executar INSERT
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
8
Gestão de usuario
Criação de usuário e privilégios - Continuação:
Uma vez informados os privilégios do usuário, você deverá indicar o
nível ao qual o privilégio se aplica, sendo possível especificar três níveis:
*.*
Privilégio global
db.*
Qualquer tabela do banco db
db.tb
Apenas a tabela tb do banco de dados db. Para especificar apenas algumas colunas de uma determinada
tabela, estas deverão ser listadas ao lado do privilégio (priv (colunas))
Depois do nível você deverá indicar o usuário, ou a lista de usuários,
para os quais os privilégios se aplicam. No MySQL o usuário é constituído
de um nome mais o host de onde ele poderá acessar o servidor
(user@host)
Caso você não informe o host para o usuário, o MySQL assumirá "%",
isto é, todos os hosts
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
9
Gestão de usuario
Criação de usuário e privilégios - Continuação :
A senha do usuário é opcional, mas é recomendado sempre informá-la
no momento de criação do usuário, por questões de segurança
No exemplo a seguir é criado um usuário com o nome teste que pode se
conectar somente do host onde o servidor está em execução (localhost), o
usuário só poderá fazer SELECT nas colunas nome e idade da tabela
pessoa, que se encontra no banco de dados rh. A senha do usuário é
12345.
GRANT SELECT (nome, idade) ON rh.pessoa TO teste@localhost
IDENTIFIED BY "12345";
Para listar os privilégios deste usuário utilize o comando:
SHOW GRANTS FOR teste@localhost;
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 10
Gestão de usuario
Criação de usuário e privilégios - Continuação :
 Você pode especificar um conjunto de hosts utilizando o caracter "%",
neste caso é possível dar acesso a um usuário dentro de uma faixa de IPs
ou DNS.
Usuários anônimos também podem ser criados informando um nome
com o caracter espaço (" ").
No exemplo a seguir, o usuário remoto poderá executar UPDATE e
INSERT em qualquer tabela do banco de dados rh, sendo possível a
conexão ao servidor a partir de qualquer máquina no domínio
mysqlbrasil.com.br:
GRANT UPDATE, INSERT ON rh.* TO remoto@"%.mysqlbrasil.com.br"
IDENTIFIED BY "remoto";
Ou utilizando IP:
GRANT UPDATE, INSERT ON rh.* TO remoto@"200.236.13.%" IDENTIFIED BY "remoto";
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 11
Gestão de usuario
Criação de usuário e privilégios - Continuação :
 Um usuário anônimo com os mesmos privilégios do usuário remoto
seria criado da seguinte forma:
GRANT UPDATE, INSERT ON rh.* TO " "@"%mysqlbrasil.com.br"
IDENTIFIED BY "anonimo";
 A opção GRANT OPTION é utilizada para que o usuário possa
conceder os seus privilégios para outros usuários do banco.
Para remover privilegios de usuarios é utlizado o comando revoke :
REVOKE priv [(colunas)] [, priv [(colunas)]] ...
ON {*.* | db.* | db.tabela}
FROM usuario [, usuario] ...
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 12
Gestão de usuario
Criação de usuário e privilégios - Continuação :
Considerações do comando Revoke
 A parte ON do revoke deve conicidir com a part ON do GRANT que
deseja remover, caso contrário não tera efeito.
 Remove apenas previlegios do usuario , não remove usuarios.
 Remoção de usuários é feita com comando DELETE na tabela de
usuários, somente após terem sido removidos todos seus
previlégios.
 Para execução do comando DELETE é necessário ter previlegio na
tabela user do mysql (geralmente feito pelo usuario root).
DELETE FROM mysql.user WHERE user="teste" AND host="localhost";
 Finaliza-se com o comando FLUSH PRIVILEGES para atualizar os
previlegios que estao em memória.
05/11/2015
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 13
BIBLIOGRAFIA
BIBLIOGRAFIA BÁSICA
DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004.
1
2
NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison
Wesley, 2005.
SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005.
3
BIBLIOGRAFIA COMPLEMENTAR
COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus.
4
5
KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron
Books, 1999.
MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001.
6
7
SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher,
1999.
05/11/2015 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
14
Download

Memória de Aula 21/11/2011 - professorleomir