Pazartesi, Kasım 4, 2024

PostgreSQL Üzerinde Kullanıcı, Veritabanı Oluşturma ve Yetkilendirme

yüksek çözünürlüklü postgresql logosu

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>;