Rumah  >  Soal Jawab  >  teks badan

Adakah mungkin untuk memberikan kebenaran metadata secara eksklusif dalam MySQL?

TLDR;

Matlamat:

Adakah mungkin untuk memberikan akses pengguna "audit" kepada metadata MySQL sahaja (sekurang-kurangnya skema, jadual, lajur) dan bukan data tepat dalam jadual?

Versi

MySQL 8+

Cuba:

Sebelum soalan ini,

Saya telah mencuba atau tahu:

Latar belakang:

Syarikat saya mengarahkan devops untuk mengumpul metadata MySQL untuk pengauditan atau pemantauan keselamatan atau isu lain (saya tidak tahu butiran keseluruhan cerita). Kepimpinan saya menjangkakan bahawa pelanggaran data yang tidak perlu tidak akan berlaku. BTW, saya tidak tahu kaedah khusus yang mereka (mungkin jabatan audit) akan mengumpul metadata. Apa yang saya perlu lakukan ialah mencipta pengguna yang dibenarkan untuk mereka.

P粉715274052P粉715274052211 hari yang lalu370

membalas semua(1)saya akan balas

  • P粉739706089

    P粉7397060892024-03-22 18:38:15

    Saya rasa saya telah menemui penyelesaian untuk masalah ini, tetapi ia hanyalah satu penggodaman dan bukan penyelesaian sebenar.

    https://dev.mysql.com/doc /refman/8.0/en/show-tables.html berkata:

    Iaitu, anda tidak boleh menggunakan SHOW TABLES atau melihat jadual dalam pertanyaan terhadap INFORMATION_SCHEMA (memandangkan SHOW TABLES sebenarnya hanya pertanyaan terhadap paparan sistem ini).

    Tetapi bahasa "tiada keistimewaan" membuatkan saya berfikir. Adakah terdapat kebenaran yang boleh dimiliki pengguna tetapi tidak dibenarkan membaca atau menulis data?

    https://dev.mysql.com/doc/refman /8.0/en/grant.html berkata:

    SHOW VIEWMacam mana? Ini hanya membenarkan melihat metadata, bukan menanyakan jadual atau paparan.

    Jadi saya mencubanya:

    mysql> create user 'auditor'@'%';
    mysql> grant show view on test.* to 'auditor'@'%';

    Kemudian saya log masuk sebagai pengguna itu dan mencuba:

    mysql> show grants;
    +----------------------------------------------+
    | Grants for auditor@%                         |
    +----------------------------------------------+
    | GRANT USAGE ON *.* TO `auditor`@`%`          |
    | GRANT SHOW VIEW ON `test`.* TO `auditor`@`%` |
    +----------------------------------------------+
    
    mysql> use test
    
    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | Accounts       |
    | Bugs           |
    | BugsProducts   |
    | BugStatus      |
    ...

    Saya juga boleh melihat lajur dsb.

    Untuk lebih jelas, ini adalah jadual khusus, bukan paparan. Tetapi memandangkan pengguna juruaudit saya tidak mempunyai sebarang kebenaran pada jadual (walaupun keizinan yang tidak berkaitan), ia berfungsi untuk membolehkan mereka melihat metadata tentang jadual.

    Dalam MySQL 8.0.20, mereka menambahkan SHOW ROUTINES 权限。在此之前,您需要 SELECT kebenaran untuk melihat badan prosedur atau fungsi yang disimpan. Tetapi anda tidak menyebut rutin melihat juruaudit dalam soalan anda.

    balas
    0
  • Batalbalas