Các nội dung trong quản lý người dùng - Tạo và quản lý tài khoản người dùng CSDL Xác thực người dùng Gán vùng dữ liệu mặc định cho người dùng - Gán và phân quyền cho người dùng - Tạo
Trang 1HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
BÀI TẬP LỚN MÔN Cơ sở dữ liệu II
ĐỀ TÀI: Quản lý người dùng trong Oracle
Giảng viên hướng dẫn: Giang Thị Thu Huyền
Hà Nội – 03/2021
Trang 2Danh sách thành viên nhóm 11
ST
Ghi chú
1 Trần Thị Hải Yến (Nhóm
2 Nguyễn Thị Minh Nguyệt 22A4040031
6 Nguyễn Vũ Hoàng Long 22A4040109
Trang 3Mục lục
Lời mở đầu 1
I Giới thiệu về quản lý người dùng 2
1 Quản lý người dùng là gì? 2
2 Các nội dung trong quản lý người dùng 2
II Tablespace 2
III Schema 3
IV Account (tài khoản) 4
1 Tạo tài khoản người dùng 4
2 Xác thực tài khoản người dùng(Authenticating Users) 6
3 Sửa đổi Tài khoản Người dùng 6
4 Khóa và mở khóa tài khoản người dùng 7
5 Hết hạn mật khẩu người dùng 8
6 Xóa tài khoản người dùng 8
V Privilege (quyền) 9
VI Role 12
VII Profile 14
1 Giới thiệu profile 14
1.1 Khái niệm 14
1.2 Các loại tài nguyên 14
1.3 Sử dụng profile 14
2 Quản lý profile 15
2.1 Tạo profile 15
2.2 Thiết lập các giới hạn về tài nguyên 15
2.3 Gán profile cho user 16
2.4 Thay đổi thông tin trong profile 17
2.5 Huỷ profile 18
VIII Bảo mật mật khẩu 18
1 Tạo profile quản lý mật khẩu 19
Trang 42 Các tham số điều chỉnh mật khẩu 20
3 Hàm kiểm tra mật khẩu 20
IX Hạn mức 20
X Kết luận 21
XI Tài liệu tham khảo 22
Trang 5Lời mở đầu
Mỗi cơ sở dữ liệu (CSDL) có một danh sách những người dùng (user) cơ sở
dữ liệu Tuy nhiên không phải người dùng nào cũng có quyền truy cập toàn bộ cơ
sở dữ liệu mà chỉ được xem, thao tác với một phần trong đó Vì vậy, quản trị viên
cơ sở dữ liệu (gọi tắt là DBA) cần nhằm ngăn chặn các truy cập không được phép,
đảm bảo dữ liệu được toàn vẹn và không bị thất thoát – bằng cách quản lý người dùng
Trang 6I Giới thiệu về quản lý người dùng
1 Quản lý người dùng là gì?
- Quản lý người dùng (user management) là tạo và quản lý thông tin đăng nhập
đồng thời giới hạn truy cập cho từng người dùng
2 Các nội dung trong quản lý người dùng
- Tạo và quản lý tài khoản người dùng CSDL
Xác thực người dùng
Gán vùng dữ liệu mặc định cho người dùng
- Gán và phân quyền cho người dùng
- Tạo và quản lý các role
- Tạo và quản lý các profile
Thực thi các tính năng an toàn mật khẩu
Quản lý tài nguyên của người dùng
Trước khi đi vào các nội dung của quản lý người dùng trong Oracle, ta cần nắmđược một số nội dung sau:
II Tablespace
- Một CSDL Oracle được chia thành những đơn vị lưu trữ luận lý được gọi là các
tablespace, nhằm mục đích gom nhóm các cấu trúc luận lý có liên quan với
nhau
- Mỗi CSDL có 1 hoặc nhiều các tablespace Mỗi tablespace chứa 1 hoặc nhiều các datafile Datafile là các cấu trúc vật lý tương thích với hệ điều hành bên dưới, dùng để lưu trữ dữ liệu của các cấu trúc luận lý trong tablespace chứa nó Kích thước tổng cộng của các datafile chính là dung tích lưu trữ tổng cộng của
tablespace đó.
Một CSDL có 2 tablespace SYSTEM và USERS.
Tablespace SYSTEM chứa 2 datafile là DATA1.ORA và DATA2.ORA
Trang 7Một tablespace chứa 2 datafile.
Bên trong các datafile là các đối tượng, như là table và index.
Các đối tượng trong tablespace có thể nằm trên vài datafile.
- Một tablespace có thể không chứa hoặc chứa nhiều segment (Segment: các đối
tượng lưu trữ bên ngoài data dictionary, ví dụ: table, index…)
- Có 2 loại tablespace:
System tablespace:
Mọi CSDL Oracle đều có 2 system tablespace là SYSTEM và SYSAUX,được tạo ra một cách tự động
Chứa thông tin về các data dictionary views, các định nghĩa của stored
procedures, packages, và các database triggers dưới dạng PL/SQL program units, SYSTEM rollback segment,…
Không nên chứa dữ liệu người dùng trong tablespace này mặc dù có thể
Non-system tablespace:
Dùng để chứa các loại dữ liệu còn lại, đặc biệt là các dữ liệu của ngườidùng
- Một cách phân loại khác của tablespace:
Temporary tablespace: được sử dụng để dành riêng cho các thao tác sắp
xếp dữ liệu
Permanent tablespace: Các tablespaces không phải là temporary
tablespaces được gọi là các permanent tablespaces Các permanenttablespace được sử dụng để lưu trữ dữ liệu trong database
III Schema
Trang 8- Schema là một tập hợp các đối tượng cơ sở dữ liệu (vd: table, view, index,…).
Mỗi schema được sở hữu bởi một user và có cùng tên với user
Không có mối quan hệ nào giữa schema và tablespace Các đối tượng thuộc
1 schema có thể nằm trên các tablespace khác nhau và 1 tablespace có thểchứa các đối tượng thuộc nhiều schema khác nhau
IV Account (tài khoản)
Để người dùng truy cập cơ sở dữ liệu của bạn, bạn phải tạo tài khoản người dùng
và cấp đặc quyền truy cập cơ sở dữ liệu thích hợp cho các tài khoản đó Tài khoản người dùng được xác định bằng tên người dùng và xác định các thuộc tính của người dùng, bao gồm các thuộc tính sau:
1 Tạo tài khoản người dùng
Đi tới trang Users
Trên trang Users, nhấp vào Create
Trang Create Users xuất hiện, hiển thị trang con General
Trang 9 Trong trường Name , hãy nhập Nick.
Trong danh sách Profile, chấp nhận giá trị DEFAULT Cài đặt này chỉ định
chính sách mật khẩu mặc định cho user.
Chấp nhận giá trị mặc định Password trong danh sách Authentication (Xácthực)
Ở các trường Enter password và Confirm Password, hãy nhập mật khẩu.
Không chọn Expire password now (Hết hạn mật khẩu ngay bây giờ) Nếu
trạng thái tài khoản được đặt thành hết hạn, thì người dùng hoặc người quản trị
cơ sở dữ liệu phải thay đổi mật khẩu trước khi người dùng có thể đăng nhập vào
(Tùy chọn) Bên cạnh trường Temporary Tablespace, nhấp vào biểu tượng đèn pin, chọn không gian bảng TEMP , sau đó nhấp vào SELECT.
Nếu bạn để trống trường Temporary Tablespace, thì Nick sẽ được gán khônggian bảng tạm thời mặc định cho cơ sở dữ liệu, vùng này nằm TEMP trong cơ
sở dữ liệu mới được cài đặt
Đối với tùy chọn Status, hãy chấp nhận lựa chọn mặc định là Unlocked (Đã mở
khóa).
Sau đó, bạn có thể khóa tài khoản người dùng để ngăn người dùng đăng nhậpbằng tài khoản đó Để tạm thời từ chối quyền truy cập vào tài khoản ngườidùng, việc khóa tài khoản người dùng tốt hơn là xóa tài khoản, vì xóa tài khoảncũng xóa tất cả các đối tượng lược đồ do người dùng sở hữu
Cấp vai trò, đặc quyền hệ thống và đặc quyền đối tượng cho người dùng
Gán hạn mức 10 MB trên vùng tablespace USERS
Nếu bạn không bấm OK trong khi gán hạn mức vùng bảng (bước trước), thì
bấm OK ngay để tạo người dùng.
Ví dụ
Trang 10CREATE USER "LINHNT" PROFILE "DEFAULT" IDENTIFIED BY
"*******"
DEFAULT TABLESPACE "LINHNT" TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK GRANT "CONNECT" TO "LINHNT"
2 Xác thực tài khoản người dùng(Authenticating Users)
- Password: đây còn được gọi là việc xác thực bằng Oracle database Mỗingười dùng liên kết với một mật khẩu và người dùng phải cung cấp mật khẩukhi đăng nhập
CREATE USER rajesh IDENTIFIED BY welcome;
- External: là việc xác thực bởi Hệ điều hành User có thể kết nối với Oracledatabase mà không cần username hay password
CREATE USER ops$oracle IDENTIFIED BY EXTERNALLY;
- Global: với việc sử dụng Oracle Advance Security option (tuỳ chọn bảo mật
nâng cao Oracle), Global authentication xác nhận người dùng bằng sinh trắc
học, chứng thực x509, chữ ký số và dịch vụ thư mục Internet Oracle
CREATE USER spy_master IDENTIFIED GLOBALLY AS
'CN=spy_master, OU=tier2, O=security, C=US' ;
3 Sửa đổi Tài khoản Người dùng
Giả sử muốn loại bỏ các giới hạn Hạn mức cho người dùng User trên defaulttablespace – USERS => phải sửa đổi tài khoản người dùng
Trang 11Để sửa đổi user:
Đi tới trang Users
Trong cột Select , chọn tài khoản Nick, sau đó nhấp vào Edit.
Nếu bạn không thấy Nick, thì có thể nó đang ở một trang khác Trong trườnghợp này, hãy thực hiện một trong các thao tác sau:
Ngay phía trên danh sách user accounts, nhấp vào Next để xem trang tiếp theo Tiếp tục nhấp vào Next cho đến khi bạn thấy tài khoản Nick
Sử dụng Search area of the page để tìm kiếm tài khoản Trong
trường Object Name, nhập các chữ cái NI , rồi bấm Go.
Sau đó, bạn có thể chọn tài khoản Nick và nhấp vào Edit.
Trang Edit User xuất hiện và hiển thị các thuộc tính chung cho Nick
Ở đầu trang, hãy chọn trang con Quota (Hạn mức)
Trong cột Quota cho vùng bảng USERS, hãy chọn Unlimited từ danh sách, sau đó bấm Apply.
Một thông báo xuất hiện, cho biết rằng Nick người dùng đã được sửa đổithành công
4 Khóa và mở khóa tài khoản người dùng
Để tạm thời từ chối quyền truy cập vào cơ sở dữ liệu cho một tài khoản người dùng
cụ thể, bạn có thể khóa tài khoản người dùng Nếu người dùng sau đó cố gắng kếtnối, thì cơ sở dữ liệu sẽ hiển thị thông báo lỗi và không cho phép kết nối Bạn có thể
mở khóa tài khoản người dùng khi bạn muốn cho phép truy cập lại cơ sở dữ liệucho người dùng đó
Để khóa hoặc mở khóa tài khoản người dùng:
Đi tới trang Users
Trong cột Select, bấm vào tài khoản người dùng mong muốn.
Nếu bạn không thấy tài khoản người dùng mong muốn, thì tài khoản đó có thể
nằm trên một trang khác Trong trường hợp này, hãy sử dụng nút Next để xem
các trang bổ sung hoặc sử dụng Search area of the page để tìm kiếm
Làm một điều trong số sau đây:
Để khóa tài khoản, hãy chọn Lock User từ danh sách Actions, sau đó bấm Go.
Trang 12 Để mở khóa tài khoản, hãy chọn Unlock User từ danh sách Actions, sau đó bấm Go.
Một thông báo xác nhận xuất hiện
Nhấp vào Yes.
5 Hết hạn mật khẩu người dùng
Khi bạn hết hạn mật khẩu người dùng, người dùng được nhắc thay đổi mật khẩu củamình vào lần tiếp theo người dùng đó đăng nhập Các lý do khiến mật khẩu hết hạnbao gồm những điều sau:
Mật khẩu người dùng bị xâm phạm
Bạn có một chính sách bảo mật yêu cầu người dùng thay đổi mật khẩu của họthường xuyên
Ghi chú: Bạn có thể tự động hóa việc tự động hết hạn mật khẩu của người
dùng sau một khoảng thời gian nhất định
Người dùng đã quên mật khẩu của mình
Trong trường hợp thứ ba này, bạn sửa đổi tài khoản người dùng, gán mật khẩu tạmthời mới và hết hạn sử dụng Sau đó, người dùng đăng nhập bằng mật khẩu tạm thời
và được nhắc chọn mật khẩu mới
Để hết hạn mật khẩu người dùng:
Đi tới trang Users
Trong cột Select, bấm vào tài khoản người dùng mong muốn.
Nếu bạn không thấy tài khoản người dùng mong muốn, thì tài khoản đó cóthể nằm trên một trang khác Trong trường hợp này, hãy sử dụng nút Next đểxem các trang bổ sung hoặc sử dụng Search area of the page để tìm kiếm
Để hết hạn mật khẩu cho tất cả người dùng, hãy chọn tùy chọn Multiple, sau
đó nhấp vào Select All.
Chọn Expire Password từ danh sách Actions, sau đó bấm Go.
Một thông báo xác nhận xuất hiện
Nhấp vào Yes để hoàn thành.
6 Xóa tài khoản người dùng
Bạn phải thận trọng khi quyết định xóa tài khoản người dùng, vì hành động nàycũng xóa tất cả các đối tượng lược đồ do người dùng sở hữu Để ngăn người dùng
Trang 13đăng nhập vào cơ sở dữ liệu trong khi vẫn giữ nguyên các đối tượng lược đồ, hãykhóa tài khoản người dùng thay thế
Để xóa tài khoản của người dùng:
Đi tới trang Users
Trong cột Select, chọn tài khoản người dùng, sau đó bấm Delete.
Nếu bạn không thấy tài khoản người dùng mong muốn, thì tài khoản đó cóthể nằm trên một trang khác Trong trường hợp này, hãy sử dụng nút Next đểxem các trang bổ sung hoặc sử dụng Search area of the page để tìm kiếm.Một trang xác nhận xuất hiện
Nhấp vào Yes để xác nhận việc xóa tài khoản người dùng.
7 Account mặc định
SYS
Có role DBA
Có toàn quyềnĐược phép tắt/bật dịch vụQuản lý data dictionaryQuản lý Automatic Workload Repository (AWR)
V Privilege (quyền)
- Quyền là 1 sự cho phép thực hiện 1 câu lệnh SQL nào đó hoặc được phép truy cập đến vào đối tượng của người dùng khác (vd: quyền tạo bảng CREATE TABLE, quyền connect đến cơ sở dữ liệu CREATE SESSION, quyền
SELECT trên một bảng cụ thể nào đó,…)
- Lưu ý:
Chỉ cấp cho user chính xác những quyền mà user cần đến
Việc cấp dư thừa những quyền không cần thiết có thể gây nguy hại cho việc bảo mật hệ thống
- Có 2 loại quyền:
Quyền hệ thống (System Privilege): cho phép người dùng thực hiện một số
thao tác đối với cơ sở dữ liệu Ví dụ: quyền ALTER SYSTEM, quyền
CREATE TABLE, quyền DELETE ANY TABLE (xóa các hàng của bất
kỳ bảng nào trong CSDL),…
Trang 14SESSION CREATE SESSION
Cho phép người được cấp kết nối với cơ
sở dữ liệu Đặc quyền này là bắt buộc đối với tài khoản người dùng, nhưng có thể
Trang 15không mong muốn cho chủ sở hữu ứng dụng các tài khoản.
ALTER SESSION
Cho phép người được cấp thực hiện ALTER SESSION các câu lệnh
ALTER RESOURCE COST Cho phép người được cấp quyền thay đổi
cách Oracle tính toán chi phí tài nguyên cho các hạn chế tài nguyên trong hồ sơ
RESTRICTED SESSION Giới hạn session
User có thể cấp 1 quyền hệ thống nếu có một trong các điều kiện sau:
User đã được cấp quyền hệ thống đó với tùy chọn WITH ADMIN OPTION
User có quyền GRANT ANY PRIVILEGE
Quyền đối tượng (Object Privilege): cho phép người dùng truy cập và thực hiện một số thao tác đối với đối tượng trong cơ sở dữ liệu Ví dụ: Quyền xóa các hàng dữliệu khỏi bảng Department
Có nhiều quyền đối tượng khác nhau dành cho các loại đối tượng schema khác nhau
Dùng để quản lý việc truy xuất đến các đối tượng cụ thể nào đó User có thểcấp 1 quyền đối tượng nếu có một trong các điều kiện sau:
User có tất cả mọi quyền đối tượng trên tất cả các đối tượng thuộc
schema của mình Vì vậy user có quyền cấp bất kỳ quyền đối tượng trên bất kỳ đối tượng nào thuộc sở hữu của mình cho bất cứ user nào khác
User có quyền GRANT ANY OBJECT PRIVILEGE
Sử dụng lệnh Grant
Trang 16GRANT SELECT,INSERT,UPDATE,DELETE ON customers TO
sales_manager;
Public: là một user đặc biệt
GRANT SELECT ON customers TO public;
With Grant Option: cho phép người được gán quyền có thể gán các quyền đó cho user khác
GRANT SELECT ON sales.customers TO sales admin
WITH GRANT OPTION;
REVOKE DELETE OH STUDENT FROM HR;
REVOKE DELETE, INSERT, UPDATE OH STUDENT FROM HR;
REVOKE ALL OH STUDENT FROM HR;
VI Role
- Role là một nhóm quyền
Trang 17- Role được gán cho các user hoặc các role khác
- Role giúp cho việc quản trị người dùng dễ dàng và tiết kiệm công sức hơn
- User có thể cấp 1 role nếu có một trong các điều kiện sau:
User đã tạo ra role đó
User đã được cấp role đó với tùy chọn WITH ADMIN OPTION
User có quyền GRANT ANY ROLE
I.1.Quản lý role
Tạo và gắn quyền cho role
CREATE ROLE Manager;
GRANT CREATE SESSION, CREATE TABLE TO Manager WITH ADMIN OPTION;
Gỡ quyền của role
REVOKE CREATE SESSION FROM Manager;
Bật, tắt role
SET ROLE Manager;
SET ROLE ALL EXCEPT Manager;
SET ROLE NONE ;
Trang 18 Gắn role cho user
GRANT Manager to NhamCT;
- Tại một thời điểm, mỗi user chỉ được gán DUY NHẤT một profile
- Trong một CSDL có thể tạo nhiều profile Một profile mặc định sẽ đượcdùng để gán cho những user không được gán profile một cách tường minh.(Lưu ý rằng các giá trị mặc định đều được thiết lập là “unlimited”)
1.2 Các loại tài nguyên
Một profile có thể mô tả các loại giới hạn tài nguyên sau:
- Số lượng các session đồng thời mà user có thể thực hiện
- Thời gian xử lý CPU cho một session của user đó hoặc cho một cuộc gọi(call) tới Oracle bởi 1 câu lệnh SQL
- Số lần đọc luận lý I/O cho một session của user đó hoặc cho một cuộc gọi(call) tới Oracle bởi 1 câu lệnh SQL
- Lượng thời gian nhàn rỗi cho session của user
- Lượng thời gian connect cho một session
- Các quy định về password (số lần cố gắng login thất bại, thời gian hiệu lựccủa 1 password,…)
1.3 Sử dụng profile