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.
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.
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_USERS
và DBA_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_BLOCKS và MAX_BYTES
cho biết cột này chưa được gán giá trị tường minh.
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