Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

habe verschiedene user für meine mysql Datenbank eingerichtet.

kann auf die Datenbank zugreifen, Tabellen erstellen....

Aber wenn ich einen select mit php auf eine Tabelle zugreifen möchte kommt folgende Fehlermeldung:

Access denied for user: 'ODBC@localhost' (Using password: NO)

Wieso kann ich auf die Datenbankzugreifen, aber nicht ein Select auf die tabelle auslösen?? Ich habe alle Rechte. Aber Nix funktioniert. Wo könnte der fehler liegen??

Danke!!

ja ist der gleiche user....

Wieso kann ich auf die Datenbankzugreifen, aber nicht ein Select auf die tabelle auslösen??
*lol* Na gar nicht!

Wie willst du Daten aus einer Tabelle auslesen ohne einen Select abzusetzen? Ne ne, du musst schon die Ursache deines Problemes lösen und nicht versuchen hintenrum einen Ausweg zu finden (den es in diesem Fall nicht gibt).

Es ist bei dir ganz einfach: Dein Benutzer ODBC darf nicht auf die Datenbank zugreifen (und das scheinbar schon beim Connect nicht). Also stelle sicher, dass

a) Benutzername und Passwort korrekt sind

B) Der Benutzer von der IP, von der er zugreift, auch tatsächlich zugreifen darf. (Im Zweifel erstmal den User für alle IPs freischalten und wenn das funktioniert checken, von welchen IPs er tatsächlich zugreifen muss).

aber auf die datenbank darf ich ja zugreifen.....

das klappt ja komischerweise. nur wenn ich dann von der ausgewählten datenbank auf die tabelle zugreifen will geht nichts mehr.... dann kommt diese fehlermeldung.

Dann guck Dir mal mit dem Root-Benutzer die Datenbank mysql an, speziell die Tabelle db, user, host und tables_priv an. Vielleicht ist's ja doch ein Rechteproblem, und aus irgendeinem Grund ist das SELECT-Priv nicht gegeben für den Benutzer, die Datenbank oder den Host...

meine host tabele by mysql ist leer....die db hat einträge und auch die user tabelle hat einträge...liegt der fehler eventuell dort??

+-----------+----------+------------------+-------------+

| Host | User | Password | Select_priv |

+-----------+----------+------------------+-------------+

| localhost | root | 343434344343434 | Y |

| localhost | rudy | 4343dd343434 | Y |

+-----------+----------+------------------+-------------+

das ist die user tabelle von mysql

nun flogt die db-tabelle

+-----------+---------+----------+-------------+

| Host | Db | User | Select_priv |

+-----------+---------+----------+-------------+

| % | test | | Y |

| % | test\_% | | Y |

| localhost | orgsys | rudy | Y |

| localhost | mysql | rudy | N |

+-----------+---------+----------+-------------+

und die host tabelle bei mysql ist leer

Ehm...dann würde ich mal die ODBC-Konfiguration prüfen, und da den Benutzer und das Passwort angeben, mit dem Du eine ODBC-Verbindung herstellen willst. (Syssteuerung, Verwaltung, Datenquellen, Benutzer-DSN, MySQL, Konfigurieren, ... oder so ähnlich...)

Denn den Benutzer ODBC gibt's in Deiner user-Table nicht...

Nur rein interessehalber: Warum greifst Du eigentlich per ODBC drauf zu?

$dbconn = @mysql_connect($hostname,$verzeichnis,$password);

if (!$dbconn){

echo("<p>Verbindung zum Datenbankserver zur Zeit nicht möglich.</p>");

echo("<br><br>".mysql_error());

exit();

}

so greife ich darauf zu...

wie sollte ich das anders machen?? oder was gebe es noch für eine möglichkeit??

$dbconn = @mysql_connect($hostname,$verzeichnis,$password);

resource mysql_connect ( [string Server [, string Benutzername [, string Benutzerkennwort [, bool neue_Verbindung [, int client_flags]]]]] )

