Làm cách nào tôi có thể xem tất cả các quyền của người dùng trong mysql?

MySQL có một hệ thống truy cập cơ sở dữ liệu nâng cao. Người dùng cơ sở dữ liệu có thể có quyền truy cập vào toàn bộ cơ sở dữ liệu, các bảng riêng biệt hoặc các cột riêng biệt của bảng. Ngoài ra, có một hạn chế đối với các hành động mà người dùng có thể thực hiện với các bản ghi

Máy chủ MySQL sử dụng một số bảng trong cơ sở dữ liệu đặc biệt để tổ chức cấu trúc truy cập cơ sở dữ liệu phức tạp như vậy. Chính sách truy cập dựa trên các giá trị có sẵn trong các bảng này

Cơ sở dữ liệu mà máy chủ MySQL sử dụng để lưu trữ dữ liệu nội bộ về người dùng được gọi là mysql theo mặc định. Có các bảng để lưu trữ thông tin về tài khoản của người dùng trong cơ sở dữ liệu này

  • người dùng chứa danh sách tất cả người dùng máy chủ MySQL và quyền truy cập cơ sở dữ liệu của họ;
  • db chứa một danh sách các cơ sở dữ liệu với danh sách người dùng cơ sở dữ liệu phù hợp và các đặc quyền của họ để thực thi các hoạt động;
  • table_priv chứa danh sách các bảng cơ sở dữ liệu [dạng xem] mà người dùng có quyền truy cập;
  • cột_priv chứa danh sách các cột từ bảng cơ sở dữ liệu [dạng xem] mà người dùng có quyền truy cập;
  • procs_priv chứa danh sách các thủ tục [chức năng] cơ sở dữ liệu mà người dùng có quyền truy cập

