Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cấp đặc quyền trên một số bảng có tiền tố cụ thể

Lưu ý trước:Đây không phải là câu trả lời của tôi. Tôi tìm thấy nó tại http://lists.mysql.com/mysql/202610 và đã sao chép và dán để ghi nhận đơn giản cho Stephen Cook

Bạn có thể sử dụng chế độ xem INFORMATION_SCHEMA.TABLES để tạo GRANTstatements cho bạn. Viết một truy vấn dọc theo những dòng sau:

SELECT   CONCAT('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')
FROM     INFORMATION_SCHEMA.TABLES
WHERE    TABLE_SCHEMA = 'test'
      AND TABLE_NAME LIKE 'foo_%'

Sau đó, chạy nó, sao chép kết quả và chạy những kết quả đó dưới dạng một đoạn mã truy vấn. Tất nhiên, bạn có thể trở nên điên cuồng như bạn muốn với điều này, ví dụ:nếu bạn làm điều này cho nhiều người dùng, có thể viết một thủ tục được lưu trữ lấy tham số cho tên người dùng và do đó có thể được sử dụng như atool bất cứ khi nào bạn cần.

Đây không phải là cú pháp mà bạn yêu cầu, nhưng đó là một thủ thuật hay và hiệu quả.

-

Thay thế 'kiểm tra' lược đồ bảng bằng tên cơ sở dữ liệu của bạn. foo_% có thể được thay thế bằng tiền tố Appropraite_%

Tôi đã thử điều này một mình và nó hoạt động tốt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xóa bảng khỏi mysqldump

  2. Ví dụ về DATE_SUB () - MySQL

  3. Làm thế nào để lặp lại đúng cách trong một hàm được lưu trữ trên MySQL?

  4. Truy vấn MySQL cho phạm vi ngày nhất định

  5. PHP MySQL chèn truy vấn xây dựng mảng liên kết đa chiều từ các khóa mảng