Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehlermeldung bei 'Ad hoc access' auf MSSQLServer (https://www.delphipraxis.net/116902-fehlermeldung-bei-ad-hoc-access-auf-mssqlserver.html)

PASST 8. Jul 2008 14:16

Datenbank: MSSQL • Version: 2000SP3 • Zugriff über: ODBC MSDASQL

Fehlermeldung bei 'Ad hoc access' auf MSSQLServer
 
Hallo allerseits,

ich habe eine Abfrage erstellt, um eine dBase Datenbank mit Daten eines MSSQL Server zu verbinden. Dazu verwende ich den SQL-Befehl OPENROWSET. Das klappt auch wunderbar als Administrator, der auf dem MSSQL Server die Rolle 'System Administrator' hat. Einem normalen User, der diese Abfrage ausführen soll, möchte ich natürlich aus Sicherheitsgründen diese Rolle nicht vergeben.

In der MSKB habe ich diesen Artikel HOW TO: Use the DisallowAdHocAccess Setting to Control Access to Linked Servers gefunden und weiter noch in der MSDN der TransactSQL Referenz den zu OPENROWSET. Demnach muss ich in der Registry den Eintrag DisallowAdhocAccess auf 0 setzen.
Leider klappt das nicht. Nur wenn der normale User auch zum MSSQL 'System Administrator' hochgestuft wird, funktioniert der Zugriff fehlerlos.

Kann mir jemand helfen wie ich das ganze ohne dieses Sicherheitsproblem gelöst bekomme?

Gruß
Peter

PASST 8. Jul 2008 14:51

Re: Fehlermeldung bei 'Ad hoc access' auf MSSQLServer
 
Jetzt habe ich doch selber, schneller als erwartet, eine Lösung gefunden.

Um den Registryeintrag von oben zu aktivieren, muss ich den Dienst SQLServer neustarten. Ich habe jetzt noch einen zweiten Registryeintrag vorgenommen aufgrund Legacy-Daten importieren: Konvertierung, Unicode-Support und Sicherheit bei einem Zwei-Server-System (s.u.) (das ist wahrscheinlich nicht nötig!). Danach muss ich nur noch dem User für die entsprechende MSSQL Datenbank die Rolle db_datareader aktivieren und schon hat alles fehlerfrei geklappt.

omata 8. Jul 2008 15:59

Re: Fehlermeldung bei 'Ad hoc access' auf MSSQLServer
 
Das Problem ist ja schon gelöscht.

Trotzdem...

Wie wäre es unter Sicherheit->Verbindungsserver einfach den Zugriff zu definieren und dann mittels OPENQUERY darauf zu zugreifen?

Dann brauchst du da gar nichts an irgendwelchen Registry oder Rollen-Einträgen zu ändern.

Naja, war nur so ne Idee.

PASST 8. Jul 2008 16:13

Re: Fehlermeldung bei 'Ad hoc access' auf MSSQLServer
 
Tja, so einen Linked Server hatte ich auch schon eingerichtet. Das ganze ist aber daran gescheitert, dass ich keinen UNC-Pfad und, ich meine, auch kein gemapptes Netzwerklaufwerk als Datenpfad verwenden darf.

Ich habe damit fast einen ganzen Tag verbracht, bis ich herausgefunden habe, wie es am besten funktioniert. Es wäre aber interessant zu wissen, wie es mittels Linked Server klappt, wenn der Datenpfad im Netzwerk liegt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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