sql >> Database >  >> Database Tools >> phpMyAdmin

Maak een weergave zonder SUPER-rechten in phpMyAdmin

Uit de documentatie:

Als u de DEFINER-clausule opgeeft, kunt u de waarde niet op een andere gebruiker instellen dan op uw eigen, tenzij u het SUPER-privilege hebt. Deze regels bepalen de wettelijke DEFINER-gebruikerswaarden:

  • *Als u niet over het SUPER-privilege beschikt, is de enige legale gebruikerswaarde uw eigen account, ofwel letterlijk gespecificeerd of door CURRENT_USER te gebruiken. U kunt de definitie niet op een ander account instellen.*
  • Als je het SUPER-privilege hebt, kun je elke syntactisch legale accountnaam opgeven. Als het account niet echt bestaat, wordt er een waarschuwing gegenereerd.

Controleer uw MySQL-account, het is niet byname @localhost .

Oplossingen:

  • Maak een nieuwe weergave met DEFINER-clausule met behulp van een account dat is toegekend met SUPER-privilege.
  • Gebruik geen DEFINER-clausule in CREATE VIEW, in dit geval zal MySQL de view DEFINER =CURRENT_USER creëren.



  1. Foutopsporing in SQL Management Studio 2012

  2. Sommige PostgreSQL-databases zijn niet zichtbaar via clients zoals Navicat of pgAdmin

  3. 1044 - Toegang geweigerd voor gebruiker 'user'@'localhost' tot database 'db'

  4. MySQL Workbench en phpMyadmin