Comjagat.com-The first IT magazine in Bangladesh
  • ভাষা:
  • English
  • বাংলা
হোম > ওরাকল ডাটাবেজ অ্যাডমিনিস্ট্রেশন
লেখক পরিচিতি
লেখকের নাম: মো: ইফতেখারুল ইসলাম
মোট লেখা:৫
লেখা সম্পর্কিত
পাবলিশ:
২০১১ - এপ্রিল
তথ্যসূত্র:
কমপিউটার জগৎ
লেখার ধরণ:
ওরাকল
তথ্যসূত্র:
অ্যাডমিনিস্ট্রেশন
ভাষা:
বাংলা
স্বত্ত্ব:
কমপিউটার জগৎ
ওরাকল ডাটাবেজ অ্যাডমিনিস্ট্রেশন

(পূর্ব প্রকাশিতের পর)

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

প্রোফাইল ব্যবহার করে পাসওয়ার্ড ব্যবস্থাপনা :

একটি প্রোফাইল তৈরি করার পর ডিবিএ একে বিভিন্ন ইউজারের জন্য বরাদ্দ দিতে পারেন। যদি রিসোর্স লিমিট এনাবল থাকে তবে সার্ভার কোনো ইউজারের ওপর বরাদ্দ করা প্রোফাইলে ডাটাবেজ ব্যবহারে বিভিন্ন নিয়ন্ত্রণ আরোপ করতে পারে। প্রোফাইল মূলত নিম্নলিখিত পাসওয়ার্ড ও রিসোর্স লিমিটেডের ওপর কাজ করে।

০১. পাসওয়ার্ড এক্সপিয়ার,
০২. পাসওয়ার্ডের ইতিহাস,
০৩. পাসওয়ার্ড কমপ্লেকিটি ভেরিফিকেশন,
০৪. অ্যাকাউন্ট লকিং,
০৫. সিপিও টাইমিং,
০৬. ইনপুট আউটপুট অপারেশন,
০৭. আইডল টাইম,
০৮. সংযোগের স্থায়িত্ব।

পাসওয়ার্ড ব্যবস্থাপনা :

ডাটাবেজ অ্যাডমিনিস্ট্রেটর ডাটাবেজের অধিকতর নিরাপত্তার জন্য প্রোফাইলকে কাজে লাগায়। মূলত নিম্নলিখিত কাজগুলো ডিবিএ এক্ষেত্রে করে থাকে।

০১. অ্যাকাউন্ট লকিং :
যখন কোনো ইউজার নির্দিষ্টবার চেষ্টা করেও অ্যাকাউন্ট ওপেন করতে পারবে না, তখন স্বয়ংক্রিয়ভাবে অ্যাকাউন্ট লক হয়ে যাবে।

০২. পাসওয়ার্ড এজিং ও এক্সপেয়ার :
এর মাধ্যমে পাসওয়ার্ডকে একটি জীবনকালের মধ্যে সীমাবদ্ধ রাখা হয়। জীবনকাল সমাপ্ত হলে পাসওয়ার্ড স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

০৩. পাসওয়ার্ড ইতিহাস :
এর মাধ্যমে কোনো পাসওয়ার্ড নির্দিষ্ট সময়ের পর স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

০৪. পাসওয়ার্ড কমপ্লেকিটি ভেরিফিকেশন :
এর মাধ্যমে পাসওয়ার্ডকে যথেষ্ট পরিমাণে জটিল করা হয়। যাতে কেউ সিস্টেম ব্রেক করে ভেতরে ঢুকতে না পারে।

পাসওয়ার্ড ম্যানেজমেন্ট এনাবল করা :

utlpwdmg.sql স্ক্রিপটি sys ইউজারের আওতায় রান করানোর মাধ্যমে পাসওয়ার্ড ম্যানেজমেন্ট এনাবল করা যায়। পাসওয়ার্ড ম্যানেজমেন্ট এনাবল করলে ক্রিয়েট ইউজার অথবা অল্টার ইউজার কমান্ড দিয়ে ইউজারের অ্যাকাউন্ট লক অথবা আনলক করা যায়। প্রোফাইল তৈরি করার মাধ্যমে আমরা পাসওয়ার্ড সেটিংকে সীমাবদ্ধ রাখতে পারি এবং কোনো নির্দিষ্ট ইউজারের জন্য এ প্রোফাইল অ্যাসাইন করতে পারি।

প্যারামিটার ভ্যালুর মাধ্যমে পাসওয়ার্ড নিয়ন্ত্রণ