Để lấy danh sách các đặc quyền của người dùng liên quan đến truy cập dữ liệu, có thể thực hiện các truy vấn sau

  • danh sách các đặc quyền toàn cầu
  SELECT
  mu.host `Host`,
  mu.user `User`,
  REPLACE[RTRIM[CONCAT[
  IF[mu.Select_priv = 'Y', 'Select ', ''],
  IF[mu.Insert_priv = 'Y', 'Insert ', ''],
  IF[mu.Update_priv = 'Y', 'Update ', ''],
  IF[mu.Delete_priv = 'Y', 'Delete ', ''],
  IF[mu.Create_priv = 'Y', 'Create ', ''],
  IF[mu.Drop_priv = 'Y', 'Drop ', ''],
  IF[mu.Reload_priv = 'Y', 'Reload ', ''],
  IF[mu.Shutdown_priv = 'Y', 'Shutdown ', ''],
  IF[mu.Process_priv = 'Y', 'Process ', ''],
  IF[mu.File_priv = 'Y', 'File ', ''],
  IF[mu.Grant_priv = 'Y', 'Grant ', ''],
  IF[mu.References_priv = 'Y', 'References ', ''],
  IF[mu.Index_priv = 'Y', 'Index ', ''],
  IF[mu.Alter_priv = 'Y', 'Alter ', ''],
  IF[mu.Show_db_priv = 'Y', 'Show_db ', ''],
  IF[mu.Super_priv = 'Y', 'Super ', ''],
  IF[mu.Create_tmp_table_priv = 'Y', 'Create_tmp_table ', ''],
  IF[mu.Lock_tables_priv = 'Y', 'Lock_tables ', ''],
  IF[mu.Execute_priv = 'Y', 'Execute ', ''],
  IF[mu.Repl_slave_priv = 'Y', 'Repl_slave ', ''],
  IF[mu.Repl_client_priv = 'Y', 'Repl_client ', ''],
  IF[mu.Create_view_priv = 'Y', 'Create_view ', ''],
  IF[mu.Show_view_priv = 'Y', 'Show_view ', ''],
  IF[mu.Create_routine_priv = 'Y', 'Create_routine ', ''],
  IF[mu.Alter_routine_priv = 'Y', 'Alter_routine ', ''],
  IF[mu.Create_user_priv = 'Y', 'Create_user ', ''],
  IF[mu.Event_priv = 'Y', 'Event ', ''],
  IF[mu.Trigger_priv = 'Y', 'Trigger ', '']
  ]], ' ', ', '] AS `Privileges`
 FROM
  mysql.user mu
 ORDER BY
  mu.Host,
  mu.User
  • danh sách các đặc quyền cho một cơ sở dữ liệu
 SELECT 
  md.host `Host`,
  md.user `User`,
  md.db `Database`,
  REPLACE[RTRIM[CONCAT[
  IF[md.Select_priv = 'Y', 'Select ', ''],
  IF[md.Insert_priv = 'Y', 'Insert ', ''],
  IF[md.Update_priv = 'Y', 'Update ', ''],
  IF[md.Delete_priv = 'Y', 'Delete ', ''],
  IF[md.Create_priv = 'Y', 'Create ', ''],
  IF[md.Drop_priv = 'Y', 'Drop ', ''],
  IF[md.Grant_priv = 'Y', 'Grant ', ''],
  IF[md.References_priv = 'Y', 'References ', ''],
  IF[md.Index_priv = 'Y', 'Index ', ''],
  IF[md.Alter_priv = 'Y', 'Alter ', ''],
  IF[md.Create_tmp_table_priv = 'Y', 'Create_tmp_table ', ''],
  IF[md.Lock_tables_priv = 'Y', 'Lock_tables ', ''],
  IF[md.Create_view_priv = 'Y', 'Create_view ', ''],
  IF[md.Show_view_priv = 'Y', 'Show_view ', ''],
  IF[md.Create_routine_priv = 'Y', 'Create_routine ', ''],
  IF[md.Alter_routine_priv = 'Y', 'Alter_routine ', ''],
  IF[md.Execute_priv = 'Y', 'Execute ', ''],
  IF[md.Event_priv = 'Y', 'Event ', ''],
  IF[md.Trigger_priv = 'Y', 'Trigger ', '']
  ]], ' ', ', '] AS `Privileges`
 FROM
  mysql.db md
 ORDER BY
  md.Host,
  md.User,
  md.Db
  • danh sách các đặc quyền cho các bảng
 SELECT 
  mt.host `Host`,
  mt.user `User`,
  CONCAT[mt.Db, '.', mt.Table_name] `Tables`,
  REPLACE[mt.Table_priv, ',', ', '] AS `Privileges`
 FROM
  mysql.tables_priv mt
 WHERE
  mt.Table_name IN
  [SELECT
  DISTINCT
    t.table_name `tables`
  FROM
    information_schema.tables AS t
  WHERE
    t.table_type IN
    ['BASE TABLE', 'SYSTEM VIEW', 'TEMPORARY', ''] OR
    t.table_type  'VIEW' AND
    t.create_options IS NOT NULL
  ]
 ORDER BY
  mt.Host,
  mt.User,
  mt.Db,
  mt.Table_name;
  • danh sách các đặc quyền cho chế độ xem
 SELECT 
  mv.host `Host`,
  mv.user `User`,
  CONCAT[mv.Db, '.', mv.Table_name] `Views`,
  REPLACE[mv.Table_priv, ',', ', '] AS `Privileges`
 FROM
  mysql.tables_priv mv
 WHERE
  mv.Table_name IN
  [SELECT
  DISTINCT
    v.table_name `views`
  FROM
    information_schema.views AS v
  ]
 ORDER BY
  mv.Host,
  mv.User,
  mv.Db,
  mv.Table_name;
  • danh sách các đặc quyền cho các cột trong bảng
SELECT 
  mtc.host `Host`,
  mtc.user `User`,
  CONCAT[mtc.Db, '.', mtc.Table_name, '.', mtc.Column_name] `Tables Columns`,
  REPLACE[mtc.Column_priv, ',', ', '] AS `Privileges`
FROM
  mysql.columns_priv mtc
WHERE
  mtc.Table_name IN
  [SELECT
  DISTINCT
    t.table_name `tables`
  FROM
    information_schema.tables AS t
  WHERE
    t.table_type IN
    ['BASE TABLE', 'SYSTEM VIEW', 'TEMPORARY', ''] OR
    t.table_type  'VIEW' AND
    t.create_options IS NOT NULL
  ]
