Carregando...

Categoria: PostgreSQL

Listando todas as funções (functions) disponíveis dentro do PostgreSQL

É possível visualizar todas as funções permitidas dentro da sua instância PostgreSQL através da seguinte consulta Visualizando todas as “set returning functions”: Visualizando todas as “aggregation functions”: Visualizando todas as “normal functions”: Visualizando todas as “window functions”: Outra forma… Listando funções e seus respectivos parâmetros Referências Documentação sobre a VIEW pg_proc do pg cataloghttps://www.postgresql.org/docs/current/catalog-pg-proc.html Documentação sobre a VIEW routines do information schemahttps://www.postgresql.org/docs/current/infoschema-routines.html PostgreSQL SRFhttps://www.programmersought.com/article/85851328520/

Como o Hasura armazena as permissões de acesso das roles às tabelas?

Uma das partes mais importantes do Hasura é o controle de acesso que ele faz nas tabelas, e esse controle é feito usando o conceito de roles (papéis). Um usuário pode ter várias roles diferentes. O Hasura usa basicamente uma tabela para fazer esse controle, ela é a hdb_catalog.hdb_permission Um exemplo da tabela (extraida do Hasura v 1.3.3): table_schema [PK] name table_name [PK] name role_name [PK] text perm_type [PK] text perm_def jsonb comment text is_system_defined boolean public tenant admin insert Continuação…

Replicando e Escalando o PostgreSQL

Ferramentas de replicação: Bucardo Londiste PostgreSQL Logical Replication Streaming Replication Log Shipping PgLogical Slony I Slony II PostgresBDR – 2nd Quadrant PgShard Referências Wiki do PostgreSQLhttps://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling Cheatsheet de replicação no PostgreSQL (desatualizado)https://thebuild.com/blog/2018/01/02/a-replication-cheat-sheat/

Autenticação e Autorização no Hasura

Permissões, Autenticação, e Autorização O Hasura exige que em cada requisição seja informado duas session variables: X-Hasura-Default-Role X-Hasura-Allowed-Roles Além disso, é praticamente indispensável enviar as seguintes session variable (via Header ou WebHook): X-Hasura-Role X-Hasura-User-Id A Role faz a request automaticamente assumir uma das roles cadastradas no sistema. Com o User-Id é possível fazer regras dentro das permissões ou ajudar o WebHook a identificar e colocar cabeçalhos importantes para a autorização no Hasura. Quais as limitações de Autorização no Hasura? Não Continuação…

Aplicação Backendless – Um programa “sem backend”

Aqui vai uma lista de formas de transformar o banco de dados ou seu em seu backend e se focar apenas no front-end: PostgreSQL + Hasura + Backend de Autenticação PostgreSQL + PostgREST (+ Backend de Autenticação) PostgreSQL + Postgraphile + Backend de Autenticação CouchDB + HAProxy + Lua (+ Backend de Autenticação) CouchDB + OpenResty (Nginx) + Lua (+ Backend de Autenticação) CouchDB + Kong (+ Konga) (+ Backend de Autenticação) CouchDB + Spring Cloud Gateway (+ Backend de Continuação…

Descobrindo tamanho de tabelas e índices no PostgreSQL

Referências Listando tamanho de tabelas e indiceshttps://dataedo.com/kb/query/postgresql/list-of-tables-by-the-size-of-data-and-indexes Documentação do pg_indexeshttps://www.postgresql.org/docs/current/view-pg-indexes.html Descobrindo espaço consumido – PostgreSQL Tutorialhttps://www.postgresqltutorial.com/postgresql-database-indexes-table-size/

Onde o PostgreSQL armazena as senhas dos usuários?

Ao abrir uma conexão com o PostgreSQL, geralmente você informará uma senha para se autenticar e obter acesso ao banco. Mas onde essas senhas ficam salvas? Elas são salvas de forma segura? Depende! Essas senhas são salvas na tabela pg_authid do schema pg_catalog. Essa tabela só é acessível se você estiver logado com um usuário SUPERUSER. Apenas o hash das senhas é salvo. O hash é calculado pelos algoritmos MD5 (sem sal) ou Scram-SHA-256. É sabido que o MD5 sem Continuação…

VIEWS no PostgreSQL

As VIEWs são basicamente uma forma de armazenar um SELECT dentro do banco de dados, dando a ele um nome e permitindo que ele seja acessado e consultado como se fosse uma tabela a partir do seu nome. Imagine que temos a seguinte tabela: E inserimos nela vários dados: Queremos criar uma VIEW em que tenhamos apenas partition = 2 Assim podemos chamar teste_2 como se fosse uma tabela Ao darmos EXPLAIN ANALYZE nessa consulta, percebemos que o índice é Continuação…

Hikari Connection Pool e por que você DEVE usá-lo

É a melhor biblioteca para fazer connection pools de drivers de banco de dados que usam o JDBC. ATENÇÃO! Se estiver usando PgPool ou PgBouncer entre seu software e o PostgreSQL, você não precisará do Hikari 😛 Pra que serve um Connection Pool? Se você precisa ter performance e estabilidade ao acessar o banco de dados em um software, você precisa de uma biblioteca de connection pool além da sua biblioteca de driver de conexão sql. Por quê? O padrão Continuação…