Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL Script ausführen auf einem PC ohne MYSQL Administrator

Frage Entwicklung Datenbanken

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

30.07.2008, aktualisiert 18.08.2008, 9352 Aufrufe, 10 Kommentare

Habe gerade erst mit SQL angefangen und habe da eine allgemeine Frage

Hallo Forum,

mein erstes Problem habe ich mit Eurer Hilfe schon gelöst. Jetzt noch ein weiteres Szenario:

In meiner Firma habe ich den MYSQL Administrator für den Zugriff auf die Datenbanken laufen. Ein mobiler User mit Notebook soll jetzt Daten von der Datenbank auslesen können, ohne sich vorher in die Datenbank einwählen zu müssen. Ich möchte nicht, daß er mit dem MYSQL Administrator eventuell irgendetwas verändert.

Das Script, das ausgeführt werden soll lautet:

SELECT * FROM `mzlife` where `werte` like '%blog=1201%';

wobei er den Tabellennamen und den LIKE -Wert wählen muß. Er darf nichts zurückschreiben, sondern zu Kontrollzwecken die Daten nur lesen können.
Vielleicht eignet sich Excel dazu, oder ein HTML Code. Die Zugangsdaten, um an die Datenbank zu kommen, darf er ebenfalls nicht sehen.

Ich habe keinerlei Erfahrung mit php oder vba. Ich beherrsche nur HTML.

Frage: ist so ein Szenario überhaupt möglich, was muß auf dem Notebook ggfls. installiert werden, um es eventuell möglich zu machen und wenn es geht, gibt es für sowas Scriptbeispiele?

Vielen Dank für jede Anregung

Schöne Grüße
Christof
Mitglied: kugelschreiber
30.07.2008 um 16:35 Uhr
Hi.

Besorg/Installier Dir einen Webserver, welcher Deine Datenbank ansteuern kann, wenn dies nicht bereits geschehen ist.
Dann erstellst Du im Dokumentroot (meist heißt der "htdocs") eine Datei namens "auslesen.php" und kopierst Dir folgenden Code dort rein! Und passt die Verbindungsdaten an!

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"
02.
<html> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
05.
<title>Datenbank auslesen</title> 
06.
</head> 
07.
 
08.
<body> 
09.
<? 
10.
//Verbindungsdaten 
11.
$host = "hostname"
12.
$db_name = "db_name"
13.
$user = "user"
14.
$password = "password"
15.
//Verbindung herstellen 
16.
$cldb = mysql_connect($host, $user, $password); // or die(mysql_error()); 
17.
 
18.
//Abfrage 
19.
$SQLString = "SELECT * FROM  mzlife WHERE werte LIKE '%blog=1201%'"
20.
$abfrage = mysql_db_query($db_name,$SQLString); // or die(mysql_error()); 
21.
?> 
22.
<table> 
23.
<? 
24.
//Zeilenweise Ausgabe 
25.
while($array = mysql_fetch_array($abfrage)){ 
26.
?> 
27.
	<tr> 
28.
		<td><?= $array[spaltenname1]; ?></td> 
29.
		<td><?= $array[spaltenname2]; ?></td> 
30.
		<td><?= $array[spaltenname3]; ?></td> 
31.
		<td><?= $array[spaltenname4]; ?></td> 
32.
		<? 
33.
		/* 
34.
		. usw. 
35.
		. usw. 
36.
		. usw. 
37.
		*/	 
38.
		?> 
39.
	</tr> 
40.
<? 
41.
} // ENDE while($array = mysql_fetch_array($abfrage)){ 
42.
?> 
43.
</table> 
44.
</body> 
45.
</html>
Die User können dann per Browser http://rechnername/auslesen.php

Auf die Daten zugreifen, sehen aber weder Passwort noch PHP/MySql Code, sondern nur reines HTML

Gruß Kuli
Bitte warten ..
Mitglied: gechger
31.07.2008 um 08:16 Uhr
Hi Kuli,

