Create New User

Một trong những task phổ biến nhất của DBA là tạo mới và quản trị user. Bài viết này tổng hợp và hướng dẫn cách tạo mới một User trong Oracle và cấp quyền làm việc cho user mới này.

Chúng ta cần phân biệt được khái niệm giữa User và Schema. Ở đây, 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.

  • 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à 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.

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.

Tạo mới User

Sử dụng lệnh CREATE USER để thêm mới một user như sau:

CREATE USER myuser IDENTIFIED BY p@ssword
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
QUOTA 100M ON my_data;

Ví dụ trên 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:
http://how.vndemy.com/databases/223-huong-dan-quan-ly-tablespace-trong-oracle/

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;

Tham khảo:
http://www.oracle-dba-online.com/sql/grant_and_revoke_privileges.htm

About The Author