Thứ Bảy, 22 tháng 2, 2020

HỌC ORACLE DB TỪ A-Z - BÀI 17: QUẢN LÝ USER

17.1.USER TRONG DATABASE

17.1.1.  User và những thành phần liên quan

Security Domain
Quản trị viên database định nghĩa các tên User. Qua đó, cho phép người sử dụng có thể truy nhập vào database thông qua các tên user này. Security domain (bảo mật theo miền) định nghĩa các quyền truy nhập nhất định trên các đối tượng trong database và áp dụng các quyền này cho từng user có trong database.
Hình vẽ 1.    Các thành phần bảo mật


Authentication Mechanism (Cơ chế xác nhận)
Mỗi user truy cập vào database đều trải qua bước xác nhận quyền truy nhập. Việc này có thể được thực hiện bởi:
§  Database
§  Hệ điều hành
§  Xác nhận quyền thông qua đường mạng
Tuy nhiên, trong tài liệu này ta chỉ quan tâm tới việc xác nhận bởi database.

Tablespace Quotas (hạn mức tablespace)
Tablespace quotas điều khiển số lượng table space ứng với khả năng lưu trữ vật lý được phép đối với mỗi user trong database.

Default Tablespace (tablespace mặc định)
Là tablespace mặc định chứa các segments do tiến trình của user sử dụng để lưu trữ dữ liệu trong trường hợp User không chỉ rõ tên tablespace ngay khi tạo segment.


Temporary Tablespace (tablespace trung gian)
Temporary tablespace là nơi Oracle server cấp phát các extents phục vụ cho công việc sắp xếp (sort) mỗi khi thực hiện lệnh sắp xếp của User đó.
Account Locking (khoá account)
Các Accounts có thể bị khoá (locked) để ngăn cản việc user thâm nhập vào database. Việc này có thể được thực hiện một cách tự động hoặc do điều khiển của quản trị viên database.

Resource Limits (hạn chế tài nguyên)
Là những giới hạn được đưa ra cho mỗi user về các tài nguyên của hệ thống như: thời gian sử dụng CPU, truy xuất vào ra I/O, số lượng các sessions được mở tối đa,... Những giới hạn về tài nguyên sẽ được bàn kỹ trong chương sau.

17.1.2.  Database schema

Schema được xem như một tập hợp các đối tượng như tables, views, clusters, procedures, và packages, cùng có một quan hệ gắn liền với một user nào đó. Mỗi khi user trong database được tạo, một schema tương ứng với user cũng sẽ được tạo lập với cùng tên. Mỗi user chỉ có thể gắn liền với một schema có cùng tên, vì thế username và schema nhiều khi có thể dùng lẫn thay cho nhau.
Hình dưới đây sẽ liệt kê các đối tượng trong schema của mỗi users Oracle database.
Hình vẽ 2.    Database schema

17.2.QUẢN LÝ USER

17.2.1.  Các bước thực hiện khi tạo mới user

1.      Lựu chọn username (tên user dùng để truy cập database) và cơ chế xác nhận đối với user này.
2.      Chỉ ra các tablespaces cho user dùng để lưu trữ dữ liệu.
3.      Phân bổ hạn mức sử dụng trên từng tablespace.
4.      Gán các default tablespace và temporary tablespace.
5.      Tạo user.
6.       Phân quyền truy nhập (privileges - quyền; roles - chức danh) cho user vừa tạo lập.

17.2.2.  Tạo mới user với cơ chế xác nhận bởi database

Với cơ chế này, database sẽ sử dụng mật khẩu của user để xác nhận mỗi khi user kết nối tới database. Mỗi mật khẩu của user, sẽ được Oracle server lưu trữ ngay trong data dictionary và nó có thể kiểm tra rất dễ dàng mỗi khi User kết nối tới database.
Cú pháp:
CREATE USER user
IDENTIFIED {BY password | EXTERNALLY}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ] ...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
[ PROFILE { profile | DEFAULT }]

Với:
user                             tên truy nhập của user
BY password              xác định cơ chế xác nhận user bởi database với mật khẩu truy nhập là password
EXTERNALLY         xác định cơ chế xác nhận user bởi hệ điều hành
DEFAULT/TEMPORARY TABLESPACE
xác định default/temporary tablespace cho user
QUOTA                      xác định lượng không gian tối đa cấp phát cho user để lưu trữ các đối tượng trong từng tablespace tương ứng. Từ khoá UNLIMITED cho biết không hạn định số lượng không gian cấp phát.
PASSWORD EXPIRE
bắt buộc user phải chỉ rõ mật khẩu mỗi khi user thực hiện kết nối tới database thông qua SQL*PLUS (Phương thức này chỉ có tác dụng khi user sử dụng cơ chế xác nhận bởi database)
ACCOUNT LOCK/ UNLOCK
sử dụng tuỳ chọn này để lock/unlock đỗi với mỗi user một cách tường minh (mặc định là UNLOCK).
PROFILE                    dùng để điều khiển tài nguyên của user.

