আমি কীভাবে ওরাকল পাসওয়ার্ডের মেয়াদ শেষ করব?


177

আমি উন্নয়নের জন্য ওরাকল ব্যবহার করছি। আমি সর্বদা আমার ডেটাবেস পুনর্নির্মাণের জন্য ব্যবহার করি এমন বুটস্ট্র্যাপ অ্যাকাউন্টের পাসওয়ার্ডের মেয়াদ শেষ হয়ে গেছে।

কীভাবে আমি এই ব্যবহারকারীর (এবং অন্যান্য সমস্ত ব্যবহারকারীদের) স্থায়ীভাবে পাসওয়ার্ডের মেয়াদ শেষ করব?

আমি ওরাকল 11 জি ব্যবহার করছি, যার পাসওয়ার্ডগুলি ডিফল্টরূপে মেয়াদ শেষ হয়ে যায়।


আমি মনে করি আপনি সার্ভারফল্ট ডটকম এ জিজ্ঞাসা করা ভাল হতে পারে। আমি এটি জোর করতে যাচ্ছি না কারণ আপনি বলেছিলেন যে আপনি এটি বিকাশের জন্য ব্যবহার করছেন, এবং আমি মনে করি যে এখানে এখনও কেউ জানতে পারে এবং / অথবা এখানকার অন্যরা এই তথ্য থেকে উপকৃত হতে পারে a
বিল

আমি মনে করি আমি ঠিক তাই করব। এটি কোন সাইটের পক্ষে বেশি উপযুক্ত তা নিয়ে আমি বিতর্ক করছিলাম, কারণ এটি একটি প্রাথমিক ডাটাবেস প্রশ্ন এবং এটি কোনও ডিবিএ জিনিস নয়।
জোশ কোডরফ

ক্রস-সাইট প্রশ্নের জন্য ডুপ নীতিটি কী তা নিশ্চিত নয়, তবে এখানে লিঙ্কটি রয়েছে: সার্ভারফল্ট
জোশ কোডরফ

উত্তর:


313

ওরাকলে নির্দিষ্ট ব্যবহারকারীর প্রোফাইলের জন্য পাসওয়ার্ডের মেয়াদোত্তীর্ণ নীতিটি পরিবর্তন করতে প্রথমে ব্যবহারকারী কোন প্রোফাইল ব্যবহার করছে তা পরীক্ষা করে দেখুন:

select profile from DBA_USERS where username = '<username>';

তারপরে আপনি সীমাটি ব্যবহার করে কখনই মেয়াদ শেষ করতে পারবেন না:

alter profile <profile_name> limit password_life_time UNLIMITED;

আপনি যদি আগের সীমাটি ব্যবহার করতে পারেন তবে তা পরীক্ষা করতে চান:

select resource_name,limit from dba_profiles where profile='<profile_name>';

5
এটি প্রোফাইল পরিবর্তন করেছে। তবে, আমার কাছে ব্যবহারকারী রয়েছে যাদের পাসওয়ার্ডগুলি মেয়াদোত্তীর্ণ হয়ে গেছে কারণ এটি তৈরির সময় পূর্বনির্ধারিত প্রোফাইলটি যেমন ছিল। পাসওয়ার্ডটির মেয়াদ শেষ না হওয়াতে আমি কীভাবে এই ব্যবহারকারীর অ্যাকাউন্টগুলিকে পরিবর্তন করব?
জে ইমারম্যান

14
select username,expiry_date,account_status from dba_users; অ্যাকাউন্ট_স্ট্যাটাস দেখতে। মেয়াদ শেষ হওয়া অ্যাকাউন্টগুলির জন্য, আপনাকে শেষবারের জন্য একবারে পাসওয়ার্ডটি পুনরায় সেট করতে হবে।
উই

6
পরিবর্তিত ব্যবহারকারী এএ অ্যাকাউন্ট আনলক করুন;
কল্পনা সনি

1
সম্পূর্ণতার জন্য, আপনি অন্য প্রোফাইলে একটি ব্যবহারকারী পরিবর্তন করতে হবে যদি: ALTER USER Bob PROFILE MyNonExpiringProfile;

"ডিবিএ_উইএসআরএস থেকে প্রোফাইল নির্বাচন করুন যেখানে ইউজারনেম = '<ব্যবহারকারী নাম>';
গৌরব

90

জন্য উন্নয়ন যদি আপনি অন্য কোন প্রফাইল হয় করতে অক্ষম পাসওয়ার্ড নীতি (ডিফল্ট এক অর্থাত নিষ্ক্রিয় পাসওয়ার্ডের মেয়াদ শেষ হওয়ার):

ALTER PROFILE "DEFAULT" LIMIT PASSWORD_VERIFY_FUNCTION NULL;

তারপরে, পাসওয়ার্ডটি পুনরায় সেট করুন এবং ব্যবহারকারীর অ্যাকাউন্টটি আনলক করুন। এটি আর কখনও শেষ হবে না:

alter user user_name identified by new_password account unlock;

40

অন্য উত্তরগুলির হিসাবে উল্লেখ করা হয়েছে, ব্যবহারকারীর প্রোফাইল পরিবর্তন করা (যেমন 'ডিফল্ট' প্রোফাইল) যথাযথভাবে পাসওয়ার্ডগুলিতে নিয়ে যাবে, যা একবার সেট হয়ে গেলে কখনও শেষ হবে না।

তবে, একজন মন্তব্যকারী উল্লেখ করেছেন যে, প্রোফাইলের পুরানো মানগুলির মধ্যে সেট করা পাসওয়ার্ড ইতিমধ্যে মেয়াদ শেষ হয়ে যেতে পারে এবং (যদি প্রোফাইলের নির্দিষ্ট অনুগ্রহকাল পরে) অ্যাকাউন্টটি লক হয়ে যায়।

লক করা অ্যাকাউন্টগুলির সাথে মেয়াদ উত্তীর্ণ পাসওয়ার্ডগুলির সমাধান (উত্তর দেওয়ার মতামত হিসাবে দেওয়া হয়েছে) হল ALTER USER কমান্ডের একটি সংস্করণ ব্যবহার করা:

ALTER USER xyz_user ACCOUNT UNLOCK;

তবে আনলক কমান্ড কেবলমাত্র সেই অ্যাকাউন্টগুলির জন্য কাজ করে যেখানে অ্যাকাউন্টটি প্রকৃতপক্ষে লক থাকে তবে সেই অ্যাকাউন্টগুলির জন্য নয় যা গ্রেস পিরিয়ডে রয়েছে, যেখানে পাসওয়ার্ডের মেয়াদ শেষ হয়ে গেছে তবে অ্যাকাউন্টটি এখনও লক হয়নি। এই অ্যাকাউন্টগুলির জন্য পাসওয়ার্ড অবশ্যই ALTER USER কমান্ডের অন্য সংস্করণের সাথে পুনরায় সেট করতে হবে:

ALTER USER xyz_user IDENTIFIED BY new_password;

নীচে একটি ছোট এসকিউএল * প্লাস স্ক্রিপ্ট রয়েছে যা কোনও সুবিধাযুক্ত ব্যবহারকারী (যেমন ব্যবহারকারী 'এসওয়াইএস') ব্যবহারকারীর পাসওয়ার্ডটি ডাটাবেসে সঞ্চিত বর্তমান বিদ্যমান হ্যাশ মানটিতে রিসেট করতে ব্যবহার করতে পারে।

সম্পাদনা: ওরাকল এর পুরানো সংস্করণগুলি পাসওয়ার্ড কলামে পাসওয়ার্ড বা পাসওয়ার্ড-হ্যাশ সংরক্ষণ করে, ওরাকেলের নতুন সংস্করণগুলি স্পের 4 কলামে পাসওয়ার্ড-হ্যাশ সংরক্ষণ করে। নীচের স্ক্রিপ্টটি পাসওয়ার্ড এবং স্পিয়ার 4 কলাম সংগ্রহ করতে পরিবর্তিত হয়েছে তবে ব্যবহারকারীর অ্যাকাউন্ট পুনরায় সেট করতে স্পিয়ার 4 কলামটি ব্যবহার করতে হবে; প্রয়োজন অনুসারে পরিবর্তন করুন।

REM Tell SQL*Plus to show before and after versions of variable substitutions.
SET VERIFY ON
SHOW VERIFY

REM Tell SQL*Plus to use the ampersand '&' to indicate variables in substitution/expansion.
SET DEFINE '&'
SHOW DEFINE

REM Specify in a SQL*Plus variable the account to 'reset'.
REM Note that user names are case sensitive in recent versions of Oracle.
REM DEFINE USER_NAME = 'xyz_user'

