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 user1
hiç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.