Aula - 4 Apostila Autenticação e Gerenciamento de Usuários
Aula - 4 Apostila Autenticação e Gerenciamento de Usuários
Aula - 4 Apostila Autenticação e Gerenciamento de Usuários
com
Curso 801
Administração
PostgreSQL com Alta
Performance
Versão 2015_3.0
2
Administração PostgreSQL com Alta
Performance
Sidymar Ramos Prexedes / [email protected]
Sidymar Ramos Prexedes / [email protected]
Autenticação e Gerenciamento
de Usuários
Objetivos da aula:
➢Papéis de usuário
➢Concessão de privilégios
➢Papéis de grupo
➢Tipos de privilégio
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
IT Experience
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Papéis e privilégios
Papéis e usuários
Papéis e privilégios
Papéis de usuários
Ou
Papéis de usuário
Papéis de usuários
Concessão de Privilégios
Concessão de privilégios
Concessão de Privilégios
10
Papéis de grupo
11
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
12
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Tipos de privilégios
● SELECT ● DELETE
● INSERT ● TRUNCATE
● UPDATE ● REFERENCES
13
Tipos de privilégio
A lista a seguir mostra todos os privilégios que podem ser utilizados com
GRANT e REVOKE.
SELECT: Permite executar o comando SQL SELECT, que permite visualizar dados.
Permite, também, o comando exclusivo do PostgreSQL COPY TO.
Para permitir os privilégios UPDATE e DELETE, é obrigatória também a permissão de
Pode ser atribuído a sequências para permitir ler o valor atual.
INSERT: Permite INSERT, inserir novos registros.
Permite, também, o comando exclusivo do PostgreSQL COPY FROM.
Tipos de privilégios
● TRIGGER ● EXECUTE
●
CREATE ●
USAGE
● CONNECT ● ALL
14
CREATE: Pode ser atribuído a bancos de dados, permitindo ao papel criar novos
Pode ser atribuído a schemas, permitindo ao papel criar novos objetos no schema.
Pode ser atribuído a tablespaces, permitindo ao papel criar ou mover tabelas, índices
e arquivos temporários para dentro da tablespace.
O PostgreSQL trabalha com privilégios padrões para certos tipos de objetos. Todos
os bancos de dados possuem privilégio CONNECT para todos, PUBLIC, portanto, ao
remover o privilégio CONNECT de um papel, ele continuará podendo se conectar ao
banco de dados, até que o privilégio seja também removido do banco de dados para
todos.
Sidymar Ramos Prexedes / [email protected]
TEMPORARY e TEMP
Ambas as formas são válidas.
Este privilégio é dado sobre bancos de dados, e permitem ao papel a criação de
tabelas temporárias.
EXECUTE
Único privilégio associado a funções, permite a execução delas.
USAGE
Único privilégio associado a linguagens procedurais, permitem ao papel criar novas
funções baseadas na linguagem.
Nota Importante:
No PostgreSQL existe um pseudo grupo chamado PUBLIC, do qual todos os outros
papéis fazem parte. Em outras palavras pode-se dizer que todo papel existente terá a
soma do privilégios concedidos diretamente a ele, mais os privilégios de um possível
papel de grupo e mais os privilégios concedidos ao PUBLIC.
16
Campo TYPE
local
➢ Conexão por Unix Domain Sockets;
➢ Nem todos os clientes aceitarão conectar-se por este
método;
➢ O psql tentará se conecta por socket local se não for
especificada a opção -h;
➢ Se nenhuma linha do pg_hba.conf contiver este valor, a
conexão por socket será totalmente desativada.
17
Conexão por Unix Domain Sockets, ou seja, conexão por socket do sistema
operacional, sem o uso de rede ou da interface loopback (localhost).
O psql tentará se conecta por socket local se não for especificada a opção -h.
Os aplicativos baseados em libpq têm o mesmo comportamento. Na opção -h pode
ser também passado o diretório do socket.
Sidymar Ramos Prexedes / [email protected]
Campo TYPE
host
➢ TCP/IP remoto ou local;
18
Observe sempre quais interfaces de rede estão sendo utilizadas para escuta
na configuração listen_address do arquivo postgresql.conf.
Sidymar Ramos Prexedes / [email protected]
Campo TYPE
hostssl
➢ Similar à opção host, somente SSL.
➢ O PostgreSQL deve estar compilado com suporte a SSL
(biblioteca OpenSSL disponível);
➢ Deve estar ativa em postgresql.conf;
➢ Todas as cifras da biblioteca OpenSSL.
hostnossl
➢ Exatamente o oposto de hostssl;
➢ Somente conexões não criptografadas serão aceitas.
19
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Campo DATABASE
20
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Campo USER
➢ Especificar usuário;
conexão;
21
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Campo CIDR-ADDRESS
22
Esta é a única coluna que pode conter de zero a dois valores separados por
espaço, sendo aceitas. Para linhas do tipo local, este campo não deve ser
especificado (nenhum valor na coluna, coluna ignorada)
Campo METHOD
23
Campo METHOD
trust
➢ Menos seguro;
24
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Campo METHOD
reject
25
Útil quando existe uma rede grande onde apenas alguns hosts devem ser
excluídos. Método utilizado para realizar blacklist. Também utilizado quando colocado
no topo do arquivo para bloquear todos os acessos ao banco de dados em caso de
necessidade de manutenção.
Sidymar Ramos Prexedes / [email protected]
Campo METHOD
md5
➢ Senha criptografada;
26
Uma senha deverá ser fornecida pelo usuário, o banco de dados guarda esta
senha no formato MD5. A aplicação cliente é responsável por prover a criptografia (o
que é feito pela libpq), ou seja, a senha viajará criptografada pela rede. É o método
preferido para conexões não SSL. É o método mais usado na prática.
Sidymar Ramos Prexedes / [email protected]
Campo METHOD
password
27
Não utilize em redes não privadas e/ou sujeitas a inspeção de pacotes. Pode
ser o método de autenticação obrigatório para o pgpool-II em alguns modos de
operação.
Sidymar Ramos Prexedes / [email protected]
Campo METHOD
➢ Campo extra:
map=[nome do mapa]
campos, no formato:
28
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Campo METHOD
Ident → peer
➢ Usuário do S.O é o mesmo do Postgres;
29
Para conexões locais, desde a versão 9.0 deve ser utilizado o método ``peer''.
Campo METHOD
● gss ● radius
● sspi ● cert
● krb5 ● pam
● ldap
30
Laboratório Dexter
31
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
Configurar usuário da aplicação:
# su - aluno
1
$ psql dexter
2
=# GRANT SELECT ON
3
banners,clientes,conteudos,funcionarios,menus,perfis
TO dexter;
=# \q
4
$ exit
5
32
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
....
33
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
=# vim /etc/postgresql/9.4/main/postgresql.conf
2
listen_addresses = '*'
34
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina WebServer
# apt-get update
4
# apt-get upgrade
5
35
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina WebServer
10 =# \q
36
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
Enquanto a máquina WebServer estiver
conectado à máquina DB Master:
37
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
Ferramentas do S.O. e View do PostgreSQL:
1# ps aux | grep postgres
3# su - postgres
4$ psql dexter
5=# \x
38
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
39
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
40
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
Adicionar usuários da base LDAP no Postgres:
# su – postgres
1
$ psql dexter
2
=# \q
5
$ exit
6
41
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina DB Master
Permissões de acesso para usuários LDAP:
# vim /etc/postgresql/9.4/main/pg_hba.conf
7
....
42
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina WebServer
Permissões de acesso para usuários LDAP:
9# psql -h 192.168.200.50 -d dexter -U suporte
10 =# \d
11 =# \x
43
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
44
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina Linux Interna
45
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina Linux Interna
46
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Laboratório Dexter
Executar os comandos na
máquina Linux Interna
47
Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]
Próximos Passos
Mãos à obra!
48
Sidymar Ramos Prexedes / [email protected]