Quản trị MySQL: cách tạo người dùng và xác định quyền của anh ta

Mục lục:

Quản trị MySQL: cách tạo người dùng và xác định quyền của anh ta
Quản trị MySQL: cách tạo người dùng và xác định quyền của anh ta
Anonim

Một tính năng đặc trưng của MySQL là tính bảo mật của riêng nó, dựa vào sự bảo vệ bên ngoài. Là một hệ thống quản lý cơ sở dữ liệu hiện đại, đầy đủ tính năng và hiệu quả, MySQL có các công cụ riêng để quản lý người dùng và quyền truy cập của họ vào các tài nguyên mà nó kiểm soát.

mysql tạo người dùng
mysql tạo người dùng

Nếu bạn không biết tên người dùng và mật khẩu chính xác, việc truy cập cơ sở dữ liệu thông qua MySQL là rất khó.

Ở chế độ lưu trữ bình thường, điều này là đủ. Các tình huống không lường trước được, các cuộc tấn công của hacker và các rắc rối khác là vấn đề của các dịch vụ bảo mật và quản trị hệ thống bên ngoài. Khái niệm này đã trở thành truyền thống và thực tế không được thảo luận.

Cài đặt máy chủ MySQL và root người dùng

Trong bất kỳ môi trường hoạt động nào, hệ quản trị cơ sở dữ liệu được cài đặt, nó luôn có ít nhất một người dùng: root. Cài đặt MySQL, tạo người dùng có tất cả quyền root - không có quyền này, làm việc vớimáy chủ là không thể. Đặc quyền của người dùng này đủ để:

  • tạo và quản lý người dùng mới;
  • tạo và quản lý cơ sở dữ liệu.
mysql tạo người dùng và cấp quyền cho cơ sở dữ liệu
mysql tạo người dùng và cấp quyền cho cơ sở dữ liệu

Về cơ bản, người dùng "không có mật khẩu" có thể tồn tại trong MySQL, nhưng điều này là không thể chấp nhận được.

Thông lệ:

  • máy chủ được cài đặt trên máy tính riêng, nơi có thể cài đặt máy chủ lưu trữ (tùy chọn cục bộ);
  • Máy chủđang được lưu trữ công cộng trên Internet.

Trong trường hợp đầu tiên, có thể làm việc với máy chủ từ dòng lệnh và sử dụng phpMyAdmin, trong trường hợp thứ hai, chỉ phpMyAdmin hoặc một công cụ tương tự, nhưng dòng lệnh có thể được truy cập thông qua truy cập SSH từ xa.

Công cụ quản trị riêng

Cảm giác thân thiết với gia đình Unixoid và quá khứ từ các máy chủ Apache là một dấu ấn của MySQL: tạo người dùng là một dòng lệnh với cú pháp kỳ lạ. Đối với các chuyên gia làm việc với Linux và các hệ thống tương tự, điều này quen thuộc vì nó trông rất hoang dã trong mắt những người dùng Windows chưa bao giờ “bước vào cuộc sống thực”.

Tạo người dùng bắt đầu bằng việc khởi động dòng lệnh máy chủ. Trong môi trường Windows, điều này được thực hiện như sau.

mysql tạo người dùng với tất cả các quyền
mysql tạo người dùng với tất cả các quyền

Đầu tiên (1) bạn cần chạy dòng lệnh với tư cách quản trị viên, sau đó chuyển đến thư mục chứa MySQL (2), sau đótự khởi động máy chủ (3):

mysql -u… -p

đây "-u…" và "-p" là các khóa trỏ đến tên "…"=root (hoặc tên khác) và mật khẩu của nó. Về nguyên tắc, người dùng có thể không phải là root, nhưng người dùng có quyền "root" (quản trị).

Quan trọng: máy chủ thực sự luôn chạy, ở đây mysql -u… -p là lệnh để truy cập vào máy chủ, không phải khởi động nó.

Trong môi trường Linux và các hệ thống tương tự, lệnh như vậy là một hành động "gốc" và theo quy tắc, được xác định bằng cách đơn giản khởi động mysqld ở đúng nơi (ở đường dẫn bên phải), điều này nên được kiểm tra với quản lý hành chính. Ở đây thường có một tên khác: không phải mysql, mà là mysqld. Cũng ở đây, hành động này không phải lúc nào cũng có sẵn cho tất cả người dùng (của hệ điều hành, không phải của máy chủ MySQL). Không giống như Windows, trong Linuxoids, trật tự và an ninh là một yêu cầu tự nhiên và không thể thương lượng, luôn được đối xử một cách văn minh.

Trong mọi trường hợp, khi mysql đã khởi động, nó sẽ thông báo điều này với lời nhắc (4):

mysql>

và nó sẽ có thể hoạt động với cả người dùng và cơ sở dữ liệu.

Lưu ý. Khi cài đặt trong môi trường Windows, mọi thứ: Apache, MySQL, PHP, phpMyAdmin có thể được đặt thành đường dẫn mặc định, nhưng bạn nên sử dụng các vị trí nhỏ gọn hơn và gần hơn cho các công cụ quan trọng này:

  • c: / SCiA / Apache;
  • c: / SCiA / PHP;
  • c: / SCiA / MySQL;
  • c: / SCiB / localhost / www / phpMyAdmin;
  • c: / SCiB / site1 / www;
  • c: / SCiB / site2 / www;
  • c: / SCiB / siteN / www \.

Logic này sẽ không chỉ đơn giản hóa việc quản trị mà còn mở rộng khả năng của nhà phát triển trong việc di chuyển giữa các phiên bản sản phẩm và quản lý chức năng của chúng.

Làm việc trên dòng lệnh MySQL

