PostgreSQL - moje tipy
Pár mých tipů pro PostgreSQL
Po instalaci – změna hesla, naslouchání, ssl
- změníme heslo uživateli postgres:
# su postgres
$ psql
postgres=# ALTER USER postgres with password 'nbusr_krásné_nové_heslo_123'; - Zapneme SSL – postgresql.conf
ssl = true
(klíče a certifikáty se nacházejí v /var/lib/postgresql/8.3/main/)
- Povolíme připojení z vybraných IP adres – pg_hba.conf
host all all aaa.bbb.ccc.ddd/32 md5
- Budeme naslouchat na všech IP adresách – postgresql.conf
listen_addresses = '*'
Šifrovací a hashovací funkce
- Nainstalujeme potřebný balíček:
aptitude install postgresql-contrib
- Nainstalujeme funkce do databáze:
postgres@stroj:~$ psql NÁZEV_DATABÁZE < /usr/share/postgresql/8.3/contrib/pgcrypto.sql
V novějších verzích je to už jinak – nespouštíme ručně skript, ale zadáme příkaz v
psql
:$ psql psql (9.1.9) Pro získání nápovědy napište "help". postgres=# CREATE EXTENSION pgcrypto; CREATE EXTENSION postgres=#
- Můžeme si vytvořit funkci pro výpočet SHA-512:
CREATE OR REPLACE FUNCTION sha512(text) RETURNS text AS $$
SELECT encode(digest(decode($1,'escape'::text),'sha512'::text),'base64');
$$ LANGUAGE SQL STRICT IMMUTABLE;
Doména pro e-mail
Doména slouží pro přesnější vymezení než datový typ, ze kterého je odvozena. Můžeme ji např. omezit na hodnoty, které vyhovují regulárnímu výrazu.
CREATE DOMAIN email
AS character varying(255)
NOT NULL
CONSTRAINT email_regexp CHECK (((VALUE)::text ~
'^[_a-zA-Z0-9\\.\\-]+@[_a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,4}$'::text));
Instalace procedurálního jazyka
Doninstalujeme si podporu pro procedurální jazyk plpgsql:
#su postgres
$createlang plpgsql -d NÁZEV_DATABÁZE
$createlang -l -d NÁZEV_DATABÁZE # vypíše nainstalovaní jazyky
Přihlášení jménem z příkazové řádky
#psql -h localhost NÁZEV_DATABÁZE -U UŽIVATEL --password