AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehlermeldung bei 'Ad hoc access' auf MSSQLServer
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung bei 'Ad hoc access' auf MSSQLServer

Ein Thema von PASST · begonnen am 8. Jul 2008 · letzter Beitrag vom 8. Jul 2008
Antwort Antwort
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

Fehlermeldung bei 'Ad hoc access' auf MSSQLServer

  Alt 8. Jul 2008, 13:16
Datenbank: MSSQL • Version: 2000SP3 • Zugriff über: ODBC MSDASQL
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
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Fehlermeldung bei 'Ad hoc access' auf MSSQLServer

  Alt 8. Jul 2008, 13:51
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.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Fehlermeldung bei 'Ad hoc access' auf MSSQLServer

  Alt 8. Jul 2008, 14:59
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.
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Fehlermeldung bei 'Ad hoc access' auf MSSQLServer

  Alt 8. Jul 2008, 15:13
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz