postgresql'deki roller ve izinler hakkında tam eğitim
postgresql'deki roller ve izinler hakkında tam eğitim

PostgreSQL'deki roller ve izinler hakkında kapsamlı eğitim

Bu yazıda PostgreSQL'de rol oluşturma, izin verme, izinleri yönetme, grup rolleri oluşturma ve erişimi kontrol etme konularını eksiksiz ve pratik bir şekilde öğreneceksiniz.
0 Hisse senetleri
0
0
0
0

giriiş

PostgreSQL, kullanıcıları ve erişim düzeylerini yönetmek için gelişmiş bir sisteme sahip, güçlü ve kurumsal düzeyde bir veritabanıdır. PostgreSQL'de geleneksel anlamda "Kullanıcı" diye bir şey yoktur; her şey tek bir varlıktır. Rol Bir kullanıcının veya bir grubun davranışını sergileyebilen.
Rollerin ve izinlerin doğru kullanımı güvenliği artırır, veritabanlarını daha iyi yönetir ve istenmeyen erişimleri engeller; özellikle PostgreSQL'i bir VPS'de çalıştırırken.


1. Roller ve İzinlerle Çalışmanın Ön Koşulları

Başlamak için aşağıdakilere sahip olmanız gerekir:

  • Bir Linux VPS (Ubuntu 20.04 veya 22.04 gibi)

  • PostgreSQL kuruldu

  • Kök veya sudo kullanıcı erişimi

  • Komut satırına temel giriş

Postgres hesabınıza giriş yapın:

sudo -i -u postgres
psql

2. PostgreSQL'de Rolleri Görüntüleme

Mevcut tüm rolleri görüntülemek için:

\du

Örnek çıktı:

Role name | Attributes | Member of
-----------+----------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replicate | {}

3. Yeni bir rol oluşturun

Yöntem 1: psql içinden bir rol oluşturun

CREATE ROLE user_demo;

Bu rolün henüz oturum açma izni yok.

Yöntem 2: Belirli özelliklere sahip bir rol oluşturma

Örnek: Şifre ile giriş yapılabilen rol:

CREATE ROLE user_demo WITH LOGIN PASSWORD 'StrongPass123';

Yöntem 3: CLI aracılığıyla bir rol oluşturun

createuser --interactive

Bu yöntemde size şu soru sorulacaktır:

  • Süper kullanıcı mı?

  • Veritabanı oluşturulmasına izin veriliyor mu?

  • Rol oluşturulmasına izin veriliyor mu?


4. PostgreSQL'de bir rolü silin

Rolü sil:

DROP ROLE user_demo;

Rol mevcut değilse bir hata oluşmasını önlemek için:

DROP ROLE IF EXISTS user_demo;

5. Rol oluştururken yapılacak ayarlar

PostgreSQL, bir Rol oluştururken önemli özellikleri belirtmenize olanak tanır:

CREATE ROLE app_user
WITH LOGIN
CREATEDB
NOCREATEROLE
PASSWORD 'ExamplePass';

En önemli özellikler:

ÖzellikAçıklama
GİRİŞ YAPMAKVeritabanına erişim izni
CREATEDBVeritabanı oluşturma izni
YARATICI ROLERol oluşturma izni
MİRAS ALMAKAnne rolünden izin almak
SÜPER KULLANICITam erişim
ŞİFREŞifre
GEÇERLİLİK TARİHİSon kullanma tarihini ayarlayın

6. ALTER ROLE ile Rol ayarlarını değiştirin

Daha sonra bir rolün izinlerini değiştirmek isterseniz:

Giriş Ekleme:

ALTER ROLE app_user WITH LOGIN;

Giriş yapma yeteneğini kaldırın:

ALTER ROLE app_user WITH NOLOGIN;

Şifre değiştir:

ALTER ROLE app_user WITH PASSWORD 'NewPassword!';

7. PostgreSQL'e başka bir rolle giriş yapın

1) İlk önce rol şifresini ayarlayın:

\password app_user

2) psql'den çıkın:

\q

3) Yeni bir rol olarak giriş yapın:

psql -U app_user -d postgres -h 127.0.0.1 -W

8. İzinleri test etmek için bir tablo oluşturun

CREATE TABLE employees ( id serial PRIMARY KEY, name varchar(50), created_at timestamp DEFAULT NOW() );

9. PostgreSQL'de İzin Verme (GRANT)

Belirli bir iznin verilmesi:

GRANT SELECT ON employees TO app_user;

INSERT izni:

GRANT INSERT ON employees TO app_user;

TÜM Ayrıcalıkları Vermek:

GRANT ALL ON employees TO app_user;

Tüm kullanıcılara erişim izni verilmesi (Genel):

GRANT SELECT ON employees TO PUBLIC;

10. Her tablo için izinleri görüntüleyin

\z employees

11. İzinleri iptal et (REVOKE)

Belirli bir rolden Ekleme iznini iptal edin:

REVOKE INSERT ON employees FROM app_user;

Tüm izinleri iptal et:

REVOKE ALL ON employees FROM app_user;

Genel izni kaldır:

REVOKE SELECT ON employees FROM PUBLIC;

12. PostgreSQL'de Grup Rolü

Grup rolü, diğer rollerin üyesi olduğu bir roldür; örneğin Linux grupları gibi.

1) Bir Grup Rolü Oluşturun:

CREATE ROLE dev_team;

2) Gruba kullanıcı ekleme:

GRANT dev_team TO app_user; GRANT dev_team TO backend_user;

3) Üyelik Kontrolü:

\du

4) Grup rolünün kullanımı:

SET ROLE dev_team;

Bu andan itibaren dev_team'in sahip olduğu tüm yetkiler aktif hale gelecektir.

5) INHERIT ile otomatik kalıtım

ALTER ROLE app_user WITH INHERIT;

13. Bir rolü silmeden önce nesnelerin sahipliğini aktarın

Bir rolü silmek istiyorsanız ancak tablo veya veritabanı ona aitse:

Tablo sahibini değiştir:

ALTER TABLE employees OWNER TO postgres;

Daha sonra rolü silin:

DROP ROLE dev_team;

14. VPS'de Rolleri Kullanırken Önemli Güvenlik İpuçları

  • Her servisin (Backend, Cronjob, Worker) ayrı bir Rolü olmalıdır.

  • Güvenlik ipucu olarak düşük erişimli roller kullanın.

  • Veritabanı mimarisinde hiçbir uygulamanın rolü yoktur. süper kullanıcı Verme.

  • Rol şifreleri güçlü olmalı ve son kullanma tarihleri olmalıdır.

  • Örneğin, erişimi yönetmek için her zaman grupları kullanın.


Çözüm

PostgreSQL'deki neredeyse her şey rol tabanlıdır. Tek bir yönetim modeliyle kullanıcılar, gruplar, sistem rolleri ve uygulama rolleri oluşturabilirsiniz. Ayrıca, araçlar HİBE ETMEK Ve GERİ ÇEKMEK Tablolar, şemalar, veritabanları ve fonksiyonlar üzerinde tam kontrol sağlarlar.

PostgreSQL'de doğru rol yönetimi, özellikle VPS'lerde çok önemlidir, çünkü tüm veritabanı sisteminizin güvenliği ve istikrarı buna bağlıdır.

[Toplam: 0   Ortalama: 0/5]
Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz