ত্রুটি: ORA-65096: ওরাকলে অবৈধ সাধারণ ব্যবহারকারী বা ভূমিকা নাম


118

আমি সবেমাত্র ওরাকেল 11 জি ইনস্টল করেছি এবং এটি স্কট স্কিমাটি অনুপস্থিত। তাই আমি নিজে এটি তৈরি করার চেষ্টা করছি। আমি "স্কট" স্কিমাটির এসকিএল স্ক্রিপ্ট পেয়েছি, কিন্তু যখন আমি "বাঘ দ্বারা চিহ্নিত স্কট ব্যবহারকারী তৈরি করুন" কোয়েরিটি চালানোর চেষ্টা করি; এটি নিম্নলিখিত ত্রুটি প্রদর্শন করে:

ORA-65096: ওরাকলে অবৈধ সাধারণ ব্যবহারকারী বা ভূমিকার নাম।

মূলত এটি আমাকে "স্কট" ব্যবহারকারী তৈরি করতে দিচ্ছে না। এটি কেন এবং আমি কীভাবে আমার সমস্যাটি সমাধান করতে পারি?


8
এটি থাকা অসম্ভব 11g, আপনার থাকা উচিত 12c
ললিত কুমার বি

হতে পারে আপনি একটি 11 জি ক্লায়েন্ট ইনস্টল করেছেন, তবে আপনি একটি 12 সি ডাটাবেসে সংযোগ করছেন? আপনি ঠিক কি ইনস্টল করেছেন?
অ্যালেক্স পুল

ব্যবহারকারীর নামের আগে সি ## যুক্ত করুন।
সাথভিক

উত্তর:


344

বিপদ

এর মতো অননুমোদিত প্যারামিটার সেট করা (যেমন শীর্ষস্থানীয় আন্ডারস্কোর দ্বারা নির্দেশিত) কেবল ওরাকল সাপোর্টের নির্দেশে করা উচিত। এই জাতীয় নির্দেশিকা ছাড়াই এই জাতীয় প্যারামিটারগুলি পরিবর্তন করা আপনার সমর্থন চুক্তিকে অকার্যকর করতে পারে। তাই নিজের ঝুঁকিতে এটি করুন।

বিশেষত, যদি আপনি সেট করেন "_ORACLE_SCRIPT"=true , কলামে ORACLE_MAINTAINED 'Y' তে সেট করে কিছু ডেটা ডিকশনারি অভিধান পরিবর্তন করা হবে। এই ব্যবহারকারী এবং অবজেক্টগুলি কিছু ডিবিএ স্ক্রিপ্ট থেকে ভুলভাবে বাদ দেওয়া হবে। এবং সেগুলি ভুলভাবে কিছু সিস্টেম স্ক্রিপ্টগুলিতে অন্তর্ভুক্ত থাকতে পারে।

আপনি যদি উপরের ঝুঁকি নিয়ে ঠিক থাকেন এবং সাধারণ ব্যবহারকারীদের সঠিক উপায়ে তৈরি করতে না চান তবে নীচের উত্তরটি ব্যবহার করুন।


ব্যবহারকারী রান তৈরি করার আগে:

alter session set "_ORACLE_SCRIPT"=true;  

আমি উত্তর এখানে খুঁজে পেয়েছি


6
সচেতন হন, এটি একটি লুকানো প্যারামিটার এবং কেবলমাত্র ওরাকল সমর্থন দ্বারা প্রস্তাবিত হলে ব্যবহার করা যেতে পারে।
ললিত কুমার বি

5
প্রোডাকশন সিস্টেমে আন্ডারস্কোর (লুকানো) পরামিতিগুলি ব্যবহার করা বিপজ্জনক, কারণ এটি আপনার সমর্থন চুক্তিকে অকার্যকর করতে পারে। সুতরাং আপনার উচিত লোকদের যথাযথ সতর্কতা না দিয়ে সেগুলি সেট করার পরামর্শ দেওয়া।
এপিসি

3
এটি ভুল এবং ওরাকলে সমর্থিত নয়, আমি এটি ব্যবহার করেছি এবং এটি অন্য একটি অভ্যন্তরীণ সমস্যার কারণ ঘটেছে।
ফিরাস নিজাম

1
উত্পাদনের - এটি ওরাকল ডাটাবেজ 18c এক্সপ্রেস এডিশন রিলিজ 18.0.0.0.0 উপর কাজ করে
Vitalie

