Bazı zamanlar önce user1 (PostgreSQL 9.4.9) adlı bir PostgreSQL kullanıcısı oluşturdum .
Bu kullanıcıyı bırakmak istiyorum. Bu yüzden ilk önce tablolar, sıralar, işlevler, varsayılan ayrıcalıklar ve sahiplik üzerindeki tüm izinleri iptal ediyorum:
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON SEQUENCES FROM user1;
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON TABLES FROM user1;
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM user1;
REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM user1;
REVOKE ALL ON ALL TABLES IN SCHEMA public FROM user1;
REVOKE ALL ON ALL FUNCTIONS IN SCHEMA public FROM user1;
REASSIGN OWNED BY user1 TO postgres;
Bununla birlikte, bir nesnenin 2 veritabanında bu kullanıcıya bağlı kaldığı görülmektedir:
postgres=# DROP ROLE user1;
ERROR: role "user1" cannot be dropped because some objects depend on it
DETAIL: 1 object in database db1
1 object in database db2
Hatta bir işlev gibi görünüyor:
postgres=# \c db1
You are now connected to database "db1" as user "postgres".
db1=# DROP ROLE user1;
ERROR: role "user1" cannot be dropped because some objects depend on it
DETAIL: privileges for function text(boolean)
1 object in database db2
Ancak hangi nesnenin user1'e ait olduğunu veya user1 ile ilişkili olduğunu belirleyemiyorum.
Ben ise pg_dump -s db1 | grep user1hiçbir sonuç elde! Küresel bir nesne olabilir mi?
Eksik nesneyi nasıl tanımlayabilirim?
Her veritabanı (db1 ve db2) komutları yürüttüm. Sahip olunan nesneleri bırakmak istemiyorum user1, sadece bu kullanıcı için hibeleri yeniden atamak veya kaldırmak istiyorum.