সুপার ব্যবহারকারী না হয়ে pg_stat_activity এ অন্য সেশনের কোয়েরিটি কীভাবে দেখতে পাবেন?


13

আমার একটি পোস্টগ্র্যাস্কল 9.2 ডাটাবেস রয়েছে। এই ডাটাবেসে দুটি ব্যবহারকারী তৈরি করা হয়েছে। আমি যখন সুপারউসার হিসাবে নিম্নলিখিত কোয়েরিটি সম্পাদন করি তখন আমি সমস্ত কিছু দেখতে পাই।

select * from pg_stat_activity

তবে, সুপারভাইজার হিসাবে যুক্ত না হয়ে কি একই ফলাফল অর্জন করা সম্ভব?

কোনও সুপারভাইজার দেখতে পাবে এমন ফলাফল পেতে আমি কোন অধিকার / ভূমিকাটি দেব?


এই মুহুর্তে, অনুদান দেওয়ার কোনও অধিকার নেই, এটি সুপারভাইজারকে হার্ডকোডযুক্ত। এটি ইদানীং মেলিং তালিকায় আলোচিত হয়েছে এবং কেউ যদি এতে কাজ করার সময় খুঁজে পান তবে 9.5-এ পরিবর্তিত হতে পারে।
ক্রেগ রিঞ্জার 12

উত্তর:


21

এই মুহুর্তে, অনুদান দেওয়ার কোনও অধিকার নেই, এটি সুপারভাইজারকে হার্ডকোডযুক্ত। এটি ইদানীং মেলিং তালিকায় আলোচিত হয়েছে এবং কেউ যদি এতে কাজ করার সময় খুঁজে পান তবে 9.5-এ পরিবর্তিত হতে পারে।

SECURITY DEFINERকার্যকারণ হিসাবে, আপনি একটি সুপারিশারের মালিকানাধীন একটি ফাংশন তৈরি করতে পারেন এবং আপনার যে ক্যোয়ারী চান তা চালিয়ে দিতে পারেন। এটি অ-সুপারউসারদের ফাংশনটিতে pg_stat_activityকল করে বিষয়বস্তুগুলি দেখার অনুমতি দেবে ।

উদাহরণস্বরূপ, একটি সুপারভাইজার হিসাবে চালান:

CREATE FUNCTION get_sa() RETURNS SETOF pg_stat_activity AS
$$ SELECT * FROM pg_catalog.pg_stat_activity; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;

CREATE VIEW pg_stat_activity_allusers AS SELECT * FROM get_sa();

GRANT SELECT ON pg_stat_activity_allusers TO public;

মনে রাখবেন যে অবাধ অ্যাক্সেস pg_stat_activityকোনও কারণে সীমাবদ্ধ। অন্যান্য ব্যক্তির প্রশ্ন থেকে সংবেদনশীল তথ্য স্নুপ করা সম্ভব - উদাহরণস্বরূপ কল্পনা করুন যদি অন্য কোনও ব্যবহারকারী পিজক্রিপ্টো ব্যবহার করে থাকেন। publicআপনার অধিকার দেওয়ার পরিবর্তে এগুলি কেবলমাত্র কোনও নির্দিষ্ট ব্যবহারকারীর বা ভূমিকার জন্য মঞ্জুর করা উচিত যা পর্যবেক্ষণের জন্য সার্গেট ব্যবহারকারী হিসাবে কাজ করা।


ধন্যবাদ! SUPERUSER মঞ্জুর না করে pg_stat_activity থেকে কীভাবে কোনও মনিটরের অ্যাকাউন্ট পড়ার অনুমতি দেওয়ার চেষ্টা করা হয়েছিল।
এপিক_ফিল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.