2
@ ভিক্টর - কারণ ওরাকল সাপোর্টের দ্বারা নির্দেশিত হলে কেবলমাত্র আমরা সেগুলি পরিবর্তন করার অনুমতি পেয়েছি। যেমনটি আমি বলেছিলাম, নিজের ব্যাট থেকে অননুমোদিত প্যারামিটার সেট করা আমাদের সমর্থন চুক্তিটিকে অকার্যকর করতে পারে। আরও সাধারণভাবে, ডকুমেন্টেড এবং অননুমোদিত পরামিতিগুলির জন্য ওরাকলের ডিফল্ট সেটিংস সাধারণত সমস্ত অ্যাপ্লিকেশনগুলির জন্য দুর্দান্ত, এবং পরিবর্তনের প্রয়োজন হয় না। ট্যুইকিং আন্ডারস্কোর প্যারামিটারগুলি এমন লোকদের কাছে আবেদন করে যাঁরা আরকেন অ্যাক্সেসের শিহরিত উপভোগ করেন যা তাদের টুইট করার সবচেয়ে খারাপ কারণ। তবে আপনি যদি উদ্বিগ্ন হওয়ার জন্য কোনও সমর্থন চুক্তি না পান তবে আপনি যে কোনওভাবেই আপনার সিস্টেমকে ক্ষতিগ্রস্ত করার ঝুঁকি নিতে পারেন ;-)
এপিসি

55

আমি সবেমাত্র ওরাকেল 11 জি ইনস্টল করেছি

ORA-65096: ওরাকলে অবৈধ সাধারণ ব্যবহারকারী বা ভূমিকার নাম

না, আপনি ওরাকল 12 সি ইনস্টল করেছেন । এই ত্রুটিটি কেবলমাত্র চালু থাকতে পারে 12cএবং এটি আর চলতে পারে না 11g

সর্বদা 4 দশমিক স্থান পর্যন্ত আপনার ডাটাবেস সংস্করণটি পরীক্ষা করুন :

SELECT banner FROM v$version WHERE ROWNUM = 1;

ওরাকল 12 সি মাল্টিটেন্যান্ট ধারক ডাটাবেসে রয়েছে:

  • একটি মূল ধারক ( সিডিবি )
  • এবং / বা শূন্য, এক বা একাধিক প্লাগযোগ্য ডেটাবেস ( পিডিবি )।

আপনি অবশ্যই একটি ধারক ডাটাবেস হিসাবে ডাটাবেস তৈরি করেছেন । আপনি যখন পাত্রে ব্যবহারকারী তৈরি করার চেষ্টা করছেন অর্থাত্ সিডিবি $ মূল , তবে আপনাকে PLUGGLE ডাটাবেসে ব্যবহারকারী তৈরি করা উচিত ।

আপনার ধারকটিতে অ্যাপ্লিকেশন-সম্পর্কিত বস্তু তৈরি করার কথা নয়, ধারকটি প্লাগযোগ্য ডেটাবেসগুলির জন্য মেটাডেটা ধারণ করে। আপনার সাধারণ ডাটাবেস ক্রিয়াকলাপগুলির জন্য আপনার প্লাগযোগ্য ডেটাবেস ব্যবহার করা উচিত। অন্যথায়, এটি ধারক হিসাবে তৈরি করবেন না, এবং বহু-প্রজাস্বত্ব ব্যবহার করবেন না । তবে, 12 সিআর 2 এর পরে আপনি কোনওভাবেই নন-ধারক ডাটাবেস তৈরি করতে পারবেন না।

এবং সম্ভবত, স্যাম্পল স্কিমাগুলি ইতিমধ্যে ইনস্টল করা থাকতে পারে, আপনাকে কেবল প্লাগযোগ্য ডেটাবেসে আনলক করা দরকার ।

উদাহরণস্বরূপ, আপনি যদি প্লাগযোগ্য ডেটাবেসটি তৈরি করেন তবে pdborcl:

sqlplus SYS/password@PDBORCL AS SYSDBA

SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;

sqlplus scott/tiger@pdborcl

SQL> show user;
USER is "SCOTT"

পিডিবিগুলি দেখানোর জন্য এবং রুট ধারক থেকে প্লাগযোগ্য ডেটাবেসে কানেক্ট করতে:

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

SQL> alter session set container = ORCLPDB;

Session altered.

SQL> show con_name;

CON_NAME
------------------------------
ORCLPDB

আমি পড়ার পরামর্শ দিচ্ছি, ওরাকল 12 সি পোস্ট ইনস্টলেশন বাধ্যতামূলক পদক্ষেপগুলি


দ্রষ্টব্য : _ORACLE_SCRIPTলুকায়িত প্যারামিটারটি সত্য হিসাবে সেট করার জন্য পরামর্শ দেওয়া উত্তরগুলি কোনও প্রোডাকশন সিস্টেমে বিপজ্জনক এবং আপনার সমর্থন চুক্তিটিকেও বাতিল করতে পারে। সাবধান, ওরাকল সাপোর্টের পরামর্শ না নিয়ে লুকানো প্যারামিটার ব্যবহার করবেন না


উপরের লিঙ্ক "ওরাকল 12 সি পোস্ট ইনস্টলেশন বাধ্যতামূলক পদক্ষেপগুলি" নষ্ট হয়েছে। নতুন লিঙ্ক: ডকস.ওরাকল.ড্যাটাবেস
হেরি

@ হেরি কি নিশ্চিত? কারণ এটি ঠিকঠাক
সি

46

ওরাকল 12 সি এবং তারপরে, আমাদের কাছে দুটি ধরণের ডাটাবেস রয়েছে:

  1. ধারক ডেটাবেস (সিডিবি), এবং
  2. প্লাগেবল ডেটাবেস (পিডিবি)।

আপনি যদি কোনও ব্যবহারকারী তৈরি করতে চান তবে আপনার দুটি সম্ভাবনা রয়েছে:

  1. আপনি একটি "ধারক ব্যবহারকারী" ওরফে "সাধারণ ব্যবহারকারী" তৈরি করতে পারেন।
    সাধারণ ব্যবহারকারীরা সিবিডি এবং বর্তমান এবং ভবিষ্যতের পিডিবির অন্তর্গত। এর অর্থ তারা নির্ধারিত সুবিধা অনুযায়ী কনটেইনার ডিবি বা প্লাগেবল ডিবিতে অপারেশন করতে পারবেন।

    create user c##username identified by password;

  2. আপনি একটি "প্লাগেবল ব্যবহারকারী" ওরফে "স্থানীয় ব্যবহারকারী" তৈরি করতে পারেন।
    স্থানীয় ব্যবহারকারীরা কেবলমাত্র একটি পিডিবিতে অন্তর্ভুক্ত। এই ব্যবহারকারীদের প্রশাসনিক সুযোগ-সুবিধাগুলি দেওয়া যেতে পারে তবে কেবল সেই পিডিবিতে যার মধ্যে তারা বিদ্যমান। তার জন্য, আপনার প্লাগযোগ্য ড্যাটেবলের সাথে এমনটি সংযুক্ত করা উচিত:

    alter session set container = nameofyourpluggabledatabase;

    এবং সেখানে, আপনি সাধারণতঃ ব্যবহারকারী তৈরি করতে পারেন:

    create user username identified by password;

ব্যবহারের জন্য টেবিলস্পেস (গুলি) নির্দিষ্ট করতে ভুলবেন না, এটি আপনার ডিবি আমদানি / রফতানির সময় কার্যকর হতে পারে। এটি সম্পর্কে আরও তথ্যের জন্য এটি দেখুন https://docs.oracle.com/datedia/121/SQLRF/statements_8003.htm#SQLRF01503


এই উত্তরের শৈলীটি আমার প্রিয়, ব্যবহারে দ্রুত quick
pzy

0

অল্টার সেশন সেট "_ORACLE_SCRIPT" = সত্য;

"Chutinhbk123 @!" দ্বারা চিহ্নিত ব্যবহারকারী সেক_এডমিন তৈরি করুন;


-1

ডাটাবেস সংযোগ সরঞ্জামের উপর ব্যবহারকারীর নির্ভরতা তৈরি করুন

sql plus
SQL> connect as sysdba;
Enter user-name: sysdba
Enter password:
Connected.
SQL> ALTER USER hr account unlock identified by hr;
User altered
 then create user on sql plus and sql developer

3
আপনি কি দয়া করে আপনার কোডটি সঠিকভাবে ফর্ম্যাট করতে পারেন এবং কিছু প্রসঙ্গ দিতে পারেন কেন এটি অন্যান্য উত্তরগুলির চেয়ে সমস্যার ভাল সমাধান করে?
নিকো হাজেস

-1

হতে পারে, আরো নিরাপদ বিকল্প "_ORACLE_SCRIPT"=trueপরিবর্তন হয় "_common_user_prefix"থেকে C##একটি খালি স্ট্রিং হয়। যখন এটি বাতিল হয় - সাধারণ ব্যবহারকারীর জন্য যে কোনও নাম ব্যবহার করা যেতে পারে। সেখানে পাওয়া গেছে

এই মানটি পরিবর্তনের সময় আপনি অন্য সমস্যার মুখোমুখি হতে পারেন - ORA-02095 - প্যারামিটারটি পরিবর্তন করা যায় না, এটি আপনার কনফিগারেশনের উপর ভিত্তি করে (বিভিন্ন উত্সে) বিভিন্নভাবে সংশোধন করা যেতে পারে ( উত্স ) এর ।

সুতরাং আমার জন্য যে কাজ:

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