Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   MySql Rechteproblem (https://www.delphipraxis.net/183796-mysql-rechteproblem.html)

Nersgatt 5. Feb 2015 10:46

Datenbank: MySql • Version: 5.6 • Zugriff über: Workbench

MySql Rechteproblem
 
Moin!

Ich habe ein Problem mit MySql, bei dem ich nicht weiter komme.

Ausgangslage:
Ich habe ein Tabelle, die einen AFTER_INSERT-Trigger hat. In diesem Trigger wird eine PROCEDURE aufgerufen, die einen Logeintrag in eine andere Tabelle macht.
Also ist der Ablauf so: insert into tabelle -> AFTER_INSERT-Trigger -> procedure -> insert into logtabelle
Das funktioniert auch wie gewünscht problemlos.

Nun habe ich eine weitere FUNCTION, die einen Eintrag in der tabelle macht. Hier bekomme ich jedoch folgende Fehlermeldung:
Error Code: 1146. Table 'datenbank.logtabelle' doesn't exist 0.000 sec

Ich vermute, hier sind Rechte das Problem.
Die Function ist angelegt mit dem DEFINER root:
Code:
CREATE DEFINER=`root`@`localhost` FUNCTION...
Und Root ist nicht irgendwie in den Rechten beschränkt. Er hat überall Vollzugriff. Daher kann ich mir das Verhalten so gar nicht erklären.
Was mich so wundert ist, dass ein direkter INSERT in die tabelle (was wiederum den Trigger auslöst) in einem SQL-Fenster der Workbench funktioniert. Wenn ich aber in dem selben Sql-Fenster die Function aufrufe, dann bekommen oben genannten Fehler.

Wer kann mir helfen? :wiejetzt:

jobo 5. Feb 2015 10:59

AW: MySql Rechteproblem
 
wie ist das denn bei mysql mit schema Notation?
Ich hab nur im Kopf, dass es dort etwas "mager" ist. Gibt es trotzdem Schemata?
Dann müsste vielleicht die gezielte Ansprache mit meinappowneruser.Funktionsnamen klappen? Halt jenachdem, wo bzw. von wem sie angelegt wurde.

Wenn DEFINER=`root`@`localhost` etwas ist, um owner oder definer context für den Objekt Zugriff festzulegen, dann wäre die Frage, ob das wirklich sein muss oder bereits eine Krücke um Dein Problem zu lösen. Ansonsten einfach noch mal ein Grant an root oder root@localhost auf die Tabelle oder per Dictionary prüfen, ob root da formal dran darf.

BadenPower 5. Feb 2015 13:46

AW: MySql Rechteproblem
 
Zitat:

Zitat von Nersgatt (Beitrag 1288862)
Ich vermute, hier sind Rechte das Problem.
Die Function ist angelegt mit dem DEFINER root:
Code:
CREATE DEFINER=`root`@`localhost` FUNCTION...

Probiere einmal den DEFINER nicht als 'localhost' zu setzen, sondern allgemein:

Code:
CREATE DEFINER=`root`@`%` FUNCTION


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz