PostgreSQL GRANT, REVOKE | Bayram Üçüncü
Posted on 23 Mayıs 2020 18 Mayıs 2020 Author bayramucuncu	0
Bir önceki yazıda PostgreSQL kullanıcı işlemlerinin nasıl yapıldığından bahsetmiştik. Bu yazıda ise PostgreSQL kullanıcısının, erişim izinlerini düzenleyen DCL (Data Control Language) ifadelerden bahsedilmektedir. PostgreSQL DCL ifadeleri şu şekildedir:
Aşağıdaki örneklerde bir kullanıcı (username) için yetki verme ve alma işlemi yapılsa da, username yerine bir grup adı da kullanılabilir. Bu şekilde, kullanıcı grubuna dahil olan bütün kullanıcılar yetkilendirilmiş olur.
Bir kullanıcının yetki işlemlerini yapabilmesi için öncelikle superuser yetkilerine sahip olması gerekmektedir.
Superuser Durum Değişimi
Kullanıcıyı superuser durumuna getir.
Kullanıcının superuser durumunu kaldır.
Kullanıcıya, veritabanı oluşturma yetkisi ver.
Kullanıcıya, veri tabanına bağlanma yetkisi ver.
Kullanıcıdan veritabanı bağlanma yetkisini geri al.
REVOKE CONNECT ON DATABASE database_name FROM username;
Kullanıcıya, veritabanındaki tüm ayrıcalıkları ver.
Kullanıcıdan, veritabanındaki tüm ayrıcalıkları geri al.
REVOKE ALL PRIVILEGES ON DATABASE database_name FROM username;
Schema ve Object Yetkileri
Kullanıcılar, şema içerisinde bulunan table, column, sequence gibi nesneler üzerinde yetkilendirilebilirler.
Kullanıcıya şema kullanım yetkisi ver.
Kullanıcıdan şema kullanım yetkisini geri al.
REVOKE USAGE ON SCHEMA schema_name FROM username;
Kullanıcının, bir tablo üzerinde SELECT, INSERT, UPDATE, DELETE gibi DML(Data Manipulation) ifadelerini kullanım yetkilerini vermek mümkündür.
Kullanıcıya şemadaki bütün tablolar için yetki ver.
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES
IN SCHEMA schema_name TO username;
Kullanıcının şemadaki bütün tablolarda bulunan yetkilerini geri al.
REVOKE SELECT, INSERT, UPDATE, DELETE ON ALL TABLES
IN SCHEMA schema_name FROM username;
Kullanıcıya tek bir tabloya için yetki ver.
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name
Bir şemeda bulunan bütün tablolar için, kullanıcıya bütün yetkileri ver.
GRANT ALL PRIVILEGES ON ALL TABLES
Bir şemeda bulunan bütün tablolara ait bütün yetkileri kullanıcıdan geri al.
REVOKE ALL PRIVILEGES ON ALL TABLES
Bir şemeda bulunan bütün dizeler(sequence) için, bütün yetkileri ver.
GRANT ALL PRIVILEGES ON ALL SEQUENCES
Bir şemeda bulunan bütün dizeler(sequence) için, bütün yetkileri geri al.
REVOKE ALL PRIVILEGES ON ALL SEQUENCES
Yukarıdaki şema içi yetkiler, veritabanına mevcut olan tablolar için geçerlidir. Eğer şemada yeni oluşturulan tablolar için de kullanıcıya tüm yetkiler vermek için şöyle bir ifade kullanılabilir:
GRANT ALL ON TABLES TO username;
Genel, PostgreSQL	grant, PostgreSQL, revoke
« Startup Şehri San Francisco
Postgresql DDL, DML, DCL, TCL Kavramları »
Yorum için bu kutuya doğru sayıyı girin * Time limit is exhausted. Please reload CAPTCHA. × = 24