প্যাকেজের মাধ্যমে অনুদান প্রাপ্ত সমস্ত ব্যবহারকারীকে কীভাবে তালিকাভুক্ত করবেন


9

প্যাকেজের উপর অনুদান থাকা সমস্ত ব্যবহারকারীদের তালিকা করতে আমি কিছু ক্যোয়ারী খুঁজছি।

উদাহরণস্বরূপ, ব্যবহারকারী স্কিমা_এ প্যাকেজ চালানোর জন্য মঞ্জুরি দেওয়া হয়েছে: বি মাইপ্যাকেজ।

আমি মতামত বা সারণীগুলি যেমন: রোল_ট্যাব_প্রাইভস, ভূমিকা_সিস_প্রাইভস, সিস.ডেবা_সাইস_প্রাইভস, ডিবিএ_রোল_প্রাইভগুলি জিজ্ঞাসা করছি ... তবে আমি যা খুঁজছি তা খুঁজে পাচ্ছি না।

উত্তর:


15

যদি অধিকার বা সরাসরি কোনও ভূমিকাকে মঞ্জুর করা হয় তবে অনুদানটি উপস্থিত হবে DBA_TAB_PRIVS

SELECT grantee, privilege
  FROM dba_tab_privs
 WHERE owner = 'B'
   AND table_name = 'MYPACKAGE'
   AND privilege = 'EXECUTE'

যদি granteeভূমিকাটি হয় তবে আপনাকে dba_role_privsব্যবহারকারীদের (বা ভূমিকা) কীভাবে সেই ভূমিকাটি দেওয়া হয়েছে তা দেখার প্রয়োজন হবে এবং যদি আপনার অন্যান্য ভূমিকার সাথে ভূমিকা পালন করে থাকে তবে চেইনটি অনুসরণ করতে হবে। (খুব বিপজ্জনক) ANYঅনুদানের কারণে (অর্থাত্ EXECUTE ANY PROCEDURE) যে অনুগ্রহ করে এমন ব্যবহারকারীদের জন্য আপনার যদি অ্যাকাউন্টিং দরকার হয় তবে তার জন্য আলাদা জিজ্ঞাসা প্রয়োজন।

আপনি যদি কেবল এর বিরুদ্ধে সোজা জিজ্ঞাসা না করে আরও পরিশীলিত হতে চান dba_tab_privsতবে আপনি সম্ভবত পিট ফিনিগানের স্ক্রিপ্টগুলিwho_has_priv.sql (বা who_has_priv_procedure.sql) এর মতো ব্যবহার করা থেকে ভাল । পিট সম্ভবত ওরাকল সিকিউরিটির শীর্ষস্থানীয় বিশেষজ্ঞ তাই আমি একসাথে বাঁধা চেষ্টা করার চেয়ে যে কোনও সম্ভাব্য কোণার ক্ষেত্রে এটির সম্ভাবনা অনেক বেশি।

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