Bài thực hành bảo mật hệ thống thông tin số 3 quyền và role

12 1 0
Bài thực hành bảo mật hệ thống thông tin số 3 quyền và role

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bảo Mật Hệ Thống Thông Tin Lab Bài thực hành số QUYỀN ROLE  Tóm tắt nội dung:  Quyền (privilege)  Role  Data Dictionary I Quyền Role A Lý thuyết Quyền (privilege)  Một quyền cho phép thực câu lệnh SQL phép truy xuất đến đối tượng (vd: quyền tạo bảng CREATE TABLE, quyền connect đến sở liệu CREATE SESSION, quyền SELECT bảng cụ thể đó,…)  Chỉ cấp cho user xác quyền mà user cần đến Việc cấp dư thừa quyền không cần thiết gây nguy hại cho việc bảo mật hệ thống  Có loại quyền:  Quyền hệ thống (System Privilege): o Là quyền thực tác vụ CSDL cụ thể quyền thực loại hành động tất đối tượng schema hệ thống Vd: quyền ALTER SYSTEM, quyền CREATE TABLE, quyền DELETE ANY TABLE (xóa hàng bảng CSDL),… o User cấp quyền hệ thống có điều kiện sau: - User 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 (Schema Object Privilege Object Privilege): Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab o Là quyền thực hành động cụ thể đối tượng schema cụ Vd: quyền xóa hàng liệu khỏi bảng Department o Có nhiều quyền đối tượng khác dành cho loại đối tượng schema khác o Dùng để quản lý việc truy xuất đến đối tượng schema cụ thể o User cấp quyền đối tượng có điều kiện sau: - User có tất quyền đối tượng tất đối tượng thuộc schema Vì user có quyền cấp quyền đối tượng đối tượng thuộc sở hữu cho user khác - User có quyền GRANT ANY OBJECT PRIVILEGE - User cấp quyền đối tượng với tùy chọn WITH GRANT OPTION Role  Role tập hợp bao gồm quyền role khác  Role gán cho user role khác  Role giúp cho việc quản trị người dùng dễ dàng tiết kiệm cơng sức  Có số role có sẵn hệ thống định nghĩa(vd: DBA, RESOURCE, CONNECT, …) đa phần role người quản trị CSDL tạo  Role đối tượng schema (schema object) nên không lưu trữ schema user tạo Do vậy, user tạo role bị xóa mà khơng ảnh hưởng đến role  User cấp role có điều kiện sau:  User tạo role  User cấp role với tùy chọn WITH ADMIN OPTION  User có quyền GRANT ANY ROLE B Thực hành Tạo ROLE  Tạo role với câu lệnh: CREATE ROLE myrole; Role created Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin  Lab Lưu ý, để tạo role, phải có quyền hệ thống CREATE ROLE Lệnh GRANT a Gán quyền hệ thống/role:  Ta dùng cú pháp để gán quyền hệ thống/role cho user/role khác: Ví dụ: GRANT DELETE ANY TABLE TO salapati; Grant succeeded GRANT CREATE USER TO myrole; Grant succeeded GRANT myrole TO salapati; Grant succeeded GRANT myrole TO lavender; Grant succeeded  Xem lệnh sau: GRANT CREATE SESSION TO lavender IDENTIFIED BY purple Grant succeeded Với câu lệnh vừa rồi, user lavender tồn tại, password lavender thay đổi thành purple Ngược lại, hệ thống tạo người dùng có username lavender password purple Sinh viên tự tìm hiểu xem để câu lệnh thực được, user cần phải có quyền gì?  Dùng từ khóa PUBLIC muốn cấp quyền/role cho user: GRANT CREATE SESSION TO PUBLIC; Grant succeeded  Dùng từ khóa ALL PRIVILEGES muốn cấp tất quyền hệ thống (trừ quyền SELECT ANY DICTIONARY): GRANT ALL PRIVILEGES TO salapati; Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Grant succeeded Để thực câu lệnh thành cơng user cần phải có quyền gì?  Tùy chọn WITH ADMIN OPTION cho phép người cấp role/quyền:  Cấp lại role/quyền cho user role khác (có khơng có tùy chọn WITH ADMIN OPTION)  Thu hồi lại role/quyền từ user role  Thay đổi role lệnh ALTER ROLE  Xóa role Ví dụ: GRANT CREATE SESSION TO salapati WITH ADMIN OPTION; Grant succeeded b Gán quyền đối tượng: Ví dụ: GRANT DELETE ON mytable TO salapati; GRANT SELECT ON mytable TO public; GRANT SELECT,INSERT,UPDATE,DELETE ON mytable TO lavender; GRANT SELECT ON salapati.xyz TO myrole;  Dùng từ khóa ALL [PRIVILEGES] muốn cấp tất quyền đối tượng mà user có đối tượng (với điều kiện user phải có quyền cấp quyền đó): Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab GRANT ALL ON salapati.xyz TO paris; GRANT ALL PRIVILEGES ON salapati.xyz TO paris;  Nếu muốn cấp quyền vài cột table view, ta cụ thể tên cột đó: GRANT UPDATE (name) ON salapati.xyz TO myrole; Grant succeeded Lưu ý ta cột cụ thể cấp quyền INSERT UPDATE  Dùng tùy chọn WITH GRANT OPTION muốn user cấp quyền cấp quyền cho user/role khác Tuy nhiên dùng tùy chọn cấp quyền cho user hay PUBLIC: GRANT ALL ON salapati.xyz TO paris WITH GRANT OPTION; c Xem thông tin quyền hệ thống gán cho user tại: SELECT * FROM user_sys_privs; Xem thông tin quyền đối tượng gán cho user tại: SELECT * FROM user_tab_privs_recd; d Sinh viên tham khảo danh sách quyền hệ thống, quyền đối tượng phần mô tả lệnh GRANT SQL Reference thuộc Oracle Document Library Lệnh REVOKE a Thu hồi quyền hệ thống/role:  Để thu hồi quyền hệ thống, user phải cấp quyền với WITH ADMIN OPTION có quyền GRANT ANY PRIVILEGES Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin  Lab Để thu hồi role, user phải cấp role với WITH ADMIN OPTION có quyền GRANT ANY ROLE  Khơng thể dùng lệnh REVOKE để thu hồi role/quyền cấp thông qua role khác REVOKE DELETE ANY TABLE FROM salapati; Revoke succeeded REVOKE myrole FROM lavender; Revoke succeeded  Dùng từ khóa PUBLIC để thu hồi quyền hệ thống/role khỏi tất user Tuy nhiên dùng PUBLIC để thu hồi quyền gán trực tiếp thông qua role khác REVOKE CREATE SESSION FROM PUBLIC;  Các từ khóa khác có ý nghĩa lệnh GRANT b Thu hồi quyền đối tượng:  Để thu hồi quyền đối tượng từ user/role, bạn phải người cấp quyền cho user/role bạn có quyền GRANT ANY OBJECT PRIVILEGE Tuy nhiên, trường hợp bạn có quyền GRANT ANY OBJECT  PRIVILEGE, bạn thu hồi quyền đối tượng cấp cho user/role, quyền đối tượng Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab cấp cho user/role chủ nhân đối tượng user có quyền GRANT ANY OBJECT PRIVILEGE  Khơng thể dùng lệnh REVOKE để thu hồi quyền/role cấp thông qua role khác REVOKE SELECT ON mytable FROM salapati;  Dùng từ khóa ALL [PRIVILEGES] để thu hồi tất quyền đối tượng mà bạn cấp cho user/role REVOKE ALL ON salapati.xyz FROM paris;  Dùng từ khóa PUBLIC để thu hồi quyền đối tượng khỏi user cấp quyền thơng qua việc gán cho PUBLIC Không thể dùng PUBLIC để thu hồi quyền gán trực tiếp thông qua role khác REVOKE INSERT ON salapati.xyz FROM paris;  Lưu ý:  Nếu user bị thu hồi quyền đối tượng mà quyền cấp cho user/role khác, hệ thống thu hồi quyền đối tượng user/role  Nếu schema user bị thu hồi quyền đối tượng có chứa procedure, function, package có sử dụng lệnh SQL liên quan đến quyền bị thu hồi procedure, function, package khơng cịn thực thi Enable disable ROLE a Một user có nhiều role Tuy nhiên session cần sử dụng tất role Oracle cho phép thân user enable/disable role mà cấp để quản lý cần thiết role session  Mặc định bắt đầu session mới, user hệ thống enable tất role mặc định (default role) Sau user dùng lệnh SET ROLE để enable/disable role theo ý theo cú pháp sau: Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Ví dụ: SET ROLE myrole, lavender; Câu lệnh enable role định disable tất role lại user  Để enable tất role dùng lệnh: SET ROLE ALL;  Để disable tất role dùng lệnh: SET ROLE NONE;  Để enable tất role ngoại trừ role lavender ta dùng lệnh: SET ROLE ALL EXCEPT lavender; b Để bảo vệ role với mục đích khơng cho phép user tùy ý enable/disable role, người tạo user thiết lập password cho role tạo role: CREATE ROLE newrole IDENTIFIED BY  protected; Ta thay đổi việc thiết lập password cho role: ALTER ROLE newrole IDENTIFIED BY changed; ALTER ROLE newrole NOT IDENTIFIED; c Để biết role enable ta truy xuất view SESSION_ROLES: SELECT * FROM SESSION_ROLES; Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab d Để quy định role role mặc định ta dùng lệnh ALTER USER: ALTER USER salapati DEFAULT ROLE myrole, lavender; ALTER USER salapati DEFAULT ROLE ALL; ALTER USER salapati DEFAULT ROLE ALL EXCEPT myrole; ALTER USER salapati DEFAULT ROLE NONE; Xóa ROLE DROP ROLE myrole; II Tự điển liệu (Data Dictionary) A Lý thuyết Tổng quan  Mọi CSDL Oracle có tự điển liệu Tự điển liệu tạo CSDL tạo  Tự điển liệu Oracle tập bảng view sử dụng tham khảo dạng đọc (read-only) thân CSDL  Từ điển liệu nằm tablespace SYSTEM, thuộc schema user SYS, bao gồm loại:  Các bảng (Base table): Là bảng lưu trữ thông tin tự điển liệu Dữ liệu lưu bảng dạng mã hóa  Các view dành cho người dùng truy xuất (User-accessible View): Tổng hợp hiển thị thông tin lưu bảng dạng người bình thường đọc hiểu Tùy vào quyền user mà user truy xuất view truy xuất liệu view  Một tự điển liệu lưu trữ tất thông tin cấu trúc luận lý cấu trúc vật lý CSDL:  Định nghĩa tất đối tượng schema CSDL  Các quy định, giới hạn sử dụng tài nguyên user,v.v  Danh sách user Các quyền, role cấp cho user  Các ràng buộc toàn vẹn liệu  Thông tin audit  Các thơng tin CSDL tổng qt khác Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin  Lab Oracle tự động cập nhật từ điển liệu để phản ánh xác trạng thái thực tế CSDL Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 10 Bảo Mật Hệ Thống Thông Tin Lab Các tiếp đầu ngữ tên view  Trong nhiều trường hợp, tập gồm view chứa thông tin tương tự tên chúng khác tiếp đầu ngữ: user, all, dba  USER: hiển thị thuộc schema user  ALL: hiển thị mà user truy xuất  DBA: hiển thị tất thông tin thuộc schema user (view dành cho người quản trị)  Các column view thuộc ba view giống nhau, ngoại trừ số ngoại lệ Các view thường sử dụng  DBA_USERS: cung cấp thông tin user CSDL  DBA_TS_QUOTAS: cung cấp thông tin quota user  DBA_PROFILES: cung cấp thông tin profile  DBA_SYS_PRIVS: hiển thị user cấp quyền hệ thống  DBA_ROLES: hiển thị tất role có CSDL  DBA_COL_PRIVS: hiển thị thơng tin việc gán quyền hệ thống mức cột  DBA_ROLE_PRIVS: hiển thị tất user role họ  DBA_TAB_PRIVS: hiển thị user quyền bảng họ  ROLE_ROLE_PRIVS: hiển thị thông tin role cấp cho role  ROLE_SYS_PRIVS: hiển thị quyền hệ thống cấp cho role  ROLE_TAB_PRIVS: hiển thị quyền bảng cấp cho role  SESSION_PRIVS: hiển thị quyền enable cho user  SESSION_ROLES: hiển thị role enable cho user B Thực hành  Sinh viên dùng Reference Oracle Documentation Library để tra cứu danh sách view tự điển liệu  Truy xuất view để xem liệu hiển thị Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 11 Bảo Mật Hệ Thống Thông Tin Lab III Bài tập Tạo users John, Joe, Fred, Lynn, Amy, and Beth: a Password tên username viết hoa b Đảm bảo user tạo bảng tablespace với quota 10M Cho bảng Attendance ( ID INT PRIMARY KEY, Name NVARCHAR2 ) Làm bước sau: a Tạo role sau: DataEntry, Supervisor, Management b Gán John, Joe, Lynn vào role DataEntry, gán Fred vào role Supervisor, gán Amy Beth vào role Management c Cho role DataEntry quyền SELECT, INSERT, UPDATE bảng Attendance d Cho role Supervisor quyền SELECT DELETE bảng Attendance e Cho role Management quyền SELECT bảng Attendance f Lần lượt kiểm tra kết phân quyền cấp cho role Tạo user tên NameManager với password pc123 Gán quyền update cho user cột Name bảng Attendance Thực yêu cầu sau view liệt kê phần II (Tự điển liệu): a Tìm quyền mà tên quyền có chữ CONTEXT b Liệt kê tất user có quyền SELECT ANY TABLE Thực bước sau: a Gán password cho role DataEntry “mgt” b Cho phép user John quyền cấp quyền cho user khác c Gán tất quyền mà John có cho Beth Beth có quyền INSERT UPDATE bảng Attendance khơng? Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 12 ... hiển thị user quyền bảng họ  ROLE_ ROLE_PRIVS: hiển thị thông tin role cấp cho role  ROLE_ SYS_PRIVS: hiển thị quyền hệ thống cấp cho role  ROLE_ TAB_PRIVS: hiển thị quyền bảng cấp cho role  SESSION_PRIVS:... TP.HCM Bảo Mật Hệ Thống Thông Tin  Lab Để thu hồi role, user phải cấp role với WITH ADMIN OPTION có quyền GRANT ANY ROLE  Khơng thể dùng lệnh REVOKE để thu hồi role /quyền cấp thông qua role khác... role với câu lệnh: CREATE ROLE myrole; Role created Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin  Lab Lưu ý, để tạo role, phải có quyền hệ

Ngày đăng: 29/12/2022, 14:56

Tài liệu cùng người dùng

Tài liệu liên quan