Veritabanı rolleri ve erişim denetimi

Veritabanı Tasarımı

Lis Sulmont

Curriculum Manager

Bir görünüme erişim verme ve geri alma

GRANT privilege(s) veya REVOKE privilege(s)

ON object

TO role veya FROM role

  • Yetkiler: SELECT, INSERT, UPDATE, DELETE, vb.
  • Nesneler: tablo, görünüm, şema, vb.
  • Roller: bir veritabanı kullanıcısı veya kullanıcı grubu
GRANT UPDATE ON ratings TO PUBLIC; 
REVOKE INSERT ON films FROM db_user; 
Veritabanı Tasarımı

Veritabanı rolleri

  • Veritabanı erişim izinlerini yönetin
  • Veritabanı rolü, şu bilgileri içeren bir varlıktır:
    • Rol ayrıcalıklarını tanımlar
      • Giriş yapabilir mi?
      • Veritabanı oluşturabilir mi?
      • Tabloya yazabilir mi?
    • İstemci kimlik doğrulama sistemiyle etkileşir
      • Parola
  • Roller bir veya daha fazla kullanıcıya atanabilir
  • Roller bir veritabanı kümesi kurulumunda geneldir
Veritabanı Tasarımı

Rol oluşturma

  • Boş rol
CREATE ROLE data_analyst;
  • Bazı öznitelikleri ayarlı roller
CREATE ROLE intern WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';
CREATE ROLE admin CREATEDB;
ALTER ROLE admin CREATEROLE;
1 http://bit.ly/postgresql_attributes
Veritabanı Tasarımı

Rollerden yetki GRANT/REVOKE etme

GRANT UPDATE ON ratings TO data_analyst;
REVOKE UPDATE ON ratings FROM data_analyst;

PostgreSQL'deki mevcut yetkiler:

  • SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE ve USAGE
1 http://bit.ly/postgresql_privileges
Veritabanı Tasarımı

Kullanıcılar ve gruplar (her ikisi de roldür)

  • Rol, kullanıcı ve/veya grup gibi davranabilen bir varlıktır
    • Kullanıcı rolleri
    • Grup rolleri

Dış çemberin grup rolü, içteki üç çemberin kullanıcı rolü olduğu rolleri gösteren grafik

Veritabanı Tasarımı

Kullanıcılar ve gruplar (her ikisi de roldür)

Grup rolü

CREATE ROLE data_analyst;

Kullanıcı rolü

CREATE ROLE intern WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';
Veritabanı Tasarımı

Kullanıcılar ve gruplar (her ikisi de roldür)

Grup rolü

CREATE ROLE data_analyst;

Kullanıcı rolü

CREATE ROLE alex WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';

GRANT data_analyst TO alex;
REVOKE data_analyst FROM alex;
Veritabanı Tasarımı

Yaygın PostgreSQL rolleri

Rol İzinli erişim
pg_read_all_settings Tüm yapılandırma değişkenlerini okur; normalde yalnızca süper kullanıcılara görünür olanlar dahil.
pg_read_all_stats Tüm pg_stat_* görünümlerini okur ve çeşitli istatistik uzantılarını kullanır; normalde yalnızca süper kullanıcılara görünür olanlar dahil.
pg_signal_backend Diğer arka uçlara sinyal gönderir (ör. sorguyu iptal et, sonlandır).
Daha fazlası... Daha fazlası...
1 http://bit.ly/default_roles_postgresql
Veritabanı Tasarımı

Rollerin artıları ve eksileri

Artılar

  • Kullanıcılar silinse bile roller kalır
  • Roller, kullanıcı hesaplarından önce oluşturulabilir
  • DBA'lerin zamanını kazandırır

Eksiler

  • Bazen bir rol belirli bir kullanıcıya fazla erişim verir
    • Dikkat etmeniz gerekir
Veritabanı Tasarımı

Hadi pratik yapalım!

Veritabanı Tasarımı

Preparing Video For Download...