얼마 전에 user1 (PostgreSQL 9.4.9) 이라는 PostgreSQL 사용자를 만들었습니다 .
이 사용자를 삭제하고 싶습니다. 따라서 먼저 테이블, 시퀀스, 함수, 기본 권한 및 소유권에 대한 모든 권한을 취소합니다.
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;
그러나 하나의 객체가 2 개의 데이터베이스에서이 사용자와 연결된 상태 인 것 같습니다.
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
심지어 함수 인 것 같습니다.
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
그러나 소유하거나 user1과 관련된 객체를 확인할 수 없습니다.
내가하면 pg_dump -s db1 | grep user1
나는 어떤 결과를 얻을! 전역 객체 일 수 있습니까?
누락 된 개체를 어떻게 식별 할 수 있습니까?
각 데이터베이스 (db1 및 db2)에서 명령을 실행했습니다. 에서 소유 한 객체를 삭제하고 user1
싶지 않고이 사용자에 대한 권한 부여를 다시 할당하거나 제거하고 싶습니다.