Làm thế nào để tạo user MySQL trong MySQL Database và gán quyền

Làm thế nào để tạo user MySQL trong MySQL Database và gán quyền

Bạn có muốn hiểu thêm về cơ cấu hoạt động của của MySQL? Hãy tiếp tục đọc, bài viết này sẽ hướng dẫn bạn cách để tạo user MySQL. Bạn cũng sẽ biết cách viết một số lệnh để gán quyền, thu hồi quyền và xóa user trong MySQL database.

Nhận ưu đãi GIẢM 77% để mua được VPS giá rẻ nhất.

Chọn VPS

Trước khi tiếp tục chuyển tới phần tiếp theo trong bài này, hãy đảm bảo bạn đã cài đặt MySQL. Nếu bạn chưa cài, chúng tôi rất vui để báo bạn rằng bạn có thể dễ dàng cài nó trên cả UbuntuCentOS.

Ghi chú: Chúng ta sẽ dùng command line để truy cập vào Linux VPS bằng root user. Bạn có thể sử dụng PuTTY trên máy Windows hoặc dùng terminal (macOS, Linux) để truy cập qua SSH root bằng thông tin web host cung cấp.

Tạo User MySQL và gán full quyền

Ngay khi bắt đầu sử dụng MySQL database, bạn sẽ được cung cấp username và password. Những thông tin đăng nhập này sẽ cho bạn quyền “root access”. Một user root có toàn quyền truy cập tới database và bảng trong databases.

Nhưng qua thời gian, bạn sẽ cần cho quyền truy cập tới database tới một người khác mà không cho phép họ sử dụng toàn quyền. Ví dụ, công ty thuê lập trình viên để bảo trì database, nhưng không muốn họ có quyền xóa hoặc chỉnh sửa những thông tin nhạy cảm, sẽ cần cung cấp một thông tin đăng nhập không phải root user. Cách này, công ty có quyền kiểm soát lập trình viên có thể và không thể làm gì với dữ liệu.

Tạo một user mới cũng rất đơn giản trong MySQL. Chúng tôi sẽ cho bạn biết cách tạo user MySQL và làm thế nào để gán toàn quyền vào trong database của bạn. Trên thực tế thì không nên làm vậy, việc gán toàn quyền cho một user – không phải root là không tốt, nhưng là một cách dễ nhất cho người mới bắt đầu.

Để tạo user mới, hãy làm các bước sau:

  1. Truy cập command line và điền MySQL server:
    mysql
  2. Mã trên sẽ trả kết quả như sau, xác nhận rằng bạn đang kết nối tới một MySQL server.
    mysql>
  3. Để gán toàn quyền của database cho một user mới tạo, thực thi lệnh sau:
    GRANT ALL PRIVILEGES ON * . * TO 'new_user'@'localhost';
  4. Để thay đổi được thực hiện ngay lập tức, hãy dùng lệnh sau:

Vậy là xong! User mới tạo của bạn có toàn quyền như là user root

Gán một số quyền nhất định cho MySQL user

Như đã nói ở trên, rất không an toàn nếu gán quyền root cho một user bình thường không-phải-root. Theo thời gian, bạn sẽ có nhu cầu gán từng cấp độ quyền cho từng loại users. MySQL cho phép gán quyền cho user với một dòng lệnh đơn giản:

GRANT [permission type] ON [database name].[table name] TO ‘non-root’@'localhost’;

Bạn chỉ cần thay thế ‘permission type’ thành giá trị quyền bạn muốn gán cho user. Bạn cũng phải  xác định database và tên bảng, mà bạn muốn  cấp quyền cho user không phải root. Tương tự như ví dụ trên ‘non-roo’ cần được thay thế thay thế thành username được bạn chỉ định:

MySQL có nhiều loại quyền, được liệt kê bên dưới

  • CREATE – Cho phép user tạo databases/tables
  • SELECT – Cho phép user truy xuất data
  • INSERT – Cho phép user tạo thêm dòng trong bảng
  • UPDATE – Cho phép user chỉnh sửa các entry trong bảng
  • DELETE – Cho phép user xóa entry trong bảng
  • DROP – Cho phép user xóa hoàn toàn bảng/database

Ghi chú: Sử dụng quyền ALL PRIVILEGES như trước sẽ cho phép user có toàn bộ các quyền ở trên.

Để dùng các tùy chọn chỉ cần thay thế [permission type] với các từ khóa thích hợp. Để áp dụng nhiều loại quyền, ngăn chúng bằng dấu phẩy. Ví dụ, bạn có thể gán quyền CREATE và SELECT cho một database user không-phải-root với lệnh sau:

GRANT CREATE, SELECT ON * . * TO 'non-root'@'localhost';

Tất nhiên bạn cũng sẽ gặp tình huốn bạn cần thu hồi quyền đã cấp cho một user. Bạn có thể làm vậy bằng lệnh sau:

REVOKE [permission type] ON [database name].[table name] FROM ‘non-root’@‘localhost’;

Ví dụ, để thu hồi toàn bộ các quyền cho một user không phải root:

REVOKE ALL PRIVILEGES ON *.* FROM 'non-root'@'localhost';

Cuối cùng, bạn có thể xóa user:

DROP USER ‘non-root’@‘localhost’;

Hãy nhớ, để thực thi những quyền này bạn cần có quyền root. Cũng như vậy, hãy chắc đã thực thi FLUSH PRIVILEGES sau khi tạo bất kỳ thay đổi nào về quyền.

GHI CHÚ: Hãy nhớ, bạn cần có quyền root để chạy bất kỳ lệnh nào ở trên. Hãy chắc chắn bạn đã chạy lệnh FLUSH PRIVILEGES; sau khi thực thi lệnh

Hiển thị quyền của một tài khoản MySQL User

Để biết quyền gì bạn có để gán cho một MySQL, bạn có thể sử dụng lệnh SHOW GRANTS:

SHOW GRANTS FOR 'user_name'@'localhost';

Kết quả sẽ trông như sau:

+---------------------------------------------------------------------------+
| Grants for user_name@localhost                                             |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user_name'@'localhost'                              |
| GRANT ALL PRIVILEGES ON 'database_name'.* TO 'user_name'@'localhost'.      |
| REVOKE ALL PRIVILEGES ON * . * FROM 'user_name'@'localhost';
+---------------------------------------------------------------------------+
3 rows in set (0.00 sec)

MySQL Database là gì?

Để hiểu về MySQL, bạn sẽ cần biết một database là gì. Databases là bộ lưu trữ ảo, cần thiết để dựng ứng dụng web.

MySQL database được dùng để lưu trữ thông tin thành viên, như là username, password, email address, vâng vâng. Cơ bản, bất kỳ thông tin nào bạn muốn lưu trữ để dùng về sau có thể được lưu trong database.

Tất nhiên, dữ liệu này phải được lưu trữ có trật tự. Database cho phép lập trình viên cấu trúc, lưu trữ, sao lưu và chỉnh sửa dữ liệu trong. MySQL là một trong những hệ thống quản lý database như vậy.

MySQL database là một trong số những hệ thống nổi tiếng nhất, vì tính dễ sử dụng và được hỗ trợ bởi một cộng đồng lớn. Thực tế, sự phổ biến của nó thu hút nhiều công ty lớn như là Facebook hay Twitter trong thế giới ứng dụng và web.

Kết luận

Một database là phần quan trọng của mọi website và ứng dụng web vì nó chứa tất cả dữ liệu người dùng. Để quản lý và giao tiếp hiệu quả, bạn cần một hệ thống quản trị database. Đó là lý do chúng tôi khuyên dùng lựa chọn phổ biến nhất này – MySQL. Đơn giản gì nó đáng tin cậy và rất dễ sử dụng.

Trong bài hướng dẫn này, chúng ta đã học các quyền cơ bản của MySQL database, và làm thế nào tạo MySQL user mới. Đặc biệt, chúng ta học về:

  • Tạo mới User MySQL và gán toàn quyền
  • Gán quyền nhất định cho MySQL user trong MySQL database, và thu hồi quyền và xóa users.
  • Cách để xem một MySQL user đã có quyền gì.

Gán quyền MySQL user trong MySQL database là bước cơ bản trong việc phát triển ứng dụng web, tuy nhiên, nó là một biện pháp bảo mật hiệu quả cho việc quản trị database và điều hành nó. Hầu hết nhiều ứng dụng hiện đại đều phụ thuộc vào database, khiến cho việc gán/thu hồi quyền MySQL database trở nên tối quan trọng.

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.