REM Show the status of the account before reset.
SELECT
  ACCOUNT_STATUS,
  TO_CHAR(LOCK_DATE, 'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE,
  TO_CHAR(EXPIRY_DATE, 'YYYY-MM-DD HH24:MI:SS') AS EXPIRY_DATE
FROM
  DBA_USERS
WHERE
  USERNAME = '&USER_NAME';

REM Create SQL*Plus variable to hold the existing values of the password and spare4 columns.
DEFINE OLD_SPARE4 = ""
DEFINE OLD_PASSWORD = ""

REM Tell SQL*Plus where to store the values to be selected with SQL.
REM Note that the password hash value is stored in spare4 column in recent versions of Oracle,
REM   and in the password column in older versions of Oracle.
COLUMN SPARE4HASH NEW_VALUE OLD_SPARE4
COLUMN PWORDHASH NEW_VALUE OLD_PASSWORD

REM Select the old spare4 and password columns as delimited strings 
SELECT 
  '''' || SPARE4 || '''' AS SPARE4HASH,
  '''' || PASSWORD || '''' AS PWORDHASH
FROM 
  SYS.USER$ 
WHERE 
  NAME = '&USER_NAME';

REM Show the contents of the SQL*Plus variables
DEFINE OLD_SPARE4
DEFINE OLD_PASSWORD

REM Reset the password - Older versions of Oracle (e.g. Oracle 10g and older) 
REM ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_PASSWORD;

REM Reset the password - Newer versions of Oracle (e.g. Oracle 11g and newer) 
ALTER USER &USER_NAME IDENTIFIED BY VALUES &OLD_SPARE4;

REM Show the status of the account after reset
SELECT
  ACCOUNT_STATUS,
  TO_CHAR(LOCK_DATE, 'YYYY-MM-DD HH24:MI:SS') AS LOCK_DATE,
  TO_CHAR(EXPIRY_DATE, 'YYYY-MM-DD HH24:MI:SS') AS EXPIRY_DATE
FROM
  DBA_USERS
WHERE
  USERNAME = '&USER_NAME';

2
সাহায্যের জন্য ধন্যবাদ. কোনও প্রাসঙ্গিক উত্তর পাওয়া খুব কঠিন। প্রতিটি অন্যান্য উত্তর কেবলমাত্র PASSWORD_LIFE_TIME কে বোঝায়।
সাবটারটিগার

SYS.USER $। পাসওয়ার্ড কলামে কেবল পাসওয়ার্ডের নন-কেস-সংবেদনশীল (বড় হাতের?) সংস্করণটির হ্যাশ থাকবে। ওরাকল ১১-এ, আপনি যদি সিস্টেম প্যারামিটারটি SEC_CASE_SENSITIVE_LOGON = FALSE সেট না করেন তবে SYS.USER SP .SPARE4 কলামে কেস সংবেদনশীল পাসওয়ার্ডের অনেক দীর্ঘ হ্যাশ থাকবে।
মোরবো

16

আমি বিশ্বাস করি যে ডিফল্টরূপে পাসওয়ার্ডের মেয়াদোত্তীর্ণ আচরণটি কখনই শেষ হয় না। তবে আপনি নিজের ডেভ ব্যবহারকারীর জন্য একটি প্রোফাইল সেট আপ করতে পারেন এবং সেট করতে পারেন PASSWORD_LIFE_TIME। আরও বিশদ জানতে ওরাফাক দেখুন । আপনি এখানে একজন ব্যক্তির দৃষ্টিভঙ্গি এবং ব্যবহারের উদাহরণের জন্য দেখতে পারেন ।


7
আমি মনে করি প্রস্তাবিত উন্নত সুরক্ষার সাথে একটি নতুন 11 গ্রাম ইনস্টল (আপগ্রেডের বিপরীতে) তে, পাসওয়ার্ডগুলি 30 দিনের পরে শেষ হয়ে যাবে।
গ্যারি মায়ার্স


0

আমি পাসওয়ার্ডের মেয়াদোত্তীর্ণকরণ বন্ধ করার পক্ষে এটি একটি ভাল ধারণা প্রস্তাব করব না কারণ এটি গোপনীয়তা, অখণ্ডতা এবং ডেটা প্রাপ্যতার সম্ভাব্য হুমকির কারণ হতে পারে।

তবে আপনি যদি চান।

আপনার যদি সঠিক অ্যাক্সেস থাকে তবে এসকিউএল অনুসরণ করে

ব্যবহারকারীর নাম নির্বাচন করুন, অ্যাকাউন্ট_স্ট্যাটাস FROM dba_users;

এটি আপনাকে এভাবে ফলাফল দেয়।

   USERNAME                       ACCOUNT_STATUS
------------------------------ -----------------

SYSTEM                         OPEN
SYS                            OPEN
SDMADM                         OPEN
MARKETPLACE                    OPEN
SCHEMAOWNER                    OPEN
ANONYMOUS                      OPEN
SCHEMAOWNER2                   OPEN
SDMADM2                        OPEN
SCHEMAOWNER1                   OPEN
SDMADM1                        OPEN
HR                             EXPIRED(GRACE)

USERNAME                       ACCOUNT_STATUS
------------------------------ -----------------

APEX_PUBLIC_USER               LOCKED
APEX_040000                    LOCKED
FLOWS_FILES                    LOCKED
XS$NULL                        EXPIRED & LOCKED
OUTLN                          EXPIRED & LOCKED
XDB                            EXPIRED & LOCKED
CTXSYS                         EXPIRED & LOCKED
MDSYS                          EXPIRED & LOCKED

এখন আপনি পেড্রো ক্যারিও উত্তরটি https://stackoverflow.com/a/6777079/2432468 ব্যবহার করতে পারেন


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