das ist ja cool. Sieht echt einfach aus. Da setz ich mich gleich mal ran und probier das aus.

Daaaanke

Schöne Grüße
Christof
Bitte warten ..
Mitglied: gechger
31.07.2008 um 13:06 Uhr
Hallo Kuli,

hab das mal getestet und es funktioniert. Hab den XAMPP installiert und das Script ausgeführt. Es liefert mir die gewünschte Information.

Da für einen praxisgerechten Einsatz noch einiges zu tun ist, habe ich noch eine Frage zum Verständnis.
Die Zeilen 11 - 14 sind doch Variablen, oder? Die kann man doch sicher füllen, z. Bsp. aus einer Eingabemaske heraus.

Zum besseren Verständnis, was ich eigentlich erreichen will:
Unsere Firma baut in Kundendienst- und Monteursfahrzeugen ein Zeiterfassungssystem ein, und das bundesweit. Die meisten schicken die Daten von den Fahrzeugen via GPRS in unsere MYSQL Datenbanken. Wenn wir Autos neu ausrüsten, muß die Funktionalität getestet werden, also ruft mich der Monteur von unterwegs an, ich schaue in die Datenbank, und prüfe nach, ob alles benötigten Daten vorhanden sind. Nun bin ich aber nicht immer da. Ich möchte also, daß der Monteur selbst prüfen kann, ob alles in Ordnung ist. Er soll aber nicht selbst in die Datenbank schauen können.

Mein Ziel ist es, auf dem Notebook des Monteurs eine Eingabemaske zur Verfügung zu stellen, in der er den Kundennamen eingibt, die eindeutige ID-Nummer des eingebauten Gerätes (bLOG=$Variable) und ggfls. auch noch das auszugebende Datum. Hinter dem Kundennamen sollen versteckt die entsprechenden Zugangsdaten liegen, die automatisch im Script eingefügt werden sollen. Der Monteur sieht also direkt, ob der Einbau korrekt durchgeführt wurde, ohne an sensible Daten zu gelangen.

Eingabemasken habe ich in HTML bereits erstellt. Da ich aber sicher php dafür brauche und niemanden darum bitten mag, so ein Script für mich zu erstellen, möchte ich eigentlich nur Tipps für die Marschroute zur Lösung, damit ich nicht so blind im riesigen php Dschungel herumirre, sondern zielgerichtet lernen kann. Vielleicht auch eine Webseite, die einem Newbie den Einstieg in php erleichtert, so mit kurzen Erklärungen, wozu welche Befehle dienen.

Naja, so ein kleiner roter Faden wäre nicht schlecht.

Ginge das?

Schöne Grüße
Christof
Bitte warten ..
Mitglied: TheHans
31.07.2008 um 15:11 Uhr
Hallo gechger,
habe nicht gerade viel Erfahrung, würde in deinem Fall aber dem Benutzer Leserechte auf der Datenbank geben. Dann mit z.B. Aqua Data Studio den Zugriff auf dem Laptop einrichten und den Script abspeichern.
Hier findest du ADS http://www.heise.de/software/download/aqua_data_studio/23459.
Vielleicht kannst Du ja damit etwas anfangen.
Gruss HH
Bitte warten ..
Mitglied: gechger
31.07.2008 um 15:19 Uhr
Hallo HH,
probier ich auch gerne mal aus. Ich möchte unseren Technikern die Sache so einfach wie möglich machen.

Danke für den Tip

Gruss
Christof
Bitte warten ..
Mitglied: kugelschreiber
31.07.2008 um 18:02 Uhr
Hallo Christof,

die Variablen 11-14 sind ja Deine Zugangsdaten zur Datenbank. Die brauchst (solltest) Du gar nicht ändern.

Was Du machen kannst ist folgendes.

Schalte ein HTML-Formular davor und schicke die Variablen per action-Atribut an dieses Script , oder binde das Formular in das Script unten ein und schicke somit die Variablen an sich selbst.

