স্বীকৃত উত্তর দ্বারা চালিত বা চালিত মালিকানাধীন পুনরায় চেষ্টা করার সময় গ্রহণযোগ্য উত্তরের ফলে আমার জন্য ত্রুটি হয়েছিল। নিম্নলিখিত আমার জন্য কাজ করেছে:
REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM username;
REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM username;
REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public FROM username;
DROP USER username;
ব্যবহারকারীর অন্যান্য স্কিমে বিশেষাধিকার থাকতে পারে, এক্ষেত্রে আপনাকে সঠিক স্কিমার দ্বারা প্রতিস্থাপিত "সার্বজনীন" দিয়ে যথাযথ REVOKE লাইনটি চালাতে হবে। কোনও ব্যবহারকারীর জন্য সমস্ত স্কিমা এবং সুবিধার ধরণের প্রদর্শন করতে, আমি এই ক্যোয়ারীটি তৈরি করতে \ dp কমান্ডটি সম্পাদনা করেছি:
SELECT
n.nspname as "Schema",
CASE c.relkind
WHEN 'r' THEN 'table'
WHEN 'v' THEN 'view'
WHEN 'm' THEN 'materialized view'
WHEN 'S' THEN 'sequence'
WHEN 'f' THEN 'foreign table'
END as "Type"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.array_to_string(c.relacl, E'\n') LIKE '%username%';
আমি নিশ্চিত নই যে কোন সুবিধাগুলির প্রকারগুলি টেবিল, সিকোয়েন্সস বা ফাংশনগুলি প্রত্যাহারের সাথে মিল রয়েছে তবে আমি মনে করি এগুলি তিনটিই একটির অধীনে চলেছে।
CREATE TABLE foo(bar SERIAL); ALTER TABLE foo OWNER TO postgres; CREATE USER testuser; GRANT ALL ON foo TO testuser; DROP USER testuserদিলেন ত্রুটি বার্তা:ERROR: role "testuser" cannot be dropped because some objects depend on it DETAIL: access to table foo। যাইহোক,DROP OWNED BY testuserকৌশলটি কি স্পষ্টতই পোস্টগ্রাস অনুদানকে ড্রপযোগ্য বস্তু হিসাবে বিবেচনা করে।