Sau khi máy chủ phản hồi và cung cấp dòng lệnh của nó, người dùng có thể được tạo và chỉ định quyền.

mysql tạo người dùng cho bất kỳ máy chủ nào
mysql tạo người dùng cho bất kỳ máy chủ nào

Trong ví dụ này, lệnh tạo người dùng đã tạo người dùng Petrov với mật khẩu 123DFG. Nếu xảy ra lỗi khi nhập lệnh, máy chủ sẽ đề nghị sửa lỗi đó, nhưng tốt hơn hết là đừng bao giờ mắc lỗi khi làm việc trên dòng lệnh!

Lệnh sau đây cấp tất cả các đặc quyền cho tất cả các quyền đối với mọi thứ. Lệnh flush có thể bị bỏ qua, nhưng nó 'bật' bộ đệm của các lệnh, tức là nó sửa lỗi thực thi của chúng.

MySQL: tạo người dùng và cấp quyền cho cơ sở dữ liệu

Lệnh được sử dụng trong ví dụ:

CẤP TẤT CẢ CÁC QUYỀN RIÊNG TƯ BẬT. CHO 'Petrov' @ 'localhost';

thực sự cấp cho người dùng quyền truy cập Petrov vào tất cả cơ sở dữ liệu (dấu hoa thị đầu tiên) cho tất cả các bảng (dấu hoa thị thứ hai).

mysql tạo người dùng với tất cả các quyền
mysql tạo người dùng với tất cả các quyền

Theo quy tắc chung của MySQL, việc tạo người dùng là:

CẤP [loại đặc quyền] BẬT [tên cơ sở dữ liệu]. [Tên bảng] ĐẾN '[người dùng]' @ 'localhost';

Cho phép các đặc quyền sau:

  • TẤT CẢ CÁC QUYỀN RIÊNG TƯ - mọi quyền lợi.
  • CREATE - quyền tạo bảng / cơ sở dữ liệu mới.
  • DROP - quyền bỏ bảng / cơ sở dữ liệu.
  • DELETE - quyền xóa thông tin trong bảng.
  • INSERT - quyền ghi thông tin vào bảng.
  • SELECT - quyền đọc thông tin từ các bảng.
  • CẬP NHẬT - quyền cập nhật thông tin trong các bảng.
  • LỰA CHỌN CẤP - quyền làm việc với các đặc quyền của người dùng khác.

Từ quan điểm thực tế, trong MySQL, "tạo người dùng" ngụ ý ba tùy chọn cho các quyền:

  • tất cả các quyền đối với tất cả cơ sở dữ liệu và tất cả người dùng;
  • đọc và viết;
  • chỉ đọc.

Các tùy chọn khác để cấp quyền hiếm khi được yêu cầu. Trong môi trường Linux, có nhiều cơ sở hơn cho tự do "hợp pháp" (và sự cần thiết), nhưng có nhiều cơ hội hơn ở đó so với trong Windows.

Thao tác ngược lại của MySQL "tạo người dùng" bị giảm.

thả người dùng 'Petrov' @ 'localhost';

Sau khi thực hiện lệnh này, Petrov sẽ không còn là người dùng và các đặc quyền của anh ta sẽ bị mất. Để thay đổi đặc quyền, hãy sử dụng lệnh:

REVOKE [đặc quyền] BẬT [DB]. [Bảng] ĐẾN '[người dùng]' @ 'localhost';

Hành động thông thường trong MySQL là tạo người dùng hoặc xóa người dùng đó, nhưng thay đổi đặc quyền cũng là một thao tác hợp lệ (hiếm khi được yêu cầu).

Sử dụng phpMyAdmin

Có rất nhiều cách triển khai của công cụ tuyệt vời này. Tùy thuộc vào phiên bản Apache, PHP và MySQL được sử dụng, thường mất nhiều thời gian để tìm được phiên bản phù hợp của sản phẩm này, nhưng một khi phpMyAdmin được cài đặt thành công, người dùng có nhiều tính năng tiện lợi và thoải mái.giao diện.

mysql tạo người dùng cho bất kỳ máy chủ nào
mysql tạo người dùng cho bất kỳ máy chủ nào

Sử dụng phpMyAdmin, bạn có thể yêu cầu MySQL tạo người dùng cho bất kỳ máy chủ nào và quản lý người dùng hiện tại theo những cách gần như phẫu thuật.

phpMyAdmin không phải là công cụ duy nhất có giao diện thoải mái, trực quan và giàu tính năng, nhưng nó là công cụ phổ biến nhất để quản trị các máy chủ MySQL.

Giới thiệu về dòng lệnh và bảo mật

Tất nhiên, sử dụng dòng lệnh MySQL là một bài tập không hấp dẫn, nhưng cần lưu ý rằng trong một số trường hợp, chỉ dòng lệnh của máy chủ mới có thể lưu cơ sở dữ liệu hoặc người dùng, đảm bảo việc nhập hoặc xuất thông tin.

mysql tạo người dùng cho bất kỳ máy chủ nào
mysql tạo người dùng cho bất kỳ máy chủ nào

Các phiên bản phần mềm đang phát triển quá nhanh đến nỗi các nhà phát triển chỉ đơn giản là không có thời gian để kết hợp các tính năng của, chẳng hạn như PHP và MySQL, MySQL và phpMyAdmin. Nếu có điều gì đó xảy ra, dòng lệnh sẽ luôn lưu trong ngày.

Một người cũng đừng bao giờ quên: Quản trị MySQL chỉ là truy cập cơ sở dữ liệu và thông qua chức năng của nó. Các tệp cơ sở dữ liệu được mở để truy cập bên ngoài MySQL. Bảo mật bên ngoài MySQL và các tài nguyên mà nó kiểm soát là một nhu cầu thực sự và quan trọng.

Đề xuất: