Devamlı unuttuğum ve kimi zaman karıştırdığım için PostgreSQL üzerinden kullanıcı ekleyip temel veritabanı işlemlerini yazacağım.
TL;DR
sudo -u postgres psql
CREATE DATABASE <db_name>;
CREATE USER <db_operator_name> WITH encrypted PASSWORD '<password>';
ALTER USER <db_operator_name> SET client_encoding TO 'utf8';
ALTER USER <db_operator_name> SET default_transaction_isolation TO 'read committed';
ALTER USER <db_operator_name> SET TimeZone TO 'Europe/Istanbul';
GRANT ALL PRIVILEGES ON DATABASE <db_name> TO <db_operator_name>;
REVOKE CONNECT ON DATABASE <db_name> FROM PUBLIC, <db_operator_name>;
İşlemlere başlamak için postgresql üzerinde consolu açmalıyız.
sudo -u postgres psql
Konsolu açtığımızda normal veritabanı işlemlerini yapabiliriz.
Veritabanı Oluşturma
CREATE DATABASE <db_name>;
Kullanıcı Oluşturma
CREATE USER <db_operator_name> WITH encrypted PASSWORD '<password>';
Karakter Kodlama, Timezone ve Default Isolation Tanımlama
ALTER USER <db_operator_name> SET client_encoding TO 'utf8';
ALTER USER <db_operator_name> SET default_transaction_isolation TO 'read committed';
ALTER USER <db_operator_name> SET TimeZone TO 'Europe/Istanbul';
Kullanıcıya Oluşturulan Veritabanı Üzerinde Yetkilendirme Yapmak
GRANT ALL PRIVILEGES ON DATABASE <db_name> TO <db_operator_name>;
PUBLIC Ayrıcalıklarından kurtulmak
REVOKE CONNECT ON DATABASE <db_name> FROM PUBLIC, <db_operator_name>;
Gerekirse Public Yetkilendirmeleri Düzeltme
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to <db_operator_name>;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to <db_operator_name>;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public to <db_operator_name>;