Lưu ý:
Khi thiết lập tuỳ chọn PASSWORD EXPIRE trong lệnh tạo user, khi user sử dụng SQL*PLUS để kết nối tới database, mỗi lần kết nối user lại phải nạp mới mật khẩu. Việc truy cập thông thường sẽ nhận được thông báo:
ERROR:
ORA-28001: the account has expired
Changing password for PETER
Old password:
New password:
Retype new password:
Password changed

Trong OEM ta có thể thực hiện theo các bước sau
7.      Sử dụng Oracle Security Manager.
8.      Chọn User—>Create.
9.      Nhập vào thông tin của trong phần General page.
10.  Chỉ rõ hạn mức sử dụng trong phần Quotas.
11.  Bấm nút Create.

17.2.3.  Thay đổi thuộc tính của user

Ta sử dụng câu lệnh ALTER USER khi thực hiện các thay đổi user như mật khẩu, lock. Sử dụng khi:
§  Thay đổi mật khẩu khi user quên mật khẩu.
§  Lock/Unlock đối với các account của user.
§  Thay đổi mật khẩu theo từng phiên làm việc.
Cú pháp:
ALTER USER user
[ IDENTIFIED {BY password | EXTERNALLY }]
[ PASSWORD EXPIRE]
[ ACCOUNT {LOCK | UNLOCK }] ;
Ví dụ:
ALTER USER peter
IDENTIFIED BY hisgrandpa
PASSWORD EXPIRE;
Lưu ý: khi user đã bị lock mà vẫn cố gắng kết nối tới database. Oracle server sẽ phát sinh lỗi
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.

Trong OEM ta có thể thực hiện theo các bước sau
12.  Chạy Oracle Security Manager.
13.  Chuyển tới nút Users.
14.  Chọn username tương ứng.
15.  Chọn User—>Change Account Status.
16.  Thực hiện thay đổi các trạng thái Unlock, Lock, or Expire.
17.  Nhập vào các thông tin trong phần General page.
18.  Bấm nút Apply.

17.2.4.  Thay đổi hạn mức (quota) sử dụng tablespace

Trong một số trường hợp, ta có thể thay đổi hạn mức sử dụng tablespace khi:
§  Các tables của user đó không thể mở rộng để lưu trữ thêm được nữa
§  Các ứng dụng được cải tiến đòi hỏi bổ sung thêm các tables hay indexes.
§  Các đối tượng được tổ chức lại và được đặt trên nhiều tablespaces khác nhau.

Cú pháp:
ALTER USER user
[ DEFAULT TABLESPACE tablespace]
[ TEMPORARY TABLESPACE tablespace]
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] ... ]
Ví dụ:
ALTER USER peter
QUOTA 0 ON data01;
Trong OEM, ta thực hiện theo các bước sau
19.  Chạy Oracle Security Manager.
20.  Chuyển tới nút Users.
21.  Chọn username tương ứng.
22.  Nhập vào các thông tin thích hợp trong phần Quotas.
23.  Bấm nút Apply.

17.2.5.  Huỷ User

Huỷ bỏ user khỏi database
Cú pháp:
DROP USER user [CASCADE]
Ví dụ:
DROP USER peter;

Hoặc
DROP USER peter CASCADE;
Lưu ý:
§  CASCADE sẽ huỷ tất cả các đối tượng trong schema trước khi xoá User. Nó cần được chỉ rõ khi schema chứa nhiều đối tượng.
§  Ta không thể huỷ được các user hiện đang kết nối tới Oracle server.

17.3.THÔNG TIN VỀ USER

Ta có thể lấy các thông tin liên quan tới user trong data dictionary DBA_USERSDBA_TS_QUOTAS.
Với mỗi user, ta có thể xác định được các thông tin về hạn mức:
Ví dụ:
SVRMGR> SELECT tablespace_name, blocks, max_blocks,bytes,
max_bytes
2> FROM dba_ts_quotas
3> WHERE username = 'SCOTT';

TABLESPACE_NAME                  BLOCKS        MAX_BLOCKS           BYTES                                     MAX_BYTES
---------------                -------            ----------            -------            -----------
DATA01                     10                 -1                     20480           -1
1 row selected.
Giá trị -1 trong cột MAX_BLOCKSMAX_BYTES cho biết cột này chưa được gán giá trị tường minh.
Hình vẽ 3.    Thông tin về User trong data dictionary

Hoặc ta cũng có thể lấy các thông tin về Account của user
Ví dụ:
SVRMGR> SELECT username, account_status, temporary_tablespace
2> FROM dba_users;

USERNAME              ACCOUNT_STATUS   TEMPORARY_TABLESPACE
---------------                 ----------------                   --------------------
SYS                             OPEN                             TEMP
SYSTEM                    OPEN                             TEMP
DBSNMP                    OPEN                             TEMP
SCOTT                       OPEN                             TEMP
4 rows selected.



@ Trần Văn Bình - Founder of Oracle DBA AZ
#học oracle #oracle database #khóa học oracle online #khóa học oca #học oca ở đâu #oca là gì #oca oracle #BossData #OraAz #OracleDBAAz #OracleTutorial #Quản_trị_cơ_sở_dữ_liệu_Oracle #OracleDBA #OracleDatabaseAdministration

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master