Hướng dẫn mysql grant create schema - cấp mysql tạo lược đồ
Đã đăng vào thg 10 29, 2017 4:23 SA 3 phút đọc 3 phút đọc About MySQLMYSQL 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. How to Create a New UserThông thường chúng ta thường thao tác với database với đầy đủ các quyền, nhưng nhiều trường hợp chúng ta không muốn ai đó truy cập với đầy đủ các quyền. Tạo mới user bằng câu lệnh sau:
Thật tệ, ngay trong thời điểm vừa mới tạo mới user thì user chưa có quyền gì. Ngay cả khi cố đăng nhập vào thì cung khỗng thể vào được màn hình shell. Vì thế chúng ta cần cung cấp quyền cho họ để có thể truy cập thông tin mà họ cần.
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. Để các quyền trên có hiệu lực thì bạn dùng lệnh:
How To Grant Different User PermissionsDưới đây là danh sách các lệnh thường dùng để gán quyền cho user.
Để thiết lập quyền cụ thể cho user thì dùng lệnh sau:
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 sao (*) 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. Nếu cần thu hồi lại quyền của user, hãy dùng lệnh REVOKE với biểu mẫu lệnh sau đây:
Hoặc có thể xóa cơ sở dữ liệu với lệnh DROP, bạn cũng có thể dùng lệnh để xóa hẳn user đó đi.
Để kiểm tra user mới được tạo, logout bằng lệnh
và login lại bằng lệnh:
sau đó nhập password. Trên đây là hướng dẫn tạo mới user và custom permissions cho user. Hi vọng giúp ích được phần nào cho các bạn. Link source: https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql All rights reserved 13.7.1.6 & NBSP; Tuyên bố cấp
Câu lệnh 0 gán các đặc quyền và vai trò cho tài khoản và vai trò của người dùng MySQL. Có một số khía cạnh của tuyên bố 0, được mô tả theo các chủ đề sau:
Cấp tổng quan chungĐối tượng Trích dẫn hướng dẫn
Đặc quyền cột Được lưu trữ đặc quyền thường xuyên Đặc quyền người dùng proxy Cấp vai trò Điều khoản 2 và các hạn chế đặc quyền
Các đặc điểm tài khoản khác MySQL và các phiên bản SQL tiêu chuẩn của Grant 0Tuyên bố 0 cho phép các quản trị viên hệ thống cấp các đặc quyền và vai trò, có thể được cấp cho tài khoản và vai trò của người dùng. Các hạn chế cú pháp này được áp dụng:mysql program,
0 responds with 6 when executed successfully. To determine what privileges result from the operation, use 7. See
Section 13.7.7.21, “SHOW GRANTS Statement”.
0 không thể trộn lẫn việc cấp cả hai đặc quyền và vai trò trong cùng một tuyên bố. Một tuyên bố 0 đã cho phải cấp cho các đặc quyền hoặc vai trò.Điều khoản 6 phân biệt liệu tuyên bố có cấp các đặc quyền hay vai trò:Với 6, tuyên bố cấp đặc quyền.Không có 6, tuyên bố cấp vai trò. Nó được phép gán cả hai đặc quyền và vai trò cho một tài khoản, nhưng bạn phải sử dụng các câu lệnh 3 system schema in any manner except by means of the procedure described in Section 2.11, “Upgrading MySQL”. Đối tượng Trích dẫn hướng dẫnMột số đối tượng trong các câu lệnh 0 có thể được trích dẫn, mặc dù trích dẫn là tùy chọn trong nhiều trường hợp: tài khoản, vai trò, cơ sở dữ liệu, bảng, cột và tên thông thường. Ví dụ: nếu giá trị 4 hoặc 5 trong tên tài khoản là hợp pháp như một mã định danh chưa được trích xuất, bạn không cần phải trích dẫn nó. Tuy nhiên, các dấu ngoặc kép là cần thiết để chỉ định chuỗi 4 chứa các ký tự đặc biệt (như 7) hoặc chuỗi 5 chứa các ký tự đặc biệt hoặc ký tự ký tự đại diện như 9 (ví dụ: 0). Trích dẫn tên người dùng và tên máy chủ riêng biệt.Để chỉ định các giá trị được trích dẫn:
Đối với các hướng dẫn trích xuất chuỗi và định danh, xem phần & nbsp; 9.1.1, Chuỗi Chuỗi chữ, và Phần & NBSP; 9.2, Tên đối tượng Schema. Các ký tự đại diện 1 và 9 được cho phép khi chỉ định tên cơ sở dữ liệu trong các câu lệnh 0 cấp đặc quyền ở cấp cơ sở dữ liệu (________ 74.*). Ví dụ, điều này có nghĩa là sử dụng ký tự 1 như một phần của tên cơ sở dữ liệu, chỉ định nó bằng cách sử dụng ký tự thoát 6 là 7 trong câu lệnh 0, để ngăn người dùng có thể truy cập vào cơ sở dữ liệu bổ sung phù hợp với mẫu ký tự đại diện (đối với Ví dụ, 9).Trong các bài tập đặc quyền, MySQL diễn giải các sự xuất hiện của các ký tự 1 và 9 SQL trong tên cơ sở dữ liệu dưới dạng các ký tự theo nghĩa đen trong những trường hợp này:
Tên tài khoảnGiá trị 0 trong câu lệnh 0 cho biết tài khoản MySQL mà câu lệnh được áp dụng. Để phù hợp với quyền cấp cho người dùng từ máy chủ tùy ý, MySQL hỗ trợ chỉ định giá trị 0 trong biểu mẫu '________ 64'@'________ 65'.' . Bạn có thể chỉ định ký tự đại diện trong tên máy chủ. Ví dụ: ' 4'@'%.example.com' áp dụng cho 4 cho bất kỳ máy chủ nào trong miền 7 và ' 4'@'198.51.100.' applies to 4 for any host in the 7 domain, and ' applies to 4 for any host in the 00 class C subnet. Mẫu đơn giản ' 4' là từ đồng nghĩa với '________ 64'@'%'.' is a synonym for ' . MySQL không hỗ trợ ký tự đại diện trong tên người dùng. Để chỉ người dùng ẩn danh, chỉ định tài khoản có tên người dùng trống với câu lệnh 0 statement: 1Trong trường hợp này, bất kỳ người dùng nào kết nối từ máy chủ cục bộ với mật khẩu chính xác cho người dùng ẩn danh đều được phép truy cập, với các đặc quyền liên quan đến tài khoản người dùng ẩn danh. Để biết thêm thông tin về tên người dùng và giá trị tên máy chủ trong tên tài khoản, xem Phần & NBSP; 6.2.4, Chỉ định tên tài khoản. Cảnh báo Nếu bạn cho phép người dùng ẩn danh cục bộ kết nối với máy chủ MySQL, bạn cũng nên cấp đặc quyền cho tất cả người dùng địa phương là '________ 64'@'localhost'. Mặt khác, người dùng ẩn danh tài khoản 05 trong bảng hệ thống 1 được sử dụng khi người dùng được đặt tên cố gắng đăng nhập vào máy chủ MySQL từ máy cục bộ. Để biết chi tiết, xem Phần & NBSP; 6.2.6, Kiểm soát truy cập, Giai đoạn 1: Xác minh kết nối.' . Otherwise, the anonymous user account for 05 in the 1 system table is used when named users try to log in to the MySQL
server from the local machine. For details, see Section 6.2.6, “Access Control, Stage 1: Connection Verification”. Để xác định xem vấn đề này có áp dụng cho bạn hay không, hãy thực hiện truy vấn sau, liệt kê bất kỳ người dùng ẩn danh nào: 2Để tránh vấn đề vừa được mô tả, hãy xóa tài khoản người dùng ẩn danh cục bộ bằng cách sử dụng câu lệnh này: 3Đặc quyền được hỗ trợ bởi MySQLCác bảng sau đây tóm tắt các loại đặc quyền tĩnh và động ____107 có thể được chỉ định cho các câu lệnh 0 và 9 và các mức có thể được cấp cho mỗi đặc quyền. Để biết thêm thông tin về từng đặc quyền, hãy xem Phần & NBSP; 6.2.2, Đặc quyền được cung cấp bởi MySQL. Để biết thông tin về sự khác biệt giữa các đặc quyền tĩnh và động, hãy xem các đặc quyền tĩnh so với động.Bảng & NBSP;
Một kích hoạt được liên kết với một bảng. Để tạo hoặc thả trình kích hoạt, bạn phải có đặc quyền 63 cho bảng, không phải là trình kích hoạt.Trong các tuyên bố 0, đặc quyền 69 hoặc 12 phải được đặt tên bởi chính nó và không thể được chỉ định cùng với các đặc quyền khác. 69 là viết tắt của tất cả các đặc quyền có sẵn cho cấp độ mà các đặc quyền sẽ được cấp ngoại trừ các đặc quyền 1 và 12.Thông tin tài khoản MySQL được lưu trữ trong các bảng của lược đồ hệ thống 3. Để biết thêm chi tiết, hãy tham khảo Phần & NBSP; 6.2, Kiểm soát truy cập và quản lý tài khoản, trong đó thảo luận về lược đồ hệ thống 3 và hệ thống kiểm soát truy cập rộng rãi.Nếu các bảng cấp giữ các hàng đặc quyền có chứa cơ sở dữ liệu trường hợp hỗn hợp hoặc tên bảng và biến hệ thống 76 được đặt thành giá trị khác, 9 không thể được sử dụng để thu hồi các đặc quyền này. Nó là cần thiết trong các trường hợp như vậy để thao tác trực tiếp các bảng cấp. .Các đặc quyền có thể được cấp ở một số cấp độ, tùy thuộc vào cú pháp được sử dụng cho mệnh đề 6. Đối với 9, cú pháp 6 tương tự chỉ định các đặc quyền để xóa.Đối với các cấp độ toàn cầu, cơ sở dữ liệu, bảng và thông thường, 84 chỉ gán các đặc quyền tồn tại ở cấp độ bạn đang cấp. Ví dụ: ________ 185.* là một tuyên bố cấp cơ sở dữ liệu, do đó, nó không cấp bất kỳ đặc quyền chỉ dành cho toàn cầu nào như 34. Cấp 87 không gán đặc quyền 1 hoặc 12.Điều khoản 90, nếu có, nên được chỉ định là 91, 92 hoặc 93 khi đối tượng sau là bảng, hàm được lưu trữ hoặc quy trình được lưu trữ.Các đặc quyền mà người dùng giữ cho cơ sở dữ liệu, bảng, cột hoặc thói quen được hình thành một cách phụ thuộc dưới dạng 94 logic của các đặc quyền tài khoản ở mỗi cấp đặc quyền, bao gồm cả cấp độ toàn cầu. Không thể từ chối một đặc quyền được cấp ở cấp độ cao hơn do không có đặc quyền đó ở cấp độ thấp hơn. Ví dụ: Tuyên bố này cấp cho các đặc quyền 41 và 37 trên toàn cầu: 4Các đặc quyền được cấp toàn cầu áp dụng cho tất cả các cơ sở dữ liệu, bảng và cột, mặc dù không được cấp ở bất kỳ cấp thấp nào. Kể từ MySQL 8.0.16, có thể từ chối rõ ràng một đặc quyền được cấp ở cấp độ toàn cầu bằng cách thu hồi nó cho các cơ sở dữ liệu cụ thể, nếu biến hệ thống 4 được bật: 5Kết quả của các câu trước là 41 áp dụng trên toàn cầu cho tất cả các bảng, trong khi 37 và 2 áp dụng trên toàn cầu ngoại trừ các bảng trong 01. Truy cập tài khoản vào 01 chỉ được đọc.Chi tiết về quy trình kiểm tra đặc quyền được trình bày trong Phần & NBSP; 6.2.7, Kiểm soát truy cập, Giai đoạn 2: Yêu cầu Xác minh. Nếu bạn đang sử dụng các đặc quyền bảng, cột hoặc thường xuyên cho ngay cả một người dùng, máy chủ sẽ kiểm tra bảng, cột và đặc quyền thường xuyên cho tất cả người dùng và điều này làm chậm MySQL một chút. Tương tự, nếu bạn giới hạn số lượng truy vấn, cập nhật hoặc kết nối cho bất kỳ người dùng nào, máy chủ phải theo dõi các giá trị này. MySQL cho phép bạn cấp các đặc quyền trên cơ sở dữ liệu hoặc bảng không tồn tại. Đối với các bảng, các đặc quyền được cấp phải bao gồm đặc quyền 16. Hành vi này là theo thiết kế và được dự định để cho phép quản trị viên cơ sở dữ liệu chuẩn bị tài khoản người dùng và đặc quyền cho cơ sở dữ liệu hoặc bảng sẽ được tạo sau đó.This behavior is by design, and is intended to enable the database administrator to prepare user accounts and privileges for databases or tables that are to be created at a later time. Quan trọng MySQL không tự động thu hồi bất kỳ đặc quyền nào khi bạn bỏ cơ sở dữ liệu hoặc bảng. Tuy nhiên, nếu bạn bỏ một thói quen, bất kỳ đặc quyền cấp thói quen nào được cấp cho thói quen đó đều bị thu hồi.. However, if you drop a routine, any routine-level privileges granted for that routine are revoked. Đặc quyền toàn cầuCác đặc quyền toàn cầu là hành chính hoặc áp dụng cho tất cả các cơ sở dữ liệu trên một máy chủ nhất định. Để gán các đặc quyền toàn cầu, hãy sử dụng cú pháp 04: 6
19, 2, 34, 42, 46, 48, 49, 52, 56 và 7 đặc quyền tĩnh là hành chính và chỉ có thể được cấp trên toàn cầu.Các đặc quyền năng động đều là toàn cầu và chỉ có thể được cấp trên toàn cầu. Các đặc quyền khác có thể được cấp trên toàn cầu hoặc ở cấp độ cụ thể hơn. Hiệu quả của 1 được cấp ở cấp độ toàn cầu khác nhau đối với các đặc quyền tĩnh và động:
84 ở cấp độ toàn cầu cấp tất cả các đặc quyền toàn cầu tĩnh và tất cả các đặc quyền động hiện đã đăng ký. Một đặc quyền động đã đăng ký sau khi thực hiện tuyên bố 0 không được cấp hồi tố cho bất kỳ tài khoản nào.MySQL lưu trữ các đặc quyền toàn cầu trong bảng hệ thống 1.Đặc quyền cơ sở dữ liệuCác đặc quyền cơ sở dữ liệu áp dụng cho tất cả các đối tượng trong một cơ sở dữ liệu nhất định. Để gán các đặc quyền cấp cơ sở dữ liệu, hãy sử dụng ____ 221.* Cú pháp: 7Nếu bạn sử dụng cú pháp 22 (thay vì 04), các đặc quyền được chỉ định ở cấp cơ sở dữ liệu cho cơ sở dữ liệu mặc định. Một lỗi xảy ra nếu không có cơ sở dữ liệu mặc định.
16, 30, 32, 1, 39 và 45 có thể được chỉ định ở cấp cơ sở dữ liệu. Bảng hoặc đặc quyền thường xuyên cũng có thể được chỉ định ở cấp cơ sở dữ liệu, trong trường hợp đó chúng áp dụng cho tất cả các bảng hoặc thói quen trong cơ sở dữ liệu.MySQL lưu trữ các đặc quyền cơ sở dữ liệu trong bảng hệ thống 30.Đặc quyền bảngĐặc quyền bảng áp dụng cho tất cả các cột trong một bảng nhất định. Để gán các đặc quyền cấp bảng, hãy sử dụng cú pháp 31: 8Nếu bạn chỉ định 3 thay vì 33, câu lệnh áp dụng cho 3 trong cơ sở dữ liệu mặc định. Một lỗi xảy ra nếu không có cơ sở dữ liệu mặc định.Các giá trị 07 cho phép ở cấp bảng là 13, 27, 16, 28, 30, 1, 36, 37, 45, 41, ____.Đặc quyền cấp bảng áp dụng cho các bảng và chế độ xem cơ sở. Chúng không áp dụng cho các bảng được tạo bằng 49, ngay cả khi tên bảng khớp. Để biết thông tin về các đặc quyền bảng 50, xem Phần & NBSP; 13.1.20.2, Tạo Tuyên bố bảng tạm thời.MYSQL lưu trữ các đặc quyền bảng trong bảng hệ thống 51.Đặc quyền cộtĐặc quyền cột áp dụng cho các cột đơn trong một bảng đã cho. Mỗi đặc quyền được cấp ở cấp cột phải được theo sau bởi các cột hoặc cột, được đặt trong ngoặc đơn. 9Các giá trị 07 cho phép cho một cột (nghĩa là khi bạn sử dụng mệnh đề 53) là 37, 45, 41 và 2.MySQL lưu trữ các đặc quyền cột trong bảng hệ thống 58.Được lưu trữ đặc quyền thường xuyênCác đặc quyền 15, 18, 33 và 1 áp dụng cho các thói quen được lưu trữ (quy trình và chức năng). Chúng có thể được cấp ở cấp độ toàn cầu và cơ sở dữ liệu. Ngoại trừ 18, các đặc quyền này có thể được cấp ở cấp độ thường quy cho các thói quen riêng lẻ. 0Các giá trị 07 cho phép ở cấp độ thường quy là 65, 33 và 1. 18 không phải là một đặc quyền cấp thông thường vì bạn phải có đặc quyền ở cấp độ toàn cầu hoặc cơ sở dữ liệu để tạo ra một thói quen ngay từ đầu.MySQL lưu trữ các đặc quyền cấp thường xuyên trong bảng hệ thống 69.Đặc quyền người dùng proxyĐặc quyền 12 cho phép một người dùng là proxy cho người khác. Người dùng proxy mạo danh hoặc lấy danh tính của người dùng proxied; Đó là, nó giả định các đặc quyền của người dùng ủy quyền. 1Khi 12 được cấp, nó phải là đặc quyền duy nhất được đặt tên trong tuyên bố 0 và tùy chọn 73 được phép duy nhất là 74.Proxy yêu cầu người dùng proxy xác thực thông qua một plugin trả về tên của người dùng proxied cho máy chủ khi người dùng proxy kết nối và người dùng proxy có đặc quyền 12 cho người dùng ủy quyền. Để biết chi tiết và ví dụ, xem Phần & NBSP; 6.2.19, Người dùng Proxy Proxy.MySQL lưu trữ các đặc quyền proxy trong bảng hệ thống 76.Cấp vai trò
0 Cú pháp không có mệnh đề 6 cấp vai trò thay vì các đặc quyền riêng lẻ. Một vai trò là một tập hợp các đặc quyền được đặt tên; Xem Phần & NBSP; 6.2.10, Sử dụng Vai trò. Ví dụ: 2Mỗi vai trò được cấp phải tồn tại, cũng như mỗi tài khoản người dùng hoặc vai trò được cấp. Kể từ MySQL 8.0.16, vai trò không thể được cấp cho người dùng ẩn danh. Cấp một vai trò không tự động khiến vai trò hoạt động. Để biết thông tin về kích hoạt vai trò và bất hoạt, xem vai trò kích hoạt. Những đặc quyền này được yêu cầu để cấp vai trò:
Có thể tạo các tài liệu tham khảo tròn với 0. Ví dụ: 3Tài liệu tham khảo tài trợ thông tư được cho phép nhưng không thêm đặc quyền hoặc vai trò mới vào người được cấp vì người dùng hoặc vai trò đã có các đặc quyền và vai trò của nó. Điều khoản GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;
|