Ich gehe mal davon aus, dass in $verzeichnis "ODBC" drin steht, aber eigentlich der Benutzername stehen sollte...kann das?

ne da muss ich dich enttäuschen...

als benutzername steht nicht odbc drin....verwende den angelegten user....

Poste mal was mehr von Deinem PHP-Script...

Nach einem kleinen Test unter Windows, habe ich gerade herausgefunden, dass der User ODBC genommen wird, wenn kein User bei der Verbindung angegeben wird...

also ich arbeite auf einem windows xp rechner....

mysql version 4.0.24-debug via TCP/IP

PHP 5.0

ne da muss ich dich enttäuschen...

als benutzername steht nicht odbc drin....verwende den angelegten user....

Der kommt aber bei MySQL nicht an - sieh dir einfach mal die Fehlermeldung an, die du bekommst - daraus geht eindeutig hervor, wo das Problem liegt. Da versucht ein User ODBC einen Connect und dieser wird verweigert.

Also weniger raten und mehr auf die Fakten gucken.

*lol* Na gar nicht!

Wie willst du Daten aus einer Tabelle auslesen ohne einen Select abzusetzen? Ne ne, du musst schon die Ursache deines Problemes lösen und nicht versuchen hintenrum einen Ausweg zu finden (den es in diesem Fall nicht gibt).

In dem man Toad verwendet und sich die Daten im Schema Browser anschaut, oder die Daten nach Access importiert, oder oder oder... :D

In dem man Toad verwendet und sich die Daten im Schema Browser anschaut, oder die Daten nach Access importiert, oder oder oder... :D

Das stimmt meiner Meinung nach nicht ganz, denn selbst Toad wird zur Anzeige der Daten, wie auch Access beim Import über ODBC z.B. SQL-Queries absetzen...oder irre ich? Aber jetzt weicht's allmählich vom OPost ab...also back to the roots...

nur mal aus Neugier, auch wenn ich aus dem Text bisher nicht ganz schlau werde:

Du kannst auf die DB zugreifen, nicht aber auf eine Datentabelle?

Evtl. hast du keine Rechte auf die Tabelle vergeben?

Das heißt, der User geht gegen die DB, hat aber kein Recht auf darunter angelegte Tabellen... (Grant)

@Aquano: hier muss ich Monty82 zustimmen; Toad generiert einfach die benötigten SQLs, und das tun alle derartigen Werkzeuge. Das siehst du zB wenn du Toad-Ergebisse aus Abfragen speicherst und einfach das SQL-Statement mit abspeichern lässt ;)

In dem man Toad verwendet und sich die Daten im Schema Browser anschaut, oder die Daten nach Access importiert, oder oder oder... :D
Na du bist mir ein Spezialist :) Monty hat's ja schon vermutet, ich darf das hier mal bestätigen: Toad (oder jeder andere Datenbankclient) macht nichts anderes, als SQL-Statements abzusetzen und deren Output entsprechend zu formatieren/umzuwandeln, dass es für den User besser und übersichtlicher aussieht, als die Werte, die aus der Datenbank kommen.

Welchen Weg sollte es auch sonst geben? Irgendwelche Hintertürchen würden jegliches Sicherheitskonzept aushebeln, und man könnte direkt die ganze Benutzerverwaltung vergessen.

Na du bist mir ein Spezialist :) Monty hat's ja schon vermutet, ich darf das hier mal bestätigen: Toad (oder jeder andere Datenbankclient) macht nichts anderes, als SQL-Statements abzusetzen und deren Output entsprechend zu formatieren/umzuwandeln, dass es für den User besser und übersichtlicher aussieht, als die Werte, die aus der Datenbank kommen.

Welchen Weg sollte es auch sonst geben? Irgendwelche Hintertürchen würden jegliches Sicherheitskonzept aushebeln, und man könnte direkt die ganze Benutzerverwaltung vergessen.

Ihr habt den Witz noch nicht ganz verstanden, denkt nochmal drüber nach :D

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.