Security and Integrity

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Datadictionary Prakan Sringam.
Advertisements

BC421 File and Database Lab
HO Session 14: Database Design Principles
เสรี ชิโนดม MS SQLServer 7 เสรี ชิโนดม
ภาษา SQL (Structured Query Language)
12. การบันทึกข้อมูลลงในตาราง
กลุ่มคำสั่ง SQL สามารถแบ่งได้ดังนี้
The Management of Distributed Transaction
บทที่ 5 Visual C#.NET กับ ฐานข้อมูล
Entity-Relationship Model
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
ฐานข้อมูลเชิงสัมพันธ์
เอกสารประกอบการบรรยาย เรื่อง Basic SQL
ฐานข้อมูลและการออกแบบฐานข้อมูล
ส่วนที่ 4 System Design การออกแบบระบบ.
SQL - Structured Query Language
Structured Query Language (SQL)
บทที่ 3 แบบจำลองข้อมูล Data Models Calculus
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
Chapter 8 : การควบคุมความปลอดภัย (Security Control)
Database Programming Exceed Camp #2 24 October 2005.
สถาปัตยกรรมของระบบฐานข้อมูล
Week-4, Create, Grant, Trigger DBMS 3/53. From MySQL 5.5 Manual.
ความปลอดภัยของฐานข้อมูล
ฐานข้อมูลเชิงสัมพันธ์
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
Creating Database With Structure Query Language (SA&D-8)
The Relational Data Model
1. 2  ในการใช้งานเว็บไซต์ โดยปกติเราจะไม่สามารถ ใช้งานตัวแปรที่มีลักษณะ Global ที่สามารถ นำไปใช้ได้กับเว็บเพจหน้าอื่นๆ ปกติในการใช้ งานค่าต่างๆ ของเว็บเพจ.
SQL Structured Query Language.
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
CHARPTER 3 การสอบถามข้อมูลพื้นฐาน
การสอบถามข้อมูลแบบซ้อนกัน
CHARPTER 9 การเชื่อมเทเบิล JOIN…. TABLE.
SQL เพื่อควบคุมความปลอดภัย (Week 2). การควบคุมการเข้าถึงข้อมูล ระบบการจัดการข้อมูลโดยส่วนใหญ่จะมีกลไกที่ ทำให้แน่ใจได้ว่าเฉพาะผู้มีสิทธิเท่านั้นที่ สามารถเข้าถึงข้อมูลในฐานข้อมูล.
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
บทที่ 5 การทำงานกับหลาย Table
บทที่ 5 การทำงานกับหลาย Table
1. รายการเปลี่ยนแปลง (Transaction)
1. ศัพท์พื้นฐานของฐานข้อมูล
บทที่ 6 Access Control Panida Panichkul.
โปรแกรมฐานข้อมูลที่นิยมใช้
การเพิ่ม ลบ จำกัดสิทธิ์ User
CHAPTER 12 SQL.
Introduction to PHP, MySQL – Special Problem (Database)
ADO.NET (การบริหารและจัดการข้อมูล)
การเพิ่ม ลบ จำกัดสิทธิ User
SQL Structured Query Language.
โมเดลเชิงสัมพันธ์ The relational model.
งานกลุ่ม กลุ่มที่ 3 เรื่อง ฐานข้อมูลเชิงสัมพันธ์
Week 5 Online available at
E-R to Relational Mapping Algorithm
การเขียนโปรแกรมบนเว็บ PHP กับ MySQL
Introduction to Database
Introduction to SQL (MySQL) – Special Problem (Database)
นายรัฐราษฎร์ เกื้อสกุล 1. 2 Disk Password Protection เป็นชุดของโปรแกรมสำหรับปกป้องและจำกัด การเข้าถึง Harddisk สามารถปกป้อง Disk/Partition ด้วย Password,
PHP: [9] ฐานข้อมูล MYSQL
Database Management SQL Security.
1 Introduction to SQL กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Database Design & Development
ภาษา SQL (Structured Query Language)
SQL (Structured Query Language)
SQL (Structured Query Language)
บทที่ 4 แบบจำลองฐานข้อมูลเชิงสัมพันธ์ Relational Database
สถาปัตยกรรมของระบบฐานข้อมูล
SQL (Structured Query Language)
Chapter 9 : ภาษาทางด้านฐานข้อมูลคำสั่ง SQL (SQL Command)
คำสั่งสร้างฐานข้อมูล
ฐานข้อมูลเชิงสัมพันธ์ Relational Database
ใบสำเนางานนำเสนอ:

