Hướng dẫn mysql user account - tài khoản người dùng mysql

Giới thiệu

MYSQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở giúp cho người dùng lưu trữ, tổ chức và sau đó lấy dữ liệu. Nó có nhiều lựa chọn cung cấp cho người dùng để thao tao với bảng và cơ sở dữ liệu. Bài viết này hướng dẫn việc tạo user và cấp quyền trong MYSQL.

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 hoặc thao tác trên database production chẳng hạn, bạn sẽ cần cấp quyền truy cập tới database tới một user mà không cho phép họ sử dụng toàn quyền.

Tạo 1 user mới như thế nào trong MySQL?

Để tạo user mới, bạn thực hiện các bước như sau:

  1. Truy cập vào mysql
  2. Thực thi câu lệnh để tạo user:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

newuser: tên user

password: mật khẩu của user

Tại thời điểm này, user mới không có quyền làm bất cứ điều gì với cơ sở dữ liệu. Trên thực tế, ngay cả khi user mới cố gắng đăng nhập,họ sẽ không thể truy cập vào MySQL shell.

Do vậy, điều đầu tiên cần làm là cung cấp cho user quyền truy cập vào các thông tin họ cần

  1. Gán quyền cho user
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Dấu * ở trên tương ứng với cơ sở dữ liệu và bảng mà user có thể truy cập - cụ thể là lệnh này cho phép người dùng thêm, sửa, xóa thực thi các công việc trên tất cả các bảng trong cơ sở dữ liệu

  1. Để thay đổi được thực hiện ngay lập tức, hãy dùng lệnh sau:
FLUSH PRIVILEGES;

Như vậy, với các bước ở trên, user mới tạo của bạn có toàn quyền như là user root

Một số quyền bạn có thể gán cho user trong MySQL

Dưới đây là danh sách các lệnh thường dùng để gán quyền cho user:

  • ALL PRIVILEGES – Cho phép MySQL user thực hiện toàn quyền trên databases (hoặc 1 vài db được thiết lập)
  • CREATE – Cho phép user tạo mới tables hoặc databases
  • DROP – Cho phép xóa tables hoặc databases
  • DELETE – Cho phép xóa bản ghi dữ liệu trong bảng tables
  • INSERT – Cho phép thêm bản ghi mới vào bảng csdl
  • SELECT – Cho phép sử dụng lệnh Select để tìm kiếm dữ liệu
  • UPDATE – Cho phép cập nhật csdl
  • GRANT OPTION – Cho phép gán hoặc xóa quyền của người dùng khác.

MySQL cho phép gán quyền cho user với một dòng lệnh đơn giản:

GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

Nếu bạn muốn cho phép user truy cập tất cả databases hoặc tất cả bảng, hãy dùng dấu * thay cho tên database hoặc table.

Mỗi lần bạn cập nhật hay thay đổi quyền hãy dùng lệnh Flush Privileges đảm bảo các thay đổi có hiệu lực.

FLUSH PRIVILEGES;

Để áp dụng nhiều loại quyền, ngăn cách chúng bằng dấu phẩy. Ví dụ, bạn có thể gán quyền CREATE và SELECT cho một user:

GRANT CREATE, SELECT ON database_name.table_name TO 'username'@'localhost';

Nếu cần thu hồi lại quyền của user, hãy dùng lệnh REVOKE:

REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

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

REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';

Hoặc bạn cũng có thể xóa user:

DROP USER 'username'@'localhost';

Bạn có thể kiểm tra user mới tạo đã thành công và có thể đăng nhập được hay chưa, đầu tiên thực hiện logout bằng cách:

quit

và login bằng lệnh

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
0

NOTE: 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. 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.

Hiển thị quyền của một user trong MySQL như thế nào?

Để 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:

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
1

Tham khảo

https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql

Th5 06, 2021

Hai G.

5ít nhất Đọc

Hướng dẫn mysql user account - tài khoản người dùng mysql

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ả Ubuntu và CentOS.

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. 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
  • Gán một số quyền nhất định cho MySQL user
  • Hiển thị quyền của một tài khoản MySQL User
  • MySQL Database là gì?
  • Kết luận

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

Gán một số quyền nhất định cho MySQL userroot có toàn quyền truy cập tới database và bảng trong databases.

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

MySQL Database là gì?

Kết luận

  1. 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.
  2. 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.
  3. 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.
    CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘password’;

  4. Để tạo user mới, hãy làm các bước sau: là tên bạn điền vào để chọn tên user mới và chỗ IDENTIFIED BY ‘password’ đặt mật khẩu cho user này. Bạn cần thay thế những giá trị này bằng thông tin của bạn, bên trong dấu ngoặc

  5. Truy cập command line và điền MySQL server:
    GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
    
    2
  6. 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.
    GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
    
    3

Sau đó thực thi lệnh sau: CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘password’;

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

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

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
6

MySQL Database là gì?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:

Kết luậ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. – Cho phép user tạo databases/tables
  • 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. – Cho phép user truy xuất data
  • 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. – Cho phép user tạo thêm dòng trong bảng
  • Để tạo user mới, hãy làm các bước sau: – Cho phép user chỉnh sửa các entry trong bảng
  • Truy cập command line và điền MySQL server:
    GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
    
    2
    – Cho phép user xóa entry trong bảng
  • 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.
    GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
    
    3
    – Cho phép user xóa hoàn toàn bảng/database

Sau đó thực thi lệnh sau: CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘password’; 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.

new_user là tên bạn điền vào để chọn tên user mới và chỗ IDENTIFIED BY ‘password’ đặt mật khẩu cho user này. Bạn cần thay thế những giá trị này bằng thông tin của bạn, bên trong dấu ngoặc[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 ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
7

Để 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 'newuser'@'localhost';
4

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
8

Để thay đổi được thực hiện ngay lập tức, hãy dùng lệnh sau:

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
5

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
9

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

FLUSH PRIVILEGES;
0

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:FLUSH PRIVILEGES sau khi tạo bất kỳ thay đổi nào về quyền.

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:FLUSH PRIVILEGES; sau khi thực thi lệnh

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

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

FLUSH PRIVILEGES;
1

CREATE – Cho phép user tạo databases/tables

FLUSH PRIVILEGES;
2

MySQL Database là gì?

Kết luậ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.

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.

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.