QUẢN TRỊ CSDL CƠ BẢN

Ngày đăng: 16/11/2020   -    Cập nhật: 17/11/2020


Kiến thức ở 9 phần trước chủ yếu dành cho những lập trình viên, những coder thao tác – truy vấn với dữ liệu trong CSDL. Nhưng ở tầm của một DBA thì mọi chuyện lại ở mức cao hơn.

Bạn không còn làm việc với dữ liệu thuần tuý nữa mà thay vào đó là trách nhiệm quản trị các CSDL thuộc quyền. Kể từ phần này, mình sẽ chuyển sang viết code trên Oracle nhé. (Vì đây cũng là một trong những hệ quản trị CSDL được sử dụng nhiều nhất hiện nay).


1. Lệnh CREATE USER


Với một các CSDL lớn, bạn không thể một thân một mình vận hành, truy xuất – thao tác tất cả mọi thứ liên quan trên đó được. Những CSDL như thế cần khá nhiều người tham gia với nhiệm vụ, vị trí và vai trò khác nhau – tương ứng với các quyền khác nhau.


Trong SQL Developer (Oracle) hay bất cứ hệ quản trị CSDL nào khác, Admin hay còn được gọi là DBA (Database Administrator) có thẩm quyền tạo thêm cái User khác để đáp ứng các nhu cầu thực tế.


Cú pháp: CREATE USER <tên user> IDENTIFIED BY <password>;


Ví dụ: Tạo user book_admin với password là MyPassword123




CREATE USER books_admin IDENTIFIED BY MyPassword123;
 


Muốn thực hiện được quyền tạo User, bạn phải đăng nhập vào Hệ thống (CSDL cụ thể) với quyền DBA.


Một DBA có thể tạo ra nhiều User dưới quyền và đồng thời cũng có thể xoá toàn bộ User bằng quyền Admin tối cao của mình.




-- nếu schema của books_admin
-- không chứa các đối tượng (user con khác)
DROP USER books_admin;

-- nếu schema của books_admin
-- có chứa các đối tượng (user con khác)
DROP USER books_admin CASCADE;
 

2. Lệnh GRANT


Với mỗi CSDL khác nhau, có rất nhiều người có thể tham gia tương tác, truy vấn, … tất cả họ đều có thể làm thay đổi cấu trúc của CSDL gốc.


Vậy làm thế nào để giới hạn được các hành vi của từng User? Đó là công việc cũng như trách nhiệm của DBA trong hệ thống.


Sử dụng câu lệnh GRANT để cung cấp đặc quyền, vai trò cho một User cụ thể hoặc cho tất cả User, để thực hiện các hành động trên các đối tượng cơ sở dữ liệu.


Một User sau khi được cập quyền có thể cấp lại các quyền tương tự cho các User khác.


Cú pháp: GRANT privilege-type ON [TABLE] { table-Name | view-Name } TO <user>;


Một số Grant privilege-type (loại đặc quyền) thông dụng:



  • Delete - Xóa dữ liệu từ một bảng cụ thể.
  • Insert - Chèn dữ liệu vào một bảng cụ thể.
  • Create foreign key - Tạo một tham chiếu khóa ngoài đến bảng được đặt tên hoặc đến một tập hợp con các cột từ một bảng.
  • Create Strigger – tạo trigger.
  • Update – Cập nhật dữ liệu trong một bảng hoặc trong một tập hợp con của các cột trong bảng.
  • Select – Chọn dữ liệu từ bảng, dạng xem hoặc tập hợp con của các cột trong bảng.
  • … …


Ví dụ: Cấp quyền SELECT và UPDATE cho user book_admin trên bảng NOVEL



GRANT UPDATESELECT ON TABLE NOVEL TO books_admin;
 


Sau khi được khời tạo và gán quyền, user book_admin có thể tạo và cấp quyền lại cho các user khác – với các quyền không vượt quá quyền của bản thân.


Để thực hiện các hành vi như trên, book_admin phải đăng nhập vào CSDL với tên và mật khẩu đã được cấp bởi DBA.




GRANT UPDATESELECT ON TABLE NOVEL TO book_employer ;
-- query của user book_admin đã đăng nhập
 

3. Lệnh ROVOKE


Ở một số thay đổi về CSDL hoặc các quyền, có thể là cấp dư thừa hoặc quyền không còn được sử dụng bởi chính các User đó nữa. Bạn muốn thu hồi lại các quyền này? Cũng OK thôi – Mỗi User cha có thể thu hồi lại bất kì quyền nào đã cấp cho các User con.


Lệnh ROVOKE được sinh ra để thực hiện vai trò hoàn toàn trái ngược với GRANT là thu hồi lại những gì mà GRANT đã cấp.


Cú pháp: REVOKE privilege-type ON [TABLE] { table-Name | view-Name } TO <user>;


Một số Revoke privilege-type (loại đặc quyền) thông dụng:



  • Delete - Xóa dữ liệu từ một bảng cụ thể.
  • Insert - Chèn dữ liệu vào một bảng cụ thể.
  • Create foreign key - Tạo một tham chiếu khóa ngoài đến bảng được đặt tên hoặc đến một tập hợp con các cột từ một bảng.
  • Create Strigger – tạo trigger.
  • Update – Cập nhật dữ liệu trong một bảng hoặc trong một tập hợp con của các cột trong bảng.
  • Select – Chọn dữ liệu từ bảng, dạng xem hoặc tập hợp con của các cột trong bảng.
  • … …


Ví dụ: Thu hồi lại quyền UPDATE của user book_admin trên bảng NOVEL đã cấp



REVOKE UPDATE ON TABLE NOVEL FROM books_admin;
 

Tổng kết


Nếu bạn có định hướng để trở thành một DBA chuyên nghiệp, kiến thức quản trị CSDL là yêu cầu tất yếu – không chỉ dừng lại ở mức hiểu – biết mà còn phải “tinh thông” hiểu rõ tường tận về mọi vấn đề của CSDL.


Một DBA có thể tường tận về các kiến thức CSDL của mọi lập trình viên, nhưng ngược lại thì chưa chắc. Mức lương trung bình của DBA hay những người theo quản trị CSDL ở Việt Nam nằm ở mức TOP – những cũng phải trả giá rất đắc cho mọi sai lầm của mình.


Kiến thức phần này và một phần kế tiếp nữa là BONUS thêm để giúp các bạn có thể hiểu thêm nhiều điều tổng quan về CSDL. Đôi khi kiến thức này có thể hỗ trợ các bạn trong quá trình phát triển phần mềm – biết nhiều không bao giờ là lãng phí cả.



---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Bình luận Facebook
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!