Security and Integrity Security : means protecting the data against unauthorized users. Integrity : means protecting it against authorized users. Internal Security - View Mechanism - Authorization Subsystem Security External Security - Login, Hardware Control

วิธีการที่ 1 DBA จะสร้างบัญชีผู้ใช้ (user account) ไว้ ซึ่งจะเก็บรายชื่อของผู้ที่มีสิทธิ เข้ามาใช้งานฐานข้อมูลได้ และมีการกำหนดให้ผู้ใช้แต่ละคนสามารถตั้งรหัสลับ (password) เป็นของตนเอง ดังนั้นคนที่จะเข้ามาใช้ระบบได้ นอกจากจะต้องมีชื่ออยู่ในบัญชีผู้ใช้แล้ว ผู้ใช้คนนั้นจะต้องสามารถป้อนรหัสลับของตนเองได้ถูกต้องด้วย จึงจะสามารถเข้าสู่ระบบได้ เพื่อเป็นการป้องกันไม่ให้ ผู้อื่นที่ไม่มีรายชื่อในบัญชีผู้ใช้ สามารถเข้ามาในระบบฐานบัญชีนี้ได้

วิธีการที่ 2 เป็นระดับของการป้องกันที่ DBA สามารถใช้คำสั่งผ่านทาง DBMS ด้วยคำสั่ง SQL ทำการสร้างวิว (view) ข้อมูลให้กับผู้ใช้แต่ละคน ให้สามารถใช้ข้อมูลได้เพียงบางส่วน ตามที่ DBA จะเป็นผู้กำหนดเพื่อเป็นการจำกัดการเข้าถึงข้อมูลของผู้ใช้ และนอกจากนี้ยังมีคำสั่งในการกำหนดสิทธิการเข้าถึงข้อมูลใด ๆ และการยกเลิกสิทธิดังกล่าวได้โดยตรง ด้วยคำสั่ง GRANT และ REVOKE ตามลำดับ

วิธีการที่ 3 ได้แก่การเข้ารหัสข้อมูล (Encryption) ซึ่งการป้องกันในระดับนี้ DBMS จะเป็นตัวจัดการอยู่แล้ว เนื่องจากข้อมูลที่เก็บอยู่ในฐานข้อมูลนั้นจะอยู่ในรูปแบบที่มีการเข้ารหัสเอาไว้ ผู้ที่จะอ่านข้อมูลในฐานข้อมูลได้รู้เรื่อง จะต้องเข้ามาโดยผ่าน DBMS เท่านั้น ผู้ที่จะเข้ามาใช้งานฐาน ข้อมูลโดยไม่ผ่าน DBMS จะไม่สามารถอ่านข้อมูลนั้นได้รู้เรื่อง

CREATE VIEW viewname (attributes list) การสร้างวิวด้วยคำสั่ง SQL เราสามารถสร้างวิวได้ด้วยคำสั่ง SQL ซึ่งรูปแบบของคำสั่งการสร้างวิว จะมีดังนี้ CREATE VIEW viewname (attributes list) AS query

การกำหนดสิทธิการเข้าถึงข้อมูลใดและการยกเลิกสิทธิ การสร้างวิวเปรียบเหมือนเป็นการสร้างรีเลชั่นสมมติจากรีเลชั่นจริงในฐานข้อมูล ซึ่งจะเป็นเพียงการซ่อนข้อมูลบางส่วน ให้ผู้ใช้เห็นเฉพาะข้อมูลบางส่วนที่เราต้องการให้เห็นเท่านั้น แต่ถ้าเราต้องการกำหนดว่าจะให้ใครสามารถใช้ข้อมูลในรีเลชั่นใดได้บ้าง และใช้ได้ในระดับใด เช่นดูได้อย่างเดียวแต่ห้ามปรับปรุงแก้ไข หรือปรับปรุงแก้ไขได้แต่ห้ามลบ ฯลฯ จะสามารถทำได้โดยการใช้คำสั่ง GRANT และถ้าจะยกเลิกสิทธิดังกล่าวจะทำได้โดยใช้คำสั่ง REVOKE

GRANT เป็นคำสั่ง SQL คำสั่งหนึ่งที่ใช้ในการกำหนดสิทธิให้แก่ผู้ใช้แต่ละคน ว่าจะให้ใครมีสิทธิในการจัดการข้อมูลในตารางหรือวิวใดได้บ้าง ซึ่งการจัดการข้อมูลนี้จะหมายถึงการเรียกใช้ข้อมูลเพื่อดู (SELECT) การเพิ่ม (INSERT) การลบ (DELETE) หรือ การแก้ไขปรับปรุง (UPDATE) รูปแบบของคำสั่ง GRANT เป็นดังนี้ GRANT privilege list ON relation or view name TO user list

