Làm cách nào để đặt quyền của người dùng cho MySQL?

MySQL là một cơ sở dữ liệu quan hệ đối tượng mã nguồn mở được xây dựng chú trọng đến tốc độ và độ tin cậy. Cộng đồng nhà phát triển lớn và tích cực của nó đã tạo ra nhiều ứng dụng, công cụ và thư viện của bên thứ ba giúp mở rộng chức năng của MySQL


Các đặc quyền được cấp cho người dùng MySQL xác định những thao tác mà người dùng đó có thể thực hiện. Các đặc quyền của MySQL được tổ chức phù hợp

  • Đặc quyền quản trị cho phép người dùng quản lý các hoạt động của chính máy chủ MySQL, bao gồm các đặc quyền của người dùng khác. Còn được gọi là đặc quyền toàn cầu

  • Đặc quyền cơ sở dữ liệu cho phép người dùng quản lý một cơ sở dữ liệu cụ thể và tất cả các đối tượng trong cơ sở dữ liệu đó. Chúng có thể được cấp trên toàn cầu hoặc chỉ cho các cơ sở dữ liệu cụ thể

  • Đặc quyền đối tượng cơ sở dữ liệu cho phép người dùng quản lý các đối tượng cụ thể trong cơ sở dữ liệu. Các đặc quyền này có thể được cấp cho các đối tượng cụ thể trong cơ sở dữ liệu, cho toàn bộ cơ sở dữ liệu hoặc toàn cầu

Hạn chế đặc quyền đối với Cơ sở dữ liệu được quản lý MySQL của DigitalOcean

Theo mặc định, các cụm cơ sở dữ liệu MySQL đi kèm với một người dùng, doadmin, có toàn quyền truy cập vào mọi cơ sở dữ liệu bạn tạo. Thay vì sử dụng doadmin để truy cập cơ sở dữ liệu, chúng tôi khuyên bạn nên tạo thêm người dùng chỉ có các đặc quyền mà họ cần, tuân theo nguyên tắc đặc quyền tối thiểu

MySQL đặt các đặc quyền dựa trên tên tài khoản, bao gồm tên người dùng và tên máy chủ ở định dạng

    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    
0. Bạn có thể chỉ định máy chủ theo tên (
    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    
1), địa chỉ IP (
    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    
2) hoặc sử dụng ký tự đại diện (
    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    
3, khớp với tất cả máy chủ). Tìm hiểu thêm trong tài liệu của MySQL về cách chỉ định tên tài khoản

Để đảm bảo tính ổn định của nền tảng, Cơ sở dữ liệu MySQL được quản lý của DigitalOcean có một số hạn chế mặc định đối với đặc quyền của người dùng không thể thay đổi. Người dùng không thể chèn hoặc chỉnh sửa bất kỳ cơ sở dữ liệu nào sau đây, nhưng có thể chọn từ chúng

  •     
            
                
    GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
    
            
        
    
    4
  •     
            
                
    GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
    
            
        
    
    5
  •     
            
                
    GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
    
            
        
    
    6
  •     
            
                
    GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
    
            
        
    
    7

Người dùng trên Cơ sở dữ liệu MySQL được quản lý của DigitalOcean không thể chèn, chỉnh sửa hoặc chọn từ cơ sở dữ liệu

    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    
8

Hiện tại, bạn không thể thay đổi đặc quyền của người dùng trong bảng điều khiển, vì vậy, để làm như vậy, bạn cần sử dụng ứng dụng khách MySQL dòng lệnh như

    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    
4. Sau khi bạn tạo người dùng trong cụm, hãy kết nối với cụm với tên doadmin hoặc người dùng quản trị khác. Từ đây, các lệnh bạn cần thực hiện tùy thuộc vào quyền mà bạn muốn người dùng có

Cấp đặc quyền

Để cấp tất cả các đặc quyền trên một cơ sở dữ liệu cụ thể cho người dùng, bạn có thể sử dụng các lệnh sau

    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%';

        
    

Bạn không thể tạo thêm người dùng quản trị. Tuy nhiên, bạn có thể cấp cho người dùng toàn quyền truy cập vào tất cả các cơ sở dữ liệu mà bạn đã tạo bằng cách chạy lệnh

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';

        
    
1 cho mỗi cơ sở dữ liệu

Để cấp đặc quyền quản trị người dùng cho một cơ sở dữ liệu cụ thể, bạn cũng phải cấp cho họ đặc quyền

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';

        
    
2. Đây là một ví dụ

    
        
            
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;

        
    

Để cấp quyền chỉ đọc cho người dùng trên cơ sở dữ liệu, bạn có thể sử dụng lệnh sau

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';

        
    

Để chỉ cấp đặc quyền cho người dùng trên một bảng cụ thể trong cơ sở dữ liệu, bạn có thể sử dụng lệnh sau

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';
mysql> GRANT INSERT ON example_database.example_table TO 'example_user'@'%';

        
    

Cấp đặc quyền bổ sung cho người dùng không xóa bất kỳ đặc quyền hiện có nào. Để , sử dụng lệnh

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';

        
    
3

Thu hồi đặc quyền

Thu hồi các đặc quyền khá giống với việc cấp cho chúng. Để thu hồi đặc quyền của người dùng, hãy sử dụng cú pháp lệnh

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';

        
    
4. Ví dụ: để thu hồi tất cả các đặc quyền trên một cơ sở dữ liệu cụ thể, hãy sử dụng lệnh sau

    
        
            
REVOKE ALL ON example_database FROM 'example_user'@'%';

        
    

Nếu người dùng đã có đặc quyền và bạn muốn thu hồi chúng nhưng vẫn cho phép người dùng đọc cơ sở dữ liệu, bạn có thể sử dụng lệnh sau

    
        
            
REVOKE ALL ON example_database FROM 'example_user'@'%';
mysql> GRANT SELECT ON example_database TO 'example_user'@'%';

        
    

Xem đặc quyền

Để xem các đặc quyền cho người dùng hiện tại, bạn có thể sử dụng lệnh

    
        
            
GRANT SELECT ON example_database TO 'example_user'@'%';

        
    
5 và sẽ thấy đầu ra tương tự như sau, hiển thị các đặc quyền mặc định cho người dùng doadmin

Làm cách nào để gán quyền cho người dùng trong MySQL?

Câu lệnh GRANT cho phép bạn đặt quyền truy cập MySQL bằng cú pháp sau. mysql> CẤP đặc quyền TRÊN cấp_đặc quyền CHO tên_tài_khoản ; . mysql> LỰA CHỌN CẤP, CHÈN TRÊN Strongdm.

Làm cách nào để hiển thị quyền của người dùng trong MySQL?

Nếu tài khoản người dùng mà bạn đăng nhập có đặc quyền CHỌN trên cơ sở dữ liệu mysql nội bộ, bạn có thể xem các đặc quyền được cấp cho các tài khoản người dùng khác. Để hiển thị các đặc quyền của các tài khoản khác, hãy sử dụng định dạng sau. HIỂN THỊ CÁC KHOẢN CẤP CHO ' ; .