Bài 2
QUẢN LÝ NGƯỜI DÙNG
Mục tiêu
● Sau buổi thực hành này sinh viên sẽ hiểu
được: ● Quản trị người dùng. ● Các quyền hệ thống và quyền đối tượng. ● Cấp quyền và thu hồi quyền. ● Quản trị nhóm (role). ● Tạo/xóa/thay đổi bảng dữ liệu, tạo chỉ mục. ● Thêm/xóa/thay đổi dữ liệu trong một bảng.
Nội dung
●
●
●
●
●
●
Quản lý người dùng Quản lý quyền hệ thống Quản lý quyền đối tượng Quản lý nhóm (ROLE) Cú pháp các lệnh DDL Các kiểu dữ liệu trong Oracle
Quản lý người dùng (1)
● Tạo mới người dùng
● Các bước tạo mới người dùng
● Lựa 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.
● Chỉ ra các tablespaces cho user dùng để lưu trữ dữ liệu. ● Phân bổ hạn mức sử dụng trên từng tablespace. ● Gán các default tablespace và temporary tablespace. ● Phân quyền truy nhập (privileges - quyền; roles) cho user vừa tạo
lập
Quản lý người dùng (2)
● Tạo mới người dùng
CREATE USER username IDENTIFIED {BY password | EXTERNALLY} [ DEFAULT TABLESPACE tablespace] [ TEMPORARY TABLESPACE tablespace] [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] ... ]
Quản lý người dùng (3)
● Thay đổi mật khẩu của người dùng
● ALTER USER
● Thay đổi hạn mức (quota) sử dụng tablespace
ALTER USER user [ DEFAULT TABLESPACE tablespace] [ TEMPORARY TABLESPACE tablespace] [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ] ... ]
● Xóa người dùng
DROP USER username [CASCADE]
● Thông tin về người dùng
● 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 người dùng, ta có thể xác định được các thông tin về hạn mức
sử dụng
● Hoặc ta cũng có thể lấy các thông tin về tài khoản của người dùng
Quản lý quyền hệ thống (1)
● Các loại quyền hệ thống
TABLE
CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE
SESSION
CREATE SESSION ALTER SESSION RESTRICTED SESSION
TABLESPACE
CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE
Phân loại Các quyền thông dụng
Quản lý quyền hệ thống (2)
● Gán các quyền hệ thống
● Cú pháp
GRANT {system_priv|role}[,{system_priv|role} ]... TO {user|role|PUBLIC}[, {user|role|PUBLIC} ]... [WITH ADMIN OPTION] ● Thu hồi các quyền hệ thống
● Cú pháp
REVOKE {system_priv|role}[, {system_priv|role} ]... FROM {user|role|PUBLIC}[, {user|role|PUBLIC} ]...
● Xem thông tin về các quyền
● Cú pháp:
● Thông tin về các quyền được lấy từ các view của data dictionary:
DBA_SYS_PRIVS và SESSION_PRIVS.
● Các thông tin bao gồm:
▪ DBA_SYS_PRIVS: GRANTEE, PRIVILEGE, ADMIN OPTION ▪ SESSION_PRIVS: PRIVILEGE
Quản lý quyền đối tượng (1)
● Quyền trên các đối
tượng
Quyền
Table
View
Procedu re
ALTER
X
DELETE
X
X
EXECUTE
X
INSERT
X
X
SELECT
X
X
UPDATE
X
X
Giới thiệu về quản lý ROLE
● Role trong database
● Oracle cung cấp công cụ cho phép quản lý một cách dễ dàng các quyền thông qua việc sử dụng nhóm (Role). ● Role là một nhóm các quyền được gán cho các user hay
Role khác
Giới thiệu về quản lý Role (tt)
● Lợi ích của việc sử dụng Role
● Giảm công việc gán các quyền: ● Quản lý các quyền một cách linh động ● Giới thiệu về các Role được định nghĩa sẵn
CONNECT
Role cung cấp sẵn để tương thích với các phiên bản
trước đó
RESOURCE
DBA
Tất cả các quyền hệ thống, có tuỳ chọn: WITH
ADMIN OPTION
EXP_FULL_DATABASE
Quyền export dữ liệu của database
IMP_FULL_DATABASE
Quyền import dữ liệu vào database
DELETE_CATALOG_ROLE
Quyền xoá dữ liệu
EXECUTE_CATALOG_ROLE
Quyền thực hiện một thủ tục
SELECT_CATALOG_ROLE
Quyền lấy dữ liệu
Tên Role Diễn giải
Quản lý Role (tt)
● Thông tin về các Role:
● Được lấy trong data dictionary. ● Có rất nhiều tables và views chứa thông tin về các quyền
được gán cho user.
Tên view
Diễn giải
DBA_ROLES
Tất cả các Role trong CSDL
DBA_ROLE_PRIVS
Các Role đã được gán quyền cho user hay Role khác
ROLE_PRIVS
Các Role đã được gán quyền cho Role khác
DBA_SYS_PRIVS
Quyền hệ thống gán cho user hay Role
ROLE_SYS_PRIVS
Quyền hệ thống gán cho Role
ROLE_TAB_PRIVS
Quyền trên table được gán cho Role
SESSION_ROLES
Các Role được phép của user hiện thời
Bảng dữ liệu
● Lệnh tạo bảng dữ liệu
● Cú pháp:
CREATE [GLOBAL TEMPORARY] TABLE [
buộc trên cột[,
● Lệnh sửa đổi bảng dữ liệu
● Cú pháp:
ALTER TABLE
● Lệnh xó a bả ng dữ liệu
● Cú pháp:
CONSTRAINTS]
▪ DROP TABLE tbl_name [, tbl_name] ... [CASCADE
Bảng dữ liệu (tt)
● Lệnh chèn record vào bảng
● Cú pháp
INSERT INTO tbl_name [(
● Cú pháp
UPDATE tbl_name SET
[WHERE
● Lệnh xóa record trong bảng
● Cú pháp:
DELETE FROM tbl_name [WHERE
Sequence
● Tạo Sequence ● Cú pháp:
CREATE SEQUENCE
● Sử dụng Sequence
● Để làm việc với các sequence, dùng lệnh SQL với các cột giả sau
▪ CURRVAL Cho giá tri hiện thời của sequence. ▪ NEXTVAL Tăng giá tri hiện thời của sequence và cho giá trị sau khi tăng.
● Sửa Sequence ● Cú pháp
ALTER SEQUENCE
● Xóa Sequence ● Cú pháp
DROP SEQUENCE
Index
● Cú pháp:
CREATE INDEX index_name ON TABLE ( column [,column...]);
Các kiểu dữ liệu trong Oracle
Tên kiểu Giả i thı́ch Biểu diễn hằng
number(p,s) Kiểu số thâ ̣p phân (10-84 → 10127) 1894.1204
Integer Kiểu số nguyên, tương đương vớ i Number(38) 1, 20
Float Kiểu số thực, tương đương vớ i Number 101.5E5, 0.5E-2
Date Ngày tháng (1/1/-4712 → 31/12/9999)
'10-FEB-04', '10/02/04' (tù y vào đi ̣nh da ̣ng thể hiê ̣n ngày củ a hê ̣ thố ng)
Char Ký tự có đô ̣ dài ô nhớ cố đi ̣nh và tố i đa là 255 ký '50% complete.'
tự (không hỗ trơ ̣ Unicode)
Nchar Ký tự có đô ̣ dài ô nhớ cố đi ̣nh và tố i đa là 255 ký
‘Nguyễn Văn Minh’ ‘Lương Tâm’ tự (hỗ trơ ̣ Unicode)
Varchar2 Ký tự có đô ̣ dài ô nhớ không cố đi ̣nh và tố i đa là '50% complete.'
2000 ký tự (không hỗ trơ ̣ Unicode)
Nvarchar2 Ký tự có đô ̣ dài ô nhớ không cố đi ̣nh và tố i đa là
2000 ký tự (hỗ trơ ̣ Unicode) ‘Nguyễn Văn Minh’ ‘Lương Tâm’