FAILED_LOGIN_ATTEMPTS : এতে যে ভ্যালু দেয়া থাকবে তা অতিক্রম করলে অর্থাৎ কোনো ইউজারের চেয়ে বেশিবার পাসওয়ার্ড দিয়ে লগইনে ব্যর্থ চেষ্টা চালালে স্বয়ংক্রিয়ভাবে ওই ইউজারের অ্যাকাউন্ট লক হয়ে যাবে।



PASSWORD_LOCK_TIME : কোনো অ্যাকাউন্ট লক হয়ে গেলে এই ভ্যালু পরিমাণ দিন পর্যন্ত পাসওয়ার্ড লক থাকবে। এছাড়াও ডিবিএ ইউজারকে অল্টার ইউজার দিয়ে আনলক করতে পারে।

PASSWORD_LIFE_TIME : কোনো পাসওয়ার্ড কতদিন পর্যন্ত ব্যবহার করা যাবে তা এই ভ্যালুর মাধ্যমে নিয়ন্ত্রণ করা হয়ে থাকে।

PASSWORD_GRACE_TIME : এই প্যারামিটার ভ্যালুটিকে গণনা করা শুরু হবে পাসওয়ার্ড এক্সপিয়ার হওয়ার পর প্রথম চেষ্টা থেকে। এবং এই ভ্যালু পর্যন্ত প্রতিটি চেষ্টায় একটি সতর্ক মেসেজ দেবে। এর মধ্যে যদি পাসওয়ার্ড পরিবর্তন করা না হয় তবে অ্যাকাউন্ট লক হয়ে যাবে।

PASSWORD_REUSE_TIME : এই ভ্যালু পরিমাণ দিলে কোনো ইউজার কোনো পাসওয়ার্ডকে পুনর্বার ব্যবহার করতে পারবে না।

PASSWORD_REUSE_MAX : কোনো পাসওয়ার্ড পুনর্ব্যবহারের আগে সর্বোচ্চ কতবার পরিবর্তন করা যাবে তা এই ভ্যালুর মাধ্যমে নির্ধারণ করা হয়ে থাকে। যদি কোনো একটি প্যারামিটারে ভ্যালু দেয়া হয় তবে অবশ্যই অন্য প্যারামিটারে ভ্যালু হিসেবে Unlimited অ্যাসাইন করতে হবে।

পাসওয়ার্ড ভেরিফিকেশন

PASSWORD_VERIFY_FUNCTION : PL/SQL ফাংশন (যা কোনো পাসওয়ার্ড তৈরির আগে) পাসওয়ার্ড কমপ্লেকিটি চেকিংয়ের কাজে ব্যবহার করা হয়। এই ফাংশন অবশ্যই SYS স্কিমাতে বসে করতে হবে এবং অবশ্যই নিম্নলিখিত স্পেসিফিকেশন থাকতে হবে।
কমান্ড :

function_name(
userid_parameter IN VARCHAR2(30),
password_parameter IN VARCHAR2(30),
old_password_parameter IN VARCHAR2(30))
RETURN BOOLEAN

যখন স্ক্রিপটি সিস ইউজারে রান করানো হয় তখন ওরাকল সার্ভার Verify_Function ফাংশন তৈরি করে এবং নিম্নলিখিত কমান্ড দিয়ে ডিফল্ট প্রোফাইলটি পরিবর্তন করা যায়।

ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function;

পাসওয়ার্ড সেটিংয়ের জন্য প্রোফাইল তৈরির কমান্ড :

CREATE PROFILE grace_5 LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 30
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_GRACE_TIME 5;

পাসওয়ার্ড সেটিংয়ের জন্য অল্টার প্রোফাইল কমান্ড :

ALTER PROFILE default
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10;

প্রোফাইল ড্রপ করা :

DROP PROFILE developer_prof;

অথবা

DROP PROFILE developer_prof CASCADE;

তবে ডিফল্ট প্রোফাইল ড্রপ করা যাবে না।

রিসোর্স ব্যবস্থাপনা :

মূলত দুই প্রক্রিয়ায় রিসোর্স ব্যবস্থাপনা করা হয়ে থাকে। ০১. রিসোর্স লিমিট ইনিশিয়ালাইজ প্যারামিটার দিয়ে অথবা অল্টার সিস্টেম কমান্ড দিয়ে। যদি এর ভ্যালু সত্য হয় তবে রিসোর্স ব্যবস্থাপনা এনাবল হয়। ০২. রিসোর্স ব্যবস্থাপনায় সেশন অথবা কল লেভেলে সীমাবদ্ধতা আরোপ করা যায়।

রিসোর্স লিমিট আরোপ করে প্রোফাইল তৈরির কমান্ড :

CREATE PROFILE developer_prof LIMIT
SESSIONS_PER_USER 2
CPU_PER_SESSION 10000
IDLE_TIME 60
CONNECT_TIME 480;

পাসওয়ার্ড এবং রিসোর্স লিমিট সংক্রান্ত তথ্য জানার জন্য আমরা দুটি ভিউকে ব্যবহার করতে পারি। ০১. DBA_USERS, ০২. DBA_PROFILES।
নিম্নলিখিত কোয়েরি রান করে আমরা জানতে পারব ইউজারের অ্যাকাউন্ট স্ট্যাটাস :

SELECT username, password, account_status,
FROM dba_users;
USERNAME PASSWORD ACCOUNT_STATUS
SYS 8A8F025737A9097A OPEN
SYSTEM D4DF7931AB130E37 OPEN
OUTLN 4A3BA55E08595C81 OPEN
DBSNMP E066D214D5421CCC OPEN
HR BB69FBB77CFA6B9A OPEN
OE 957C7EF29CC223FC LOCKED

নিম্নলিখিত কোয়েরি রান করে আমরা জানতে পারব পাসওয়ার্ড প্রোফাইলের তথ্য :

ইউজার ব্যবস্থাপনা :

কোনো ডাটাবেজ কোনো ইউজার ব্যবহার করলে ডিবিএ তার জন্য ইউজারনেম নির্ধারণ করে। সিকিউরিটি ডোমেইন হচ্ছে তাই, যা কোনো ইউজারের কাজের পরিধি নির্ধারণ করে দেয়। চিত্র-১। মূলত তিন উপায়ে ইউজারের ডাটাবেজ ব্যবহারকে অথেন্টিকেট করা হয়। ০১. ডেটা ডিকশনারি, ০২. অপারেটিং সিস্টেম, ০৩. নেটওয়ার্ক।

ডাটাবেজ স্কিমা :

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



ডাটাবেজ অথেন্টিকেশনের মাধ্যমে একটি নতুন ইউজার তৈরির কমান্ড :

CREATE USER aaron
IDENTIFIED BY soccer
DEFAULT TABLESPACE data
TEMPORARY TABLESPACE temp
QUOTA 15m ON data
PASSWORD EXPIRE;
অপারেটিং সিস্টেম অথেন্টিকেশনের মাধ্যমে একটি নতুন ইউজার তৈরির কমান্ড :
CREATE USER aaron
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE temp
QUOTA 15m ON data
PASSWORD EXPIRE;

কোনো ইউজারের টেবিলস্পেসের কোটা পরিবর্তন করতে হলে নিম্নলিখিত কমান্ড প্রয়োগ করতে হবে :

ALTER USER aaron
QUOTA 0 ON USERS;

ইউজার ড্রপ করা, ইউজার ক্যাসকেইট করার কমান্ড নিম্নে দেয়া হলো :

DROP USER aaron;
DROP USER aaron CASCADE;

ইউজার সংক্রান্ত সব তথ্য নিম্নলিখিত ভিউগুলোতে জানা যাবে :

০১. DBA_USERS
০২. DBA_TS_QUOTAS

নিম্নলিখিত কোয়েরি রান করিয়ে ইউজার কোন টেবিলস্পেস ডিফল্ট হিসেবে পাচ্ছে তা জানতে পারবে।

SELECT username, default_tablespace
FROM dba_users ;

USERNAME DEFAULT_TABLESPACE
SYS SYSTEM
SYSTEM SYSTEM
OUTLN SYSTEM
DBSNMP SYSTEM
HR EXAMPLE
OE EXAMPLE

প্রিভিলেজ ব্যবস্থাপনা :

ওরাকল ইউজারের জন্য দুই ধরনের প্রিভিলেজ রয়েছে। ০১. সিস্টেম প্রিভিলেজ যা ডাটাবেজ ব্যবহারের জন্য কোনো নির্দিষ্ট অ্যাকশনকে অনুমোদন করে। ০২. অবজেক্ট প্রিভিলেজ যা কোনো নির্দিষ্ট অবজেক্টে ইউজারকে প্রবেশ এবং একে ম্যানুপুলেশনের অনুমোদন দেয়।

কিছু সিস্টেম প্রিভিলেজের উদাহরণ নিম্নে দেয়া হলো :

ধরন উদাহরণ
ইনডেক্স CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
টেবিল CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE
সেশন CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
টেবিলস্পেস CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
সিস্টেম প্রিভিলেজের কমান্ড

কোনো ইউজার থেকে প্রিভিলেজ কেড়ে নেয়ার জন্য নিম্নলিখিত কমান্ড প্রয়োগ করা হয় :
REVOKE CREATE TABLE FROM emi;

অবজেক্ট প্রিভিলেজ :

নিচের টেবিল থেকে কোন অবজেক্টে কোন প্রিভিলেজ দেয়া যাবে তা দেখতে পাই :

অবজেক্ট প্রিভিলেজ টেবিল ভিউ প্রসিডিউর

ALTER

DELETE

EXECUTE

INDEX

INSERT

REFERENCES

SELECT

UPDATE

কোনো ইউজারের কোনো অবজেক্ট প্রিভিলেজ বরাদ্দ দেয়ার কমান্ড :

GRANT UPDATE ON emi.customers TO jeff WITH
GRANT OPTION;

কোনো ইউজারের কোনো অবজেক্ট প্রিভিলেজ বরাদ্দ বাতিল করার কমান্ড :

REVOKE SELECT ON emi.orders FROM jeff;

রোলের ব্যবস্থাপনা :

কতগুলো পরস্পরযুক্ত প্রিভিলেজের সমষ্টি হলো রোল। রোলের মাধ্যমে সহজে প্রিভিলেজকে নিয়ন্ত্রণ করা যায়। চিত্র-২। প্রয়োজনমতো এই রোল ইউজারদের বরাদ্দ দেয়া হয়। রোল ক্রিয়েট করার কমান্ড :

CREATE ROLE hr_clerk
IDENTIFIED BY bonus;

রোল ব্যবহারের উপকারিতা

সহজ প্রিভিলেজ ব্যবস্থাপনা :

একই সেটের প্রিভিলেজ যেহেতু একটি রোল তৈরি করে, তাই আলাদা আলাদা করে আর কোনো ইউজারকে প্রিভিলেজ বরাদ্দ করার প্রয়োজন হয় না। বরং একটি রোলের মাধ্যমে সহজে অনেকগুলো প্রিভিলেজ ইউজারকে প্রদান করা হয়।

ডায়নামিক প্রিভিলেজ ব্যবস্থাপনা :

যখন কোনো রোলের আওতাধীন প্রিভিলেজ মডিফাই হয় তখনও ওই রোল প্রাপ্ত সব ইউজার তাৎক্ষণিকভাবে স্বয়ংক্রিয় উপায়ে মডিফাই প্রিভিলেজ অর্জন করবে।

অপারেটিং সিস্টেম কমান্ড ব্যবস্থাপনা :

অপারেটিং সিস্টেম ব্যবহার করে ইউজারদের ওপর রোল বরাদ্দ করা যেতে পারে।

রোল ক্রিয়েট করা :

রোল ক্রিয়েট করার জন্য অবশ্যই ওই ইউজারের ক্রিয়েট রোল প্রিভিলেজ থাকতে হবে। নিম্নে কিছু সংখ্যক রোলের উদাহরণ দেয়া হলো :

CONNECT, RESOURCE, DBA
EXP_FULL_DATABASE
IMP_FULL_DATABASE
DELETE_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
SELECT_CATALOG_ROLE

ইউজারকে রোল বরাদ্দ দেয়া :

ব্যবহারকারী অবজেক্ট কী কী ধরনের কাজ করতে পারবে তা ওরাকল প্রোগ্রামে নির্ধারণ করে দেয়া যায়। অবজেক্ট প্রিভিলেজগুলো সাধারণত ALART, DELETE, EXECUTE, INSERT, INDEX, REFERENCE, UPDATE ইত্যাদি হতে পারে। যেসব অবজেক্টের জন্য প্রিভিলেজ বরাদ্দ দেয়া যায় তা হলো-টেবিল, ইনডেক্স, ভিউ, ক্লস্টার, প্রসিডিউর ইত্যাদি। রোলের সাথে প্রিভিলেজ যুক্ত করার কমান্ড :

GRANT CONNECT TO scott
WITH ADMIN OPTION;

কোনো ইউজারের ওপর কোনো রোলকে ডিফল্ট করার কমান্ড :

ALTER USER scott
DEFAULT ROLE hr_clerk, oe_clerk;

নিম্নলিখিত কোয়েরি রান করিয়ে রোল, পাসওয়ার্ডের তথ্য আমরা জানতে পারব।

SQL> SELECT role, password_required
2 FROM dba_roles;
ROLE PASSWORD
CONNECT NO
RESOURCE NO
DBA NO
SELECT_CATALOG_ROLE NO
EXECUTE_CATALOG_ROLE NO
DELETE_CATALOG_ROLE NO
IMP_FULL_DATABASE NO
EXP_FULL_DATABASE NO
SALES_CLERK YES
HR_CLERK EXTERNAL


কজ ওয়েব

ফিডব্যাক : Ifthekhar@infobizsol.com
পত্রিকায় লেখাটির পাতাগুলো
লেখাটি পিডিএফ ফর্মেটে ডাউনলোড করুন
লেখাটির সহায়ক ভিডিও
চলতি সংখ্যার হাইলাইটস