hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Tin công nghệ
DCL Trong MySQL – Quản Lý Quyền Truy Cập Với GRANT và REVOKE

DCL Trong MySQL – Quản Lý Quyền Truy Cập Với GRANT và REVOKE

  • 08-07-2025
  • Toanngo92
  • 0 Comments

DCL – Data Control Language trong MySQL, một nhóm lệnh dùng để quản lý quyền truy cập và bảo mật trong hệ quản trị cơ sở dữ liệu. Đây là phần cực kỳ quan trọng khi bạn muốn triển khai hệ thống thật, nhiều người dùng với vai trò và quyền hạn khác nhau.


Mục lục

  • ✅ 1. DCL là gì?
  • ✅ 2. Quản lý người dùng trong MySQL
    • ➕ Tạo người dùng:
    • 👁️ Xem tất cả người dùng:
  • ✅ 3. Lệnh GRANT – Cấp quyền
    • Cú pháp:
    • 📌 Ví dụ: cấp quyền SELECT, INSERT trên bảng Students
    • 📌 Cấp tất cả quyền trên một database:
    • 🗝️ Cấp quyền quản trị toàn hệ thống (cẩn trọng!):
  • ✅ 4. Lệnh REVOKE – Thu hồi quyền
    • Cú pháp:
    • 📌 Ví dụ:
  • ✅ 5. Áp dụng thay đổi bằng FLUSH
  • ✅ 6. Kiểm tra quyền của user
    • 📋 Đang đăng nhập bằng user đó:
    • 📋 Xem quyền của user khác:
  • ✅ 7. Xóa người dùng
  • ✅ 8. Các quyền phổ biến trong MySQL
  • ✅ 9. Lưu ý bảo mật
  • 📘 Kết Luận

✅ 1. DCL là gì?

  • DCL (Data Control Language) là nhóm lệnh dùng để quản lý quyền truy cập (permissions) cho người dùng trong cơ sở dữ liệu.
  • Bao gồm 2 lệnh chính:
    • GRANT: cấp quyền
    • REVOKE: thu hồi quyền

✅ 2. Quản lý người dùng trong MySQL

Trước khi gán quyền, bạn cần tạo (hoặc đã có) người dùng.

➕ Tạo người dùng:

CREATE USER 'toan'@'localhost' IDENTIFIED BY 'matkhau123';

'toan'@'localhost' nghĩa là người dùng chỉ được đăng nhập từ localhost.


👁️ Xem tất cả người dùng:

SELECT user, host FROM mysql.user;

✅ 3. Lệnh GRANT – Cấp quyền

Cú pháp:

GRANT danh_sach_quyen
ON ten_csdl.ten_bang
TO 'ten_user'@'host';

📌 Ví dụ: cấp quyền SELECT, INSERT trên bảng Students

GRANT SELECT, INSERT
ON mydb.Students
TO 'toan'@'localhost';

📌 Cấp tất cả quyền trên một database:

GRANT ALL PRIVILEGES
ON mydb.*
TO 'toan'@'localhost';

🗝️ Cấp quyền quản trị toàn hệ thống (cẩn trọng!):

GRANT ALL PRIVILEGES
ON *.*
TO 'admin'@'%'
WITH GRANT OPTION;

WITH GRANT OPTION cho phép user này cấp quyền cho người khác.


✅ 4. Lệnh REVOKE – Thu hồi quyền

Cú pháp:

REVOKE danh_sach_quyen
ON ten_csdl.ten_bang
FROM 'ten_user'@'host';

📌 Ví dụ:

REVOKE INSERT
ON mydb.Students
FROM 'toan'@'localhost';

✅ 5. Áp dụng thay đổi bằng FLUSH

Sau khi cấp/thay đổi quyền, bạn nên chạy:

FLUSH PRIVILEGES;

Đảm bảo MySQL tải lại quyền mới từ hệ thống.


✅ 6. Kiểm tra quyền của user

📋 Đang đăng nhập bằng user đó:

SHOW GRANTS;

📋 Xem quyền của user khác:

SHOW GRANTS FOR 'toan'@'localhost';

✅ 7. Xóa người dùng

DROP USER 'toan'@'localhost';

✅ 8. Các quyền phổ biến trong MySQL

QuyềnMô tả
SELECTCho phép đọc dữ liệu
INSERTThêm dữ liệu
UPDATESửa dữ liệu
DELETEXóa dữ liệu
CREATETạo bảng, CSDL…
DROPXóa bảng, CSDL…
ALTERSửa cấu trúc bảng
INDEXTạo/sửa chỉ mục
EXECUTEGọi Stored Procedure, Function
GRANT OPTIONCho phép cấp quyền cho user khác
ALL PRIVILEGESTất cả các quyền trên đối tượng được chỉ định

✅ 9. Lưu ý bảo mật

MụcGợi ý
🔐 Không dùng root cho mọi tác vụTạo user riêng cho từng chức năng
✅ Dùng GRANT chính xác, tối thiểuChỉ cấp quyền cần thiết
❌ Tránh dùng ALL PRIVILEGES quá mứcĐặc biệt trên *.* trừ khi là admin
✅ Kiểm soát WITH GRANT OPTIONTránh để người dùng tự cấp quyền bừa bãi

📘 Kết Luận

  • DCL giúp bạn kiểm soát ai được làm gì với dữ liệu trong MySQL.
  • Luôn tạo người dùng riêng biệt, cấp quyền theo nguyên tắc “ít nhất cần thiết” để tăng bảo mật.
  • Kết hợp với VIEW, FUNCTION, TRIGGER, PROCEDURE để xây dựng hệ thống an toàn, chuyên nghiệp.

Bài viết liên quan:

Biến và kiểu dữ liện trong Dart
Giới Thiệu Về Ngôn Ngữ Lập Trình Dart Cơ Bản
Event trong Component
Các hàm làm việc với number và các hàm toán học trong PHP

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Truy Vấn Dữ Liệu Với SELECT Trong MySQL

Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT

DCL Trong MySQL – Quản Lý Quyền Truy Cập Với GRANT và REVOKE

FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×