USER VS. SCHEMA

مقایسه يوزر با اسكيما (User vs. Schema) در دیتابیس اوراکل
اساسا User با Schema در اوراكل فرقي ندارند ولي از نظر ماهيتي مي تواند متفاوت باشد. User يك نوع حسابي مي باشد كه براي اتصال (Connect) به اوراكل استفاده مي شود و Schema يك نوع حسابي است كه داراي ساختار منطقي مي باشد و شامل مجموعه اي از آبجكت ها ( …,sequences, stored procedures, synonyms, indexes, clusters)  است. بصورت تكنيكي Schema مجموعه اي از متاديتا (data dictionary) كه در ديتابيس استفاده مي شود.
مي توان Oracle Users را با نام ديگري بنام Application Users نيز بيان كرد. Oracle Users نياز دارند كه به آبجكت هاي Schema ها دسترسي داشته باشند.
حال در اوراكل مي توان User و Schema هايي داشت كه داراي هر دو خصوصيت باشند:
اسكيما SCOTT كه داراي چندين جدول و … مي باشد و در حين حال شما مي توانيد عمل اتصال را نيز با اين يوزر انجام دهيد.
اسكيماي SYS كه به نام يوزر هم استفاده مي شوند و شامل كليه آبجكت ها ميباشد.
در واقع با اسكيما ها نيز مي توان عمل اتصال (Connect) به ديتابيس را نيز انجام داد. كه معمولا اين عمل توسط توسعه دهندگان  (Developers, DBAs) انجام مي شود(براي اينكه بتوانند آبجكت هاي مربوطه را در اسكيماها ايجاد و همچنين دسترسي هاي لازم به ديگر اسكيماها يا يوزرها را اختصاص دهند) و اين عمل كلا براي كاربران عادي (End Users)  پيشنهاد نمي شود.
حال براي روشن شدن اين مفهوم با مثال بيان مي شود.
همانطور كه در زير مشاهده مي كنيد براي ايجاد اسكيما و يوزر از يك دستور استفاده مي شود  (CREATE USER)
ايجاد يك اسكيما با نام ACC


Schema owner = ACC
CREATE USER ACC IDENTIFIED BY password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;
GRANT CONNECT, CREATE TABLE TO ACC;

ايجاد يك يوزر با نام ARMIN


Application Users = ARMIN
CREATE USER ARMIN IDENTIFIED BY password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
GRANT CONNECT TO ARMIN;

حال مي خواهيم يك جدول را دراسكيماي ACC  ايجاد كنيم و سپس به يوزر ARMIN دسترسي دهيم

SQL> Conn ACC/password
SQL> CREATE TABLE test_tb (
id          NUMBER,
description VARCHAR2(100),
CONSTRAINT test_tb_pk PRIMARY KEY (id)
);
SQL> GRANT SELECT, INSERT, UPDATE, DELETE ON test_tb TO ARMIN;
SQL> CREATE SYNONYM test_tb FOR ACC.test_tb;
SQL> GRANT SELECT, INSERT, UPDATE, DELETE ON test_tb TO ARMIN;
SQL> CREATE SYNONYM test_tb FOR ACC.test_tb;

5/5 - (1 امتیاز)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این قسمت نباید خالی باشد
این قسمت نباید خالی باشد
لطفاً یک نشانی ایمیل معتبر بنویسید.

keyboard_arrow_up
Oracle APEX Capabilities (OAC)