Mysql veritabanı-global, veritabanı katmanı, yüzey katmanı, sütun katmanı ve alt program katmanının beş katmanlı izinlerini ayrıntılı olarak açıklayın

Genel Bakış

MySQL'de, bir kullanıcıya hangi izinlerin verildiği nasıl kontrol edilir? Kullanıcılara verilen izinler, genel düzey izinleri, veritabanı düzeyi izinleri, yüzey düzeyi izinleri, sütun düzeyi izinleri ve alt yordam düzeyi izinleri olarak bölünebilir. Göstermek için deneyleri kullanalım:

İzinlerin özel sınıflandırması

1. Küresel düzey

Global izinler, belirli bir sunucudaki tüm veritabanları için geçerlidir. Bu izinler mysql.user tablosunda saklanır. TÜMÜNÜ AÇIK *. * VER ve TÜMÜNÜ AÇIK *. * Sadece genel izinleri verir ve iptal eder.

2. Veritabanı düzeyi

Veritabanı izinleri, belirli bir veritabanındaki tüm hedefler için geçerlidir. Bu izinler mysql.db ve mysql.host tablolarında saklanır. Db_name. * ÜZERİNDEKİ TÜMÜNÜ VERİN ve db_name ÜZERİNDEKİ TÜMÜNÜ KALDIRIN. * Yalnızca veritabanı izinlerini verin ve iptal edin.

3. Yüzey seviyesi

Tablo izinleri, belirli bir tablodaki tüm sütunlara uygulanır. Bu izinler mysql.tables_priv tablosunda saklanır. Db_name.tbl_name ÜZERİNDE TÜMÜNÜ VERİN ve TÜMÜNÜ TÜMÜNÜ KALDIRIN db_name.tbl_name yalnızca tablo izinlerini verir ve iptal eder.

4. Sütun seviyesi

Sütun izinleri, belirli bir tablodaki tek bir sütun için geçerlidir. Bu izinler mysql.columns_priv tablosunda saklanır. REVOKE kullanırken, yetkili sütun ile aynı sütunu belirtmelisiniz.

5. Alt rutin seviyesi

RUTİN OLUŞTURMA, RUTİN DEĞİŞTİRME, YÜRÜT ve GRANT izinleri, depolanan alt rutinler için geçerlidir. Bu izinler genel düzey ve veritabanı düzeyine verilebilir. Ayrıca, CREATE ROUTINE'e ek olarak, bu izinler bir alt rutin seviyesi olarak verilebilir ve mysql.procs_priv tablosunda saklanabilir.

1. Global seviye testi

Bir test hesabı testi oluşturun ve genel düzeyde izinler verin. Aşağıdaki gibi:

mysql > global validate_password_policy = 0 olarak ayarlayın; mysql > seçim verin, test tarafından tanımlanan @ '%' test etmek için *. * ekleyin; mysql > floş ayrıcalıkları;

Test etmek için verilen izinleri sorgulamak için aşağıdaki iki yolu kullanın. Aşağıdaki gibi:

mysql > test için hibeleri gösterin; mysql > mysql.user'dan * seçin, burada user = 'test' \ G;

2. Veritabanı seviyesi testi

Bir test hesabı testi oluşturun ve veritabanı düzeyinde izinler verin. Aşağıdaki gibi:

mysql > bırak kullanıcı testi; mysql > jpcpdb'de seçme, ekleme, güncelleme, silme izni verin. * '%' test @ 123 'ile tanımlanan @'% '; mysql > mysql.user'den * seçin, burada user = 'test' \ G; - Yetki olmadığını görebilirsiniz. mysql > test için hibeleri gösterin; mysql > mysql.db'den * seçin, burada user = 'test' \ G;

3. Yüzey seviyesi testi

Bir test hesabı testi oluşturun ve tablo düzeyinde izinler verin. Aşağıdaki gibi:

mysql > bırak kullanıcı testi; mysql > floş ayrıcalıkları; mysql > jpcpdb.user üzerinde ,'test @ 123 'tarafından tanımlanan @'% 'testine ver; mysql > test için hibeleri gösterin; mysql > mysql.tables_priv \ G'den * seçin;

4. Sütun seviyesi testi

Bir test hesabı testi oluşturun ve sütun düzeyinde izinler verin. Aşağıdaki gibi:

mysql > bırak kullanıcı testi; mysql > floş ayrıcalıkları; mysql > jpcpdb.user üzerinde'test @ 123 'ile tanımlanan @'% 'test etmek için select (id, ad) verin; mysql > floş ayrıcalıkları; mysql > mysql.columns_priv'den * seçin; mysql > test için hibeleri gösterin;

5. Alt rutin seviye testi

Alt rutin düzeyinde izinler vermek için bir test hesabı testi oluşturun. Aşağıdaki gibi:

mysql > PRC_TEST VARSA BIRAKMA PROSEDÜRÜ; mysql > DELIMITER // mysql > PROSEDÜR OLUŞTURMA PRC_TEST () - > BAŞLA - > Kullanıcıdan * SEÇ; - > SON // mysql > DELIMITER; mysql > '%' test @ 123 'ile tanımlanan'% 'test etmek için jpcpdb.PRC_TEST prosedüründe yürütme izni verin; mysql > floş ayrıcalıkları; mysql > test için hibeleri gösterin; mysql > mysql.procs_priv'den * seçin; burada Kullanıcı = 'test';

sonuç olarak

Kullanıcıya verilen izinleri görüntülemeniz gerekiyorsa, bu beş düzeyden verilen izinleri görüntülemeniz gerekir. Yukarıdan aşağıya veya küçükten yukarıya, her seviyeye verilen izinleri tek tek kontrol edin.

Daha fazla devop ve DBA içeriği daha sonra paylaşılacak ve ilgilenen arkadaşlar buna dikkat edebilir ~

Wong Lo Katın "Yağsız Sütlü Çay" lansmanının arkasındaki sebep nedir?
önceki
Devlerin imrendiği batan pazar, Pinduoduo'nun bariz avantajları var! Kırsal kullanıcılar: çok uygun
Sonraki
Açık kaynaklı bir yeniden görselleştirme aracı önerin - Redis Desktop Manager
Didi hala oturamıyor mu? Birkaç milyar kan kaybından sonra, Tencent kişisel olarak sona erdi
İnatçı bir hastalığı hatırlayın: Checksum yardımcı programı'shasum 'çözüm bulunamadı
Huawei, AI yerel veritabanı GaussDB ve dağıtılmış depolama FusionStorage 8.0'ı yayınladı
Süper Pratik Büyük Ölçekli Dağıtılmış Bir Sistem olan Nokta Tespit Teknolojisine Giriş
Japon gangsterlerinin düzgün davranmamasını sağlayan sütlü çayın büyüsü nedir?
Mysql silinin, sorunu azaltmadan kayıt veritabanı alanını silmesi sorununun üç çözümünü açıklayın
Luo Yonghao: On yıllık idealizm, ısrarcı mı yoksa ısrarcı mı?
1,5 milyar yıllık gelir! Bu ulusal mobil oyunu hiç oynamadığına inanmıyorum
19 yaşındayken okulu bıraktı ve tuğlaları taşıdı 28 yılda 30.000 ila 70 milyar yapacaktı, Liu Qiangdong bile onunla iş yapmak için acele etti.
Cumartesi avantajları! Linux işletim ve bakımının yolu
Baidu'yu kontrol edin, çevrimiçi seyahate veda edin?
To Top