Cấp chọn mysql

MySQL / MariaDB là hệ thống quản trị CSDL người dùng phổ biến và được sử dụng nhiều trong quá trình lưu trữ dữ liệu của người dùng, doanh nghiệp. Trong bài viết này vinasupport. com sẽ hướng dẫn các bạn cách tạo và gán quyền Người dùng trong MySQL / MariaDB

Trước tiên, bạn hãy truy cập vào MySQL / MariaDB bằng tài khoản root bằng cách sử dụng Linux Command

mysql -u root -p

Trường hợp chưa được cấp tài khoản gốc chưa được đặt mật khẩu thì dùng thêm sudo ở đầu để đăng nhập

Cấp chọn mysql

Do đó, chúng ta đã truy cập vào shell mode của MySQL/MariaDB

Tạo người dùng mới

Để tạo mới một người dùng, chúng tôi sử dụng lệnh SQL sau

CREATE USER ''@'' IDENTIFIED BY '';

VD. Tạo user có tên là vinasupport và host là localhost

MariaDB [(none)]> CREATE USER 'vinasupport'@'localhost' IDENTIFIED BY '12345678';

Sau đó kiểm tra xem Người dùng mới đã được tạo thành công chưa bằng lệnh SQL sau

MariaDB [(none)]> SELECT user,host FROM mysql.user;

Kết quả chúng ta có

Cấp chọn mysql

Người dùng có máy chủ lưu trữ là máy chủ cục bộ chỉ có thể kết nối từ máy chủ, nếu bạn muốn điều khiển từ xa từ máy chủ khác thì máy chủ sử dụng là %, VD. ‘vinasupport’@’%’

Gán quyền cho người dùng

Bây giờ chúng ta cần phải gán quyền cho người dùng để người dùng có thể kết nối và có quyền thao tác với cơ sở dữ liệu hiện tại

GRANT  ON . TO @;

Ví dụ gán toàn bộ quyền cho người dùng vinasupport ta sử dụng lệnh SQL sau

MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'vinasupport'@'localhost';

Kết quả

Cấp chọn mysql

Bạn chỉ có thể chỉ định một số quyền nhất định, như chỉ được chọn, chèn, cập nhật chứ không phải hạn chế

Kết nối với MySQL với tư cách người dùng bằng Create_user_priv và Grant_priv. Xác định người dùng nào có các đặc quyền này bằng cách chạy truy vấn sau. Người dùng của bạn sẽ cần có đặc quyền CHỌN trên MySQL. người dùng để chạy truy vấn

SELECT User, Host, Super_priv, Create_user_priv, Grant_priv from mysql.user WHERE Create_user_priv = 'Y' AND Grant_Priv = 'Y';

  • Chạy truy vấn sau để tạo câu lệnh GRANT cho người dùng bị hạn chế của bạn. Thay thế 'cơ sở dữ liệu', 'người dùng' và 'máy chủ lưu trữ' bằng thông tin cụ thể cho cơ sở dữ liệu của bạn

    Lưu ý rằng các trích dẫn xung quanh myuser và mypassword là hai trích dẫn đơn, không phải kép. Các ký tự xung quanh myhost và, TABLE_NAME, là dấu ngược (phím nằm bên dưới phím thoát trên bàn phím của bạn)

    SELECT CONCAT('GRANT SELECT, SHOW VIEW ON mydatabase.`', TABLE_NAME, '` to ''myuser''@`myhost`;')
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'mydatabase';
    

    Ví dụ: nếu bạn muốn kết nối người dùng 'chartio_read_only' với cơ sở dữ liệu 'Báo cáo' của mình bằng ứng dụng khách chartio_connect, bạn sẽ chạy như sau

    ________số 8

    Nếu bạn muốn kết nối người dùng 'chartio_direct_connect' với cơ sở dữ liệu 'Analytics' của mình bằng kết nối trực tiếp từ máy chủ của Chartio, bạn sẽ chạy như sau

    SELECT CONCAT('GRANT SELECT, SHOW VIEW ON Analytics.`', TABLE_NAME, '` to ''chartio_direct_connect''@`52.6.1.1`;')
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'Analytics';
    

  • Truy vấn sẽ có kết quả tương tự như sau

    CREATE USER ''@'' IDENTIFIED BY '';
    0

  • Chỉ chọn các câu lệnh cho các bảng bạn muốn cấp quyền truy cập và chạy các truy vấn đó. Ví dụ: nếu chúng tôi chỉ muốn cấp quyền truy cập vào bảng Người dùng và Khách truy cập, chúng tôi sẽ chạy

    CREATE USER ''@'' IDENTIFIED BY '';
    1

  • Cung cấp cho người dùng một mật khẩu an toàn

    CREATE USER ''@'' IDENTIFIED BY '';
    2

    hoặc

    CREATE USER ''@'' IDENTIFIED BY '';
    3

  • Bây giờ bạn có thể truy cập cơ sở dữ liệu của mình một cách an toàn với người dùng này và yên tâm rằng nó chỉ có quyền đối với các bảng được chỉ định

    Cấp quyền cấp cột

    Quy trình cấp quyền cấp cột trên một bảng cụ thể rất giống với cấp quyền cấp bảng

    1. Tạo các câu lệnh GRANT cho các quyền cấp cột bằng truy vấn sau

      CREATE USER ''@'' IDENTIFIED BY '';
      4

      Ví dụ: nếu bạn muốn kết nối người dùng 'chartio_read_only' với các cột cụ thể trong bảng 'Người dùng' của cơ sở dữ liệu 'Báo cáo' bằng ứng dụng khách chartio_connect, bạn sẽ chạy như sau

      CREATE USER ''@'' IDENTIFIED BY '';
      5

    2. Truy vấn sẽ dẫn đến kết quả tương tự như sau

      SELECT CONCAT('GRANT SELECT, SHOW VIEW ON mydatabase.`', TABLE_NAME, '` to ''myuser''@`myhost`;')
      FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_SCHEMA = 'mydatabase';
      
      0

    3. Chỉ chọn các câu lệnh cho các cột bạn muốn cấp quyền truy cập và chạy các truy vấn đó. Ví dụ: nếu chúng tôi chỉ muốn cấp quyền truy cập vào cột 'User_ID' và 'Công ty', chúng tôi sẽ chạy