User là gì?

  • User: là một tài khoản trong cơ sở dữ liệu Oracle, sau khi được khởi tạo và gán quyền bằng lệnh CREATE USER thì tài khoản này được phép đăng nhập và sở hữu một schema trong cơ sở dữ liệu

Schema là gì?

  • Schema: là 1 tập hợp các đối tượng trong cơ sở dữ liệu Oracle được quản lý bởi 1 user nào đó, các đối tượng của schema có thể là table, view, stored procedures, index, sequence… Schema được tự động tạo cùng với user khi thực thi lệnh CREATE USER trong SQL PLUS.
  • Việc lưu trữ vật lý các đối tượng dữ liệu của Schema(như table, indexes, clusters) được thực hiện bởi các Tablespace, 1 Tablespace có thể lưu dữ liệu của nhiều Schema và các đối tượng dữ liệu trong 1 Schema có thể được lưu trữ trong nhiều Tablespace khác nhau tùy theo mô hình dữ liệu.

Cách tạo Schema

  • Mối quan hệ giữa User và Schema là quan hệ 1 – 1, một User chỉ quản lý 1 Schema, và cũng chỉ có 1 Schema được khởi tạo khi thực thi lệnh CREATE USER.
  • Schema được tự động tạo cùng với user khi thực thi lệnh CREATE USER
    • Ví dụ dưới đây ta tạo mới một user tên là MYUSER và mật khẩu là p@ssword. Tiếp chúng ta sử dụng tablespace mặc định USERS. Tablespace tạm thời là TEMP.
    • Chúng ta có thể điều khiển được dung lượng một user sử dụng trong một tablespace. Ở ví dụ trên chúng ta định nghĩa quotas cho user trên 2 tablespace khác nhau. Một là quota không giới hạn trên tablespace mặc định USERS. Hai là, giới hạn quota cho MYUSER 100M trên MY_DATA tablespace. Chú ý trong trường hợp này, M nghĩa là Megabyte.
    • Về cách tạo và quản lý tablespace, hãy tham khảo bài viết : Hướng dẫn sử dụng tablespace
CREATE USER myuser IDENTIFIED BY p@ssword
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
QUOTA 100M ON my_data;
  • Cấp quyền cho user

Để cho user có thể đăng nhập tạo session và thực hiện các quyền cơ bản như: tạo Bảng, trigger, sequence.

-- Login and create session permission
grant create session to demo;
-- Basic permission
grant create table to demo;
grant create trigger to demo;
grant create sequence to demo;
GRANT CREATE VIEW TO demo;

Hoặc cấp quyền cho user với vai trò là một DBA.
-- Admin/DBA permission
grant all PRIVILEGES on demo to demo;
-- OR
GRANT dba, connect to demo;

Comment