1) GRANT SELECT ON TABLE WORKER TO WICHAI,PISAMAI 2) GRANT SELECT,UPDATE (HOUR_RATE) ON TABLE WORKER TO WICHAI 3) GRANT ALL ON TABLE PERS_ELECT TO WANPEN 4) GRANT SELECT ON TABLE SKILL TO PUBLIC 5) GRANT INDEX ON TABLE ASSIGN TO WISAN

คำสั่ง GRANT สามารถมีการให้สิทธิต่อกันเป็นทอด (cascade) ระหว่างผู้ใช้ได้ โดยการใช้คำสั่ง WITH GRANT OPTION ดังตัวอย่างต่อไปนี้ GRANT SELECT ON TABLE WORKER TO WICHAI WITH GRANT OPTION GRANT SELECT ON TABLE WORKER TO WANPEN WITH GRANT OPTION

REVOKE เป็นคำสั่งการยกเลิกสิทธิใด ๆ แก่ผู้ใช้ ตามที่ได้มีการใช้คำสั่ง GRANT มีรูปแบบคือ REVOKE privilege ON TABLE relation or view name FROM users list REVOKE SELECT ON TABLE WORKER FROM PISAMAI REVCKE SELECT,UPDATE ON TABLE WORKER FROM WICHAI REVOKE ALL ON TABLE PERS_ELECT FROM WANPEN REVOKE SELECT ON TABLE SKILL FROM PUBLIC

Integrity

FOREIGN KEY (ชื่อคีย์ IDENTIFILES ชื่อรีเลชั่นที่อ้างอิง NULLS [NOT] ALLOWED DELETE OF ชื่อรีเลชั่นที่อ้างอิง ทางเลือก UPDATE OF ชื่อคีย์หลักในรีเลชั่นที่อ้างอิง ทางเลือก) CREATE TABLE CUSTOMER (CUSTOMER_NUMBER DECIMAL (3). NAME CHAR (15). ADDRESS CHAR (30). CURRENT_BALANCE DECIMAL (4,2). CREDIT_LIMIT DECIMAL (4). SLSREP_NUMBER DECIMAL (2). PRIMARY KEY (CUSTOMER_NUMBER) FOREIGN KEY (SLSEP_NUMBER IDENTIFILES SLSREP NULLS NOT ALLOWED DELETE OF SLSREP RESTRICTED UPDATE OF SLSREP.SLSREP_NUMBER CASCADES)

ความคงสภาพของ entity บัญญัติไว้ว่า “attribute ทุกตัวที่เป็นส่วนของคีย์หลักจะไม่อนุญาตให้มีค่าว่าง” ทั้งนี้ความหมายของ ค่าว่าง ก็คือ ค่าที่ไม่ทราบแน่ชัด หรือค่าที่ไม่เหมาะสม หรือกล่าวอีกนัยหนึ่งก็คือค่าว่างจะเป็นค่าที่ ไม่อยู่ในกรอบของโดเมนนั่นเอง Entity Integrity Rule – “Primary key must not be null”

ความคงสภาพของการอ้างอิงบัญญัติไว้ว่า “ถ้าเรามีรีเลชั่น R2 ซึ่งมี FK เป็นคีย์นอกที่อ้างถึงคีย์หลัก PK ในรีเลชั่น R1 สำหรับทุก ๆ ค่าของ FK ใน R2 จะต้อง มีค่าเท่ากับค่า PK ในทัพเพิลใดทัพเพิลหนึ่งในรีเลชั่น R1 หรือ มีค่าของ attribute ทุกตัวใน FK เป็นค่าว่าง” Referential Integrity Rule – “Foreign key must match Primary key ”

(ก) กระทำแบบเป็นทอดๆ (cascade) คือ การอนุญาตให้ทำได้ โดยระบบจะทำการลบ ข้อมูลที่มีคีย์นอกอ้างอิงถึงข้อมูลที่ออกคำสั่งให้ลบออกให้เอง (ข) ยอมแบบมีเงื่อนไข (restricted) คือการอนุญาตให้ลบเฉพาะเมื่อไม่ปรากฎข้อมูลที่อ้างอิงถึงข้อมูลที่ถูกข้อมูลที่ถูกออกคำสั่งให้ลบอยู่ในระบบเลย (ค) เปลี่ยนเป็นค่าว่าง (nullify) คือ การอนุญาตให้ลบโดยระบบจะทำการเปลี่ยนค่าของคีย์นอกในข้อมูลที่อ้างอิงถึงให้กลายเป็นค่าว่าง