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 امتیاز)

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

نشانی ایمیل شما منتشر نخواهد شد.

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

فهرست
Oracle APEX Capabilities (OAC)