PostgreSQL'in kullanıcılara karşı rolleri, izin verilmesi


27

Şu anda PostgreSQL ve MySQL arasındaki farkları öğreniyorum çünkü yeni bir projem var ve ayrıca mevcut yazılımımı MySQL'den PostgreSQL'e taşımayı düşünüyorum. Aslında ikisi arasında komutların (kullanıcılar / veritabanları / komut istemi vb. İçin) karşılaştırılmasıyla bir HTML tablosu oluşturmaya başladım. Burada bir cevabı okuduktan sonra rolebunun bir grup olarak kullanıldığını farkettim . MySQL ile iki kullanıcıları, temelde kamu (var DELETE, INSERT, SELECTve UPDATEizinleri) ve bir çift ek izinlere sahip bir yönetici kullanıcı.

Yani temelde Windows 7 komut isteminde (sadece yerel gelişim) ...

  • Rol, PostgreSQL'e özgü bir kullanıcı, grup ya da gevşek bir şekilde kullanılan terim midir?
  • Bir veritabanındaki tüm tablolar için yalnızca belirli bir kullanıcıya yalnızca belirli izinleri nasıl veririm ?
  • Bir veritabanındaki tüm tablolar için belirli bir kullanıcıya tüm izinleri nasıl verebilirim?
  • Nasıl olsa, rol kullanılırken GRANTveya REVOKEkullanıcı izinlerini kullanırken bir kullanıcıyla karşılaştırılabilir mi?

Yanıtlar:


48

Bir rol bir varlık olduğu bir kullanıcı ve / veya bir grup olarak çalışabildiği. Bir rol WITH LOGINkullanıcı olarak kullanılabilir, yani onunla giriş yapabilirsiniz. Herhangi bir rol, aynı zamanda giriş yapabileceğiniz roller de dahil olmak üzere grup olarak işlev görebilir. Dolayısıyla "kullanıcı" ve "grup", esasen rol kullanım amacını belirten terimlerdir , aralarında gerçek bir ayrım yoktur. PostgreSQL'in SQL lezzetinde bile, ikisi eş ya da daha çok eş anlamlı olarak kullanılır. Örneğin, belgeler CREATE USERşöyle diyor:

CREATE USER şimdi CREATE ROLE için bir takma addır.

Hibe vermek ... için kılavuza bakınGRANT . Muhtemelen aslında veritabanındaki tüm tablolarALL TABLES IN SCHEMA public yerine haklar vermek istersiniz .

Bazı haklar vermek ... aynı şey, ama örneğin GRANT ALLkullanmak yerine GRANT SELECT, INSERT. Yine, kılavuza bakın.

Rol , bir kullanıcı ve / veya bir gruptur. Rolleri sadece verebilirsiniz çünkü rollerin hepsi bu kadar.


Harika bir açıklama!
sharadov,

Öyleyse ... şema genelindeki tüm tablolara tüm hakları vermek için sözdizimi nedir?
AlxVallejo

@AlxVallejo bu yardımcı olacaktır . En iyi bağlantıyı deneyin ya GRANTda listedeki dokümantasyon sayfasını okuyunALL TABLES IN SCHEMA
Craig Ringer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.