Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Berikan hak istimewa pada beberapa tabel dengan awalan tertentu

Catatan Awal:Ini bukan jawaban saya. Saya menemukannya di http://lists.mysql.com/mysql/202610 dan telah menyalin dan menempel untuk kredit kesederhanaan kepada Stephen Cook

Anda dapat menggunakan tampilan INFORMATION_SCHEMA.TABLES untuk menghasilkan pernyataan GRANT untuk Anda. Tulis kueri di sepanjang baris ini:

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

Kemudian jalankan, salin hasilnya, dan jalankan hasil tersebut sebagai kueri atau skrip. Anda tentu saja bisa menjadi gila seperti yang Anda inginkan dengan ini, misalnya jika Anda melakukan ini untuk banyak pengguna mungkin menulis prosedur tersimpan yang mengambil parameter untuk nama pengguna dan karena itu dapat digunakan sebagai alat kapan pun Anda membutuhkannya.

Ini bukan sintaks yang Anda minta, tetapi ini adalah trik bagus yang berhasil.

--

Ganti skema tabel 'test' dengan nama database Anda. foo_% dapat diganti dengan awalan yang sesuai_%

Saya mencobanya sendiri dan berhasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sisipan bersyarat mysql - jika tidak ada sisipkan

  2. MySQL:Berapa banyak kueri per halaman yang terlalu banyak?

  3. Apakah Diucapkan "S-Q-L" atau "Sekuel"?

  4. Memasukkan record ke dalam tabel MySQL menggunakan Java

  5. MySQL menghapus catatan duplikat tetapi tetap terbaru