AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MSSQL - Zugriff bei integrierter Sicherheit testen

MSSQL - Zugriff bei integrierter Sicherheit testen

Ein Thema von DeddyH · begonnen am 10. Jun 2021 · letzter Beitrag vom 11. Jun 2021
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.237 Beiträge
 
Delphi 10.4 Sydney
 
#1

MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 08:34
Datenbank: MSSQL • Version: 2008+ • Zugriff über: FireDAC
Ich habe hier einen Dienst, der ggf. auf eine MSSQL-Datenbank mit integrierter Sicherheit zugreifen soll. Da das Systemkonto nicht unbedingt zugriffsberechtigt ist, möchte ich eine Option anbieten, ihn unter einem einzugebenden Benutzerkonto laufen zu lassen. Nun suche ich eine Möglichkeit des Testzugriffs auf die DB mit dem angegebenen Benutzerkonto. Hat jemand eine Idee, wie man das mit vertretbarem Aufwand realisieren könnte? Ein externes Programm unter dem angegebenen Konto zu starten, das dann versucht, auf die DB zuzugreifen und das Ergebnis dann irgendwie wieder an das Hauptprogramm zurückmeldet ist mir momentan zuviel Aufwand, gibt es da nichts simpleres?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.612 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 09:27
Ich habe aktuell lustigerweise genau das gleiche (MS-SQL 2008 + FireDAC), kenne mich aber nicht wirklich aus. "Integrierte Sicherheit" ist Active Directory-Integration? Und der Nutzer unter dem du entwickelst hat nicht zwangsläufig die Rechte unter welcher die Anwendung später läuft?

Der SQL-Server kann Active Directory-Konten plus zusätzliche SQL-Server-Accounts gleichzeitig. Man musste erst auf Server-Ebene den Benutzer als "Anmeldung" hinzufügen und dann noch einmal zur Datenbank selbst hinzufügen. Bei mir war das notwendig weil mein PC zuhause nicht in der Domäne steckt, hier muss ich zum testen einen normalen Account mit Name und Passwort nehmen.

Richtig verstanden?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.237 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 10:28
Im Prinzip schon. Mir geht es darum: ein Dienst wird ja standardmäßig unter dem lokalen Systemkonto gestartet. Damit er aber dann bei integrierter Sicherheit ("Windows-Authentifizierung") auch auf die DB zugreifen kann, muss man im DB-Server entweder die Berechtigung für NT-AUTHORITY/System (oder so ähnlich) einrichten, oder man startet den Dienst halt unter einem AD-Benutzer, der entsprechende Rechte besitzt. Wenn der Endbenutzer sich für Letzteres entscheidet, biete ich die Möglichkeit einer Eingabe für Namen und Kennwort des Accounts. Bevor ich das aber einfach stumpf übernehme, würde ich gern testhalber mit den eingegebenen Daten auf die DB zugreifen und bei Misserfolg eben eine entsprechende Meldung ausgeben. Und genau dafür fehlt mir der Ansatz.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.612 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 11:23
Das Connect() der TFdConnection wirft doch direkt eine Exception wenn er sich nicht verbinden kann? Das kann man ja sogar schon testen indem man sich einfach eine Connection auf ein Formular klatscht und Connected auf True setzt. In meinem Fall bekomme ich immer eine Exception mit sprechendem Namen (dem man dem Benutzer auch direkt anzeigen könnte) wenn es an der Authentifizierung scheitert. Wenn ich es beispielsweise von zu hause über meinen AD-Account versuche haut er mir das um die Ohren und meint "Der Computer ist nicht Teil der Domäne, geh weg!"
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
884 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 11:33
Du kannst beim Dienst ja sagen, welches Konto er benutzen soll. Mach doch einfach ein Konto so, wie du es testen willst + starten den Dienst mit diesem Konto.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.237 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 11:43
Ich möchte ja, bevor ich den Dienst starte, den Zugriff testen, im Kontext eines Setups und/oder Konfigurationsprogramms. Hier liegt das Hauptproblem. Ein Gedanke war, einfach ein kleines Testprogramm zu schreiben, welches mit übergebenen Daten (Datenbankserver, Name der Datenbank) einen Connect versucht und das Ergebnis zurückmeldet. Dieses Programm könnte ich aus dem Setup heraus unter dem angegebenen Benutzeraccount starten, aber schon das ist ja nicht ganz trivial, vor allem, wenn ich einen Passwort-Prompt vermeiden möchte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
123 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 12:23
Mit FD weiß ich es auch nicht; aber mit ADO geht es ganz einfach:

Delphi-Quellcode:
with TADOConnection.Create(self) do
 try
 ConnectionString:='Provider=SQLOLEDB;Integrated Security=SSPI;OLE DB Services = -2;Initial Catalog=[Name der Datenbank];Data Source=[Name des SQLServers];Current Language=german';
 LoginPrompt:=false;
 Connected:=true;
 except {wenn es nicht geklappt hat} end;
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
123 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 12:23
Sorry, ADOConnection muss am Ende natürlich auch wieder freigegeben werden.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.612 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 12:25
Trivial sicher nicht, aber ich glaube das Auslagern in einen eigenen Prozess ist wahrscheinlich immer noch einfacher als zu versuchen, das in der Setup-Anwendung nachzubilden, mit all der AD-Authentifizierung und allem. Mit runas könnte man Windows wahrscheinlich auch die Eingabe des Passwortes übernehmen lassen, dann muss man sich damit auch nicht herumschlagen.

Und das Tool braucht ja keine Oberfläche, Benutzer und Kennwort könnte man ihm über Kommandozeile oder Umgebungsvariablen mitgeben und der Rückgabewert beim Beenden des Prozesses muss nur sagen "Ging" oder "ging nicht". Oder es loggt halt Dinge wie eine sprechende Fehlermeldung in eine Textdatei.

So ein kleines Testprogramm ließe sich vielleicht auch recyclen für den Fall der Kunde (oder sein Dienstleister) eines Tages was an Servernamen oder Berechtigungen ändert.
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
123 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: MSSQL - Zugriff bei integrierter Sicherheit testen

  Alt 10. Jun 2021, 12:26
Ups, da habe ich gepennt. Mein Beispiel versucht es ja nur mit dem aktuell angemeldeten User.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 04:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf