ওরাকল - নির্দিষ্ট সারণিতে অ্যাক্সেস সহ ব্যবহারকারীদের তালিকাবদ্ধ করুন


28

আমি নিশ্চিত যে এটি আগে জিজ্ঞাসা করা হয়েছিল তবে আমি নীচেরগুলির জন্য প্রাসঙ্গিক বিশদটি খুঁজে পাচ্ছি না।

প্রাক-বিল্ট টেবিলের এমন কোনও ধরণের কি রয়েছে যা নিম্নলিখিতগুলি করতে পারে (আমি dba_tab_privs ব্যবহার করেছি তবে এটি সীমাবদ্ধ এবং আমার সমস্ত চাহিদা পূরণ করে না), যদি নীচের উত্তরগুলির জন্য কারও কাছে কিছু প্রশ্ন থাকে না?

  1. যে সমস্ত ব্যবহারকারীকে একটি বিশেষ ভূমিকা অর্পণ করা হয়েছে তাদের তালিকাবদ্ধ করুন?
  2. কোনও ব্যবহারকারীর দেওয়া সমস্ত ভূমিকা তালিকাভুক্ত করবেন?
  3. কোনও ব্যবহারকারীর দেওয়া সমস্ত সুযোগ-সুবিধার তালিকা রয়েছে?
  4. কোন সারণীর নির্দিষ্ট ভূমিকাটিতে SELECT অ্যাক্সেস দেয় তা তালিকাবদ্ধ করে?
  5. ব্যবহারকারীরা যে সকল সারণী নির্বাচন করতে পারবেন সেগুলি তালিকাভুক্ত করবেন?
  6. যে সমস্ত ব্যবহারকারীর একটি নির্দিষ্ট টেবিলের উপর নির্বাচন করতে পারবেন (তাদের কোনও প্রাসঙ্গিক ভূমিকা দেওয়া বা প্রত্যক্ষ অনুদানের মাধ্যমে (অর্থাত্ জোতে টানতে দেওয়া অনুদান)) তালিকাবদ্ধ করুন? এই কোয়েরির ফলাফলটিও দেখানো উচিত যে ব্যবহারকারীর এই ভূমিকার মাধ্যমে এই অ্যাক্সেস রয়েছে বা এটি সরাসরি অনুদান ছিল কিনা।

উত্তর:


33

একটি নির্দিষ্ট ভূমিকা অর্পণ করা সমস্ত ব্যবহারকারীদের তালিকাভুক্ত করুন

-- Change 'DBA' to the required role
select * from dba_role_privs where granted_role = 'DBA'

কোনও ব্যবহারকারীর দেওয়া সমস্ত ভূমিকা তালিকাবদ্ধ করুন

-- Change 'PHIL@ to the required user
select * from dba_role_privs where grantee = 'PHIL';

কোনও ব্যবহারকারীর দেওয়া সমস্ত সুযোগ-সুবিধার তালিকা List

select
  lpad(' ', 2*level) || granted_role "User, his roles and privileges"
from
  (
  /* THE USERS */
    select 
      null     grantee, 
      username granted_role
    from 
      dba_users
    where
      username like upper('%&enter_username%')
  /* THE ROLES TO ROLES RELATIONS */ 
  union
    select 
      grantee,
      granted_role
    from
      dba_role_privs
  /* THE ROLES TO PRIVILEGE RELATIONS */ 
  union
    select
      grantee,
      privilege
    from
      dba_sys_privs
  )
start with grantee is null
connect by grantee = prior granted_role;

দ্রষ্টব্য: http://www.adp-gmbh.ch/ora/misc/recursively_list_privilege.html থেকে নেওয়া

কোন সারণীর নির্দিষ্ট ভূমিকাটিতে SELECT অ্যাক্সেস দেয় তা তালিকাবদ্ধ করে?

-- Change 'DBA' to the required role.
select * from role_tab_privs where role='DBA' and privilege = 'SELECT';

ব্যবহারকারীরা যে সকল সারণী নির্বাচন করতে পারবেন সেগুলি তালিকাভুক্ত করবেন?

--Change 'PHIL' to the required user
select * from dba_tab_privs where GRANTEE ='PHIL' and privilege = 'SELECT';

যে সমস্ত ব্যবহারকারীর একটি নির্দিষ্ট টেবিলের উপর নির্বাচন করতে পারবেন (তাদের কোনও প্রাসঙ্গিক ভূমিকা দেওয়া বা প্রত্যক্ষ অনুদানের মাধ্যমে (অর্থাত্ জোতে টানতে দেওয়া অনুদান)) তালিকাবদ্ধ করুন? এই কোয়েরির ফলাফলটিও দেখানো উচিত যে ব্যবহারকারীর এই ভূমিকার মাধ্যমে এই অ্যাক্সেস রয়েছে বা এটি সরাসরি অনুদান ছিল কিনা।

-- Change 'TABLENAME' below
select Grantee,'Granted Through Role' as Grant_Type, role, table_name
from role_tab_privs rtp, dba_role_privs drp
where rtp.role = drp.granted_role
and table_name = 'TABLENAME' 
union
select Grantee,'Direct Grant' as Grant_type, null as role, table_name
from dba_tab_privs
where table_name = 'TABLENAME' ;

এটি একটি ভাল শুরু, কিন্তু # 3 অবজেক্টের সুবিধাগুলি অন্তর্ভুক্ত করে না, # 5 কোনও SELECTভূমিকার কারণে উপলব্ধ সুবিধাগুলি অন্তর্ভুক্ত করে না এবং # 6 অনুপস্থিত।
লেইফ রিফেল


# 5 এর জন্য আপনার উত্তরটিতে কী সারণী অন্তর্ভুক্ত রয়েছে যা ব্যবহারকারীরা তাদের অর্পিত ভূমিকার মাধ্যমে নির্বাচন করতে পারেন?
dgf

ব্যবহারকারী যদি অন্য কোনও ভূমিকায় মর্যাদাপূর্ণ ভূমিকায় সুযোগ পেয়ে যায় তবে এটি কি কাজ করবে?
jpmc26

2

আপনি যে তথ্যটি ব্যবহার করতে চান তা পাওয়ার অনেকগুলি উপায় রয়েছে:

ডেটা অভিধানের দর্শন

ওরাকলে উপস্থিত

আপনি কেবলমাত্র দর্শনগুলি জিজ্ঞাসা করতে পারেন এবং বিশদটি পুনরুদ্ধার করতে পারেন: উদাহরণস্বরূপ:

DBA_COL_PRIVS থেকে * নির্বাচন করুন;

ALL_COL_PRIVS থেকে * নির্বাচন করুন;

USER_COL_PRIVS থেকে * নির্বাচন করুন;

এটি আপনাকে বলে:

ডিবিএ ভিউ ডাটাবেসে সমস্ত কলাম বস্তু অনুদানকে বর্ণনা করে। সমস্ত দর্শন সমস্ত কলামের অবজেক্ট অনুদানকে বর্ণনা করে যার জন্য বর্তমান ব্যবহারকারী বা পাবলিক হ'ল অবজেক্টের মালিক, অনুদানকারী বা অনুদানকারী। ইউএসএল ভিউ কলাম অবজেক্ট মঞ্জুরিগুলি বর্ণনা করে যার জন্য বর্তমান ব্যবহারকারী হ'ল অবজেক্টের মালিক, অনুদানকারী বা গ্রান্টি।

আরও তথ্যের জন্য, এটি পরীক্ষা করে দেখুন

আশাকরি এটা সাহায্য করবে.


1
এটি এই প্রশ্নের উত্তর বলে মনে হচ্ছে না: কোনও ডিবিএ কীভাবে সুনির্দিষ্ট স্বেচ্ছাসেবীর ব্যবহারকারী কীভাবে অ্যাক্সেস করতে পারে তা আবিষ্কার করতে পারে?
সমস্ত ট্রেডের জোন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.