একটি ওরাকল ডাটাবেস ব্যবহারকারীকে নকল করুন


17

আমাদের ওরাকল ডাটাবেসটিতে একটি পর্যালোচনা করতে বাহ্যিক নিরীক্ষকরা আসবেন। তারা পর্যালোচনা সম্পাদন করার জন্য একটি সরঞ্জাম চালাবেন এবং তার জন্য, তাদের একটি ব্যবহারকারীর আইডি দরকার যা ডেটাবেসে সংযোগ করতে এবং এটি থেকে তথ্য দখল করতে পারে।

এটির জন্য আমাদের ডাটাবেসে বিদ্যমান ব্যবহারকারী রয়েছে। যাইহোক, এটি একটি প্রোডাকশন আইডি এবং এটি লক আউট করা আমাদের সামর্থ্য নেই। আমরা এই আইডিটির ভূমিকা ও অধিকার সহ ক্লোন / নকল করতে চাই।

ওরাকলে আমরা কি এমন কোনও উপায় করতে পারি?

উত্তর:


21

ব্যবহারকারী তৈরি:

select dbms_metadata.get_ddl( 'USER', 'PHIL' ) from dual;

ডিফল্ট ভূমিকা:

select dbms_metadata.get_granted_ddl( 'DEFAULT_ROLE', 'PHIL' ) from dual;

সিস্টেম অনুদান:

select dbms_metadata.get_granted_ddl( 'SYSTEM_GRANT', 'PHIL' ) from  dual;

বস্তু অনুদান:

select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'PHIL' ) from dual;

ভূমিকা অনুদান:

select dbms_metadata.get_granted_ddl( 'ROLE_GRANT', 'PHIL' ) from dual;

কোটা:

select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', 'PHIL' ) from dual;

উপরের যে কোনওটির যদি আউটপুট না থাকে তবে আপনি একটি ব্যতিক্রম পাবেন যা দেখতে এরকম কিছু দেখাচ্ছে:

SQL> select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', 'PHIL' ) from dual;
ERROR:
ORA-31608: specified object of type TABLESPACE_QUOTA not found
ORA-06512: at "SYS.DBMS_METADATA", line 4018
ORA-06512: at "SYS.DBMS_METADATA", line 5991
ORA-06512: at line 1

no rows selected

SQL>

তারপরে একটি অনুসন্ধান করুন এবং ব্যবহারকারীর নাম পরিবর্তন করতে আউটপুট এ প্রতিস্থাপন করুন।


নোট করুন যে ডিডিএল প্রজন্ম বিদ্যমান ব্যবহারকারীকে ডাবল-কোটে আবৃত করে; এটি বিদ্যমান ব্যবহারকারীর নামটি খুব সহজ প্রতিস্থাপন করে।
অ্যান্ড্রু ওল্ফ

1
ROLE_GRANT সফল হওয়ার জন্য নতুন ব্যবহারকারী তৈরি করার সময় ডিএফএএলএলআরওএল স্টেটমেন্টের আগে চলে যেতে হবে।
থিওফিলোস

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