Per PHP kannst Du mit:

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"
02.
<html> 
03.
<head> 
04.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
05.
<title>Datenbank auslesen</title> 
06.
</head> 
07.
 
08.
<body> 
09.
<? 
10.
if($_POST['Submit'] == "Abschicken"){ 
11.
 
12.
	//Verbindungsdaten 
13.
	$host = "hostname"
14.
	$db_name = "db_name"
15.
	$user = "user"
16.
	$password = "password"
17.
	//Verbindung herstellen 
18.
	$cldb = mysql_connect($host, $user, $password); // or die(mysql_error()); 
19.
	 
20.
	//Abfrage 
21.
	$suchbegriff = $_POST['suchbegriff']; 
22.
	$SQLString = "SELECT * FROM  mzlife WHERE werte LIKE '%".$suchbegriff."%'"
23.
	$abfrage = mysql_db_query($db_name,$SQLString); // or die(mysql_error()); 
24.
	?> 
25.
	<table> 
26.
	<? 
27.
	//Zeilenweise Ausgabe 
28.
	while($array = mysql_fetch_array($abfrage)){ 
29.
	?> 
30.
		<tr> 
31.
			<td><?= $array[spaltenname1]; ?></td> 
32.
			<td><?= $array[spaltenname2]; ?></td> 
33.
			<td><?= $array[spaltenname3]; ?></td> 
34.
			<td><?= $array[spaltenname4]; ?></td> 
35.
			<? 
36.
			/* 
37.
			. usw. 
38.
			. usw. 
39.
			. usw. 
40.
			*/	 
41.
			?> 
42.
		</tr> 
43.
	<? 
44.
	} // ENDE while($array = mysql_fetch_array($abfrage)){ 
45.
	?> 
46.
	</table> 
47.
<? 
48.
}else
49.
?> 
50.
	<form method="post"
51.
	<table> 
52.
		<tr> 
53.
			<td>Suchbegriff</td> 
54.
			<td><input type="text" name="suchbegriff" /></td> 
55.
		</tr> 
56.
		<tr> 
57.
			<td colspan="2"><input type="submit" name="Submit" value="Abschicken" /></td> 
58.
		</tr> 
59.
	</table> 
60.
	</form> 
61.
<? 
62.
63.
?> 
64.
 
65.
</body> 
66.
</html>
Das sollte reichen oder.

Spezieller kannst Du vorher noch eine Loginmaske davorschalten und gegen eine Tabelle mit User und Password in der Datenbank authentifizieren.

Gruß Kuli
Bitte warten ..
Mitglied: gechger
01.08.2008 um 09:01 Uhr
Guten Morgen Kuli,

die Datenbankeinträge müssen variabel sein, weil jeder Kunde eine eigene Datenbank und ein eigenes Kennwort hat. Die Datenbanken haben bei STrato auch so unübersichtliche Namen wie dbo00012345, das kann sich keiner merken. Ich will also alle Kunden in einer eigenen Datenbank ablegen, und über eine Eingabemaske mit Kundennamen die zugehörigen Anmeldedaten auslesen.
Der Techniker soll nur Kundennamen, Fahrzeugnummer und Datum eingeben, um die Daten ausgegeben zu bekommen.

Ich habe die Seite php-einfach.de gefunden und mal angefangen, mich ins php einzuarbeiten. Lösungansätze habe ich da gefunden, aber bis zur Umsetzung dauert es noch. Deine Tipps kommen mir sehr gelegen, vielen Dank dafür. Ich bin für alle weiteren Tips sehr offen.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: kugelschreiber
03.08.2008 um 13:30 Uhr
Hi Christof,

dann mache Dir eine Tabelle in der LOGIN Datenbank mit folgenden Userdaten:

- user_id, user_name, user_password, user_datenbank

Somit kannst Du nach erfolgreichem anmelden des Users SEINE Datenbank (user_datanbank auslesen und diese ihm zuordnen.

Gruß Kuli
Bitte warten ..
Mitglied: gechger
07.08.2008 um 08:37 Uhr
Hi Kuli,

vielen Dank für die ausführliche Hilfe. So werde ich es machen. Habe mir im I-Net auch schon einige Beispiele angesehen. Sobald ich halbwegs verstanden habe, wie die Beispiele funktionieren, setze ich das einfach mal um.

Ich finde es gut, daß soviel im php-Bereich veröffentlicht wird und freue mich über die Hilfsbereitschaft, die in vielen Foren sichtbar wird.

Also noch mal vielen Dank, ich setze diesen Beitrag auf gelöst.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: gechger
18.08.2008 um 09:57 Uhr
So, ich habe mein erstes Script mit Eurer Hilfe fertig bekommen. Es sieht jetzt so aus:

<!DOCTYPE HTML PUBLIC " -W3CDTD HTML 4.01 Transitiona lEN" "http:www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Fahrzeuginformationen holen</title>
</head>

<body>
<?php
error_reporting(E_ALL); #zeig alle Fehler
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden

Datenbankinformation zum Abruf der Kundendaten

$host = "host";
$user = "dboXXXXX";
$kennwort = "12345";
$dbname = "dbxxxxx";
$tabelle ="kddaten";

Eingabeformular
?>
<form action="fahrzeugholen.php" method="post">
<br>
Kundenname:<br>
<input name="kundenname"><br>
Fahrzeug-ID:<br>
<input name="fahrzeug"><br>
Datum:<br>
<input name="datum"><br>
WICHTIG: Datum eingeben in Form yyyy-mm-tt<br><br>
<input type="submit" value="Absenden"><br>
</form>
<?php

Verbindung mit der Datenbank
$cldb = mysql_connect($host, $user, $kennwort);
or die(mysql_error());
mysql_select_db($dbname);

Variablen, die durch das Eingabeformular gefüllt werden
$kundenname=$_POST["kundenname"];
$fahrzeug=$_POST["fahrzeug"];
$datum=$_POST["datum"];

Script, welches ausgeführt werden soll
$sql = ("SELECT * FROM kddaten where name='$kundenname'");

Ausgabe der abgefragten Informationen...
$result=mysql_Query ($sql);

...und Ausgabe in ein Array
$row = mysql_fetch_row($result);

Verbindung mit Datenbank, welches die zu ermittelnden Werte beinhaltet
$host1 = "host";
$user1 = "$row[1]";
Inhalte des Arrays, die Indexnummern per ECHO abgefragt, liefert genaue Informationen
$kennwort1 = "$row[3]";
$dbname1 = "$row[2]";
$tabelle1 ="$row[4]";
$anmeldung="$row[5]";

Verbindug mit der zweiten Datenbank
mysql_select_db($dbname1);

SQL Script, welches jetzt ausgeführt werden soll
$sql1 = ("SELECT * FROM $tabelle1 where werte like '%bLOG=$fahrzeug%' and werte like '%$datum%'");

Ausgabe der Informationen
$abfrage = mysql_db_query($dbname1,$sql1);
or die(mysql_error());

und schreiben in eine Tabelle
?>
<table rules=row>
<?
while($array = mysql_fetch_array($abfrage)){
?>
<tr>
<td><?= $array[werte]; ?></td>
</tr>

<?
}
ENDE while($array = mysql_fetch_array($abfrage)){
?>
</table>
<?


mysql_close();


?>
</body>
</html>

Hier noch mal besonderen Dank an Kuli.

Schöne Grüße
Christof
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
VB for Applications
Powershell Script aus VBA heraus ausführen (2)

Frage von mcnico1978 zum Thema VB for Applications ...

Microsoft Office
Access ein Script alle X Minuten ausführen und bei Bedarf stoppen (5)

Frage von thomas1972 zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell-Script als Admin über CMD ausführen (2)

Frage von Tobiased zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...