140 likes | 234 Views
BANCO DE DADOS EM APLICATIVOS WEB Aula 15. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com. Agenda. Gestão de usuário Exercícios Laboratório. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com.
E N D
BANCO DE DADOS EM APLICATIVOS WEBAula 15 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Agenda • Gestão de usuário • Exercícios Laboratório. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 6
Gestão de usuario • Lista de previlégios : Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 7
Gestão de usuario • Lista de previlégios - Continuação: Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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: • 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 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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@localhostIDENTIFIED BY "12345"; • Para listar os privilégios deste usuário utilize o comando: SHOW GRANTS FOR teste@localhost; Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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"; Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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] ... Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 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. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/10/2014 13
BIBLIOGRAFIA Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com