ORDER BY
  mtc.Host,
  mtc.User,
  mtc.Db,
  mtc.Table_name,
  mtc.Column_name;
  • danh sách các đặc quyền để xem các cột
 SELECT
  mvc.host `Host`,
  mvc.user `User`,
  CONCAT[mvc.Db, '.', mvc.Table_name, '.', mvc.Column_name] `Views Columns`,
  REPLACE[mvc.Column_priv, ',', ', '] AS `Privileges`
 FROM
  mysql.columns_priv mvc
 WHERE
  mvc.Table_name IN
  [SELECT
  DISTINCT
    v.table_name `views`
  FROM
    information_schema.views AS v
  ]
 ORDER BY
  mvc.Host,
  mvc.User,
  mvc.Db,
  mvc.Table_name,
  mvc.Column_name;
  • danh sách các đặc quyền cho các thủ tục
 SELECT
  mp.host `Host`,
  mp.user `User`,
  CONCAT[mp.Db, '.', mp.Routine_name] `Procedures`,
  REPLACE[mp.Proc_priv, ',', ', '] AS `Privileges`
 FROM
  mysql.procs_priv mp
 WHERE
  mp.Routine_type = 'PROCEDURE'
 ORDER BY
  mp.Host,
  mp.User,
  mp.Db,
  mp.Routine_name;
  • danh sách các đặc quyền cho các chức năng
 SELECT
  mf.host `Host`,
  mf.user `User`,
  CONCAT[mf.Db, '.', mf.Routine_name] `Procedures`,
  REPLACE[mf.Proc_priv, ',', ', '] AS `Privileges`
 FROM
  mysql.procs_priv mf
 WHERE
  mf.Routine_type = 'FUNCTION'
 ORDER BY
  mf.Host,
  mf.User,
  mf.Db,
  mf.Routine_name;

Bạn có thể cần tạo một báo cáo có thể in được với dữ liệu này và cung cấp báo cáo đó dưới dạng báo cáo, chẳng hạn như theo yêu cầu của khách hàng hoặc cơ quan có thẩm quyền. Với mục đích này, bạn có thể sử dụng công cụ MySQL GUI đặc biệt bao gồm trình thiết kế báo cáo dữ liệu

Nếu bạn đã sẵn sàng truy vấn, bạn có thể tận dụng lợi thế của trình hướng dẫn dễ sử dụng và tạo báo cáo bằng cách sử dụng mẫu được xác định trước và dữ liệu được nhóm, chẳng hạn như theo máy chủ, trong vài phút

Menu Báo cáo dữ liệu mới

Trình hướng dẫn báo cáo dữ liệu

Truy vấn tùy chỉnh báo cáo dữ liệu

Truy vấn tải báo cáo dữ liệu

Nhóm báo cáo dữ liệu theo máy chủ

Tiêu đề báo cáo dữ liệu

Xem trước báo cáo dữ liệu

Như bạn có thể thấy trên các ảnh chụp màn hình này, chúng tôi đã tạo một báo cáo bằng trình hướng dẫn của dbForge Studio mà không cần thiết kế báo cáo một cách tẻ nhạt

Phần kết luận

Trong bài viết, chúng tôi đã mô tả bằng các tập lệnh cụ thể cách lấy danh sách các đặc quyền của người dùng liên quan đến truy cập dữ liệu

Làm cách nào để kiểm tra tất cả các đặc 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 ' ; .

Làm cách nào tôi có thể thấy vai trò của người dùng trong MySQL?

TỔNG CẤP HIỂN THỊ MySQL .
Đầu tiên, chỉ định tên của tài khoản người dùng hoặc vai trò mà bạn muốn hiển thị các đặc quyền đã được cấp trước đó cho tài khoản hoặc vai trò người dùng sau từ khóa FOR. .
Thứ hai, sử dụng mệnh đề USING để kiểm tra các đặc quyền liên quan đến vai trò của người dùng

Làm cách nào tôi có thể xem tất cả MySQL DBS?

HIỂN THỊ CƠ SỞ DỮ LIỆU liệt kê các cơ sở dữ liệu trên máy chủ MySQL. SHOW SCHEMAS là một từ đồng nghĩa với SHOW DATABASES. Mệnh đề LIKE, nếu có, cho biết tên cơ sở dữ liệu nào phù hợp. Mệnh đề WHERE có thể được cung cấp để chọn các hàng sử dụng các điều kiện tổng quát hơn, như đã thảo luận trong Phần 26. 8, “Mở rộng cho câu lệnh SHOW”.

Chủ Đề