Ist es möglich, das Kontrollkästchen Kennwort speichern in SSMS zu deaktivieren?

8

Einige Zeit , dass wir gleiche Laptop für 4-5 Mitarbeiter in unserem Büro für einige Testzwecke zur Verfügung stellen (da eine teure lizenzierten Tool ist exist in diesem Laptop nur), fragte sie auch nicht tun , um das Klicken Passwort vergessen Checkbox in SSMS die Anmeldeinformationen zu speichern , .

Aber nur wenige von ihnen klicken versehentlich auf dieses Kontrollkästchen, sodass wir jedes Mal das deaktivieren müssen SqlStudio.bin, um das Problem zu lösen. Anstatt , dass es schön ist , die deaktivieren Passwort speichert Option in dem SSMS in diesem speziellen Laptop.

Ist es möglich, das Kontrollkästchen Kennwort speichern in SSMS zu deaktivieren?

Das erwartete Verhalten ist wie folgt:

Deaktivieren Sie immer das Kontrollkästchen Kennwort speichern

Arulkumar
quelle
Ein Konto für das teure Tool und separate Konten für jeden Benutzer zum Ausführen von SSMS.
CoveGeek

Antworten:

11

Nein, dies ist nur möglich, wenn Sie SSMS zurückentwickeln und entweder das Kontrollkästchen ausblenden oder es zu einem No-Op machen, dann neu kompilieren und bereitstellen. Und wiederholen Sie dies jedes Mal, wenn Sie ein Upgrade durchführen, ein Service Pack anwenden usw. (Um es klar zu sagen: Dies ist nicht das, was ich empfehle.)

Ich habe jedoch eine bessere Lösung:

Warum verwenden Ihre 4-5 Mitarbeiter keine unterschiedlichen Profile? Dies beansprucht zwar ein wenig mehr Speicherplatz, aber jedes Profil erhält seine eigene SqlStudio.bin. Dann können Sie auch die Windows-Authentifizierung verwenden. Dies bedeutet, dass sie weder ihr Kennwort eingeben noch ein Kontrollkästchen aktivieren müssen, und dies vereinfacht die Überwachung auch für den Fall, dass dies nicht das Ungeheuerlichste ist, was sie tun.

Aaron Bertrand
quelle
Ich bin mir nicht sicher, ob Profile mit ihrem sehr teuren lizenzierten Tool gut zusammenarbeiten würden. Es ist durchaus möglich, dass für das ArcGis-Tool Lizenzen pro Benutzer erforderlich sind.
Nzall
@Nate ok, also sollten wir sie ermutigen, stattdessen gegen Lizenzvereinbarungen zu verstoßen? Das ist eine Entscheidung, die sie treffen müssen. Ich schlug lediglich eine Möglichkeit vor, das Problem "Ein Benutzer erhält das Passwort eines anderen Benutzers" zu vermeiden. Es mag sein, dass dies im Vergleich zu den Lizenzkosten ein vernachlässigbares Problem ist, aber ich denke immer noch, dass es völlig falsch ist, die Softwarevereinbarung auf diese Weise zu missbrauchen. (Ich konnte auf der Website des Produkts auch keine Informationen darüber finden, ob es sich um eine Sitzplatzlizenz handelt oder ob sie an ein Windows-Konto gebunden ist oder wie schwierig es im letzteren Fall ist, eine Lizenz zu "übertragen".)
Aaron Bertrand
Ich habe nicht gesagt, dass sie Lizenzvereinbarungen brechen sollten. Ich habe nur darauf hingewiesen, dass separate Benutzerprofile, obwohl normalerweise die richtige Antwort, aufgrund der Lizenzierung möglicherweise nicht möglich sind.
Nzall
@Nate Um pedantisch zu sein, wenn das Tool wirklich pro Benutzer lizenziert werden soll, brechen sie bereits die Vereinbarung. Sie schlagen nicht vor, dass sie das beheben, was implizit besagt, dass es in Ordnung ist.
Aaron Bertrand
Ich habe keine Ahnung, wie die Lizenzierung für ArcGis funktioniert, und ehrlich gesagt ist es mir auch nicht wirklich wichtig, dies herauszufinden. Ich habe kein Interesse an einem pedantischen Kreuzzug, um herauszufinden, ob ArcGis auf diese Weise lizenziert werden darf oder nicht. Solche Lizenzen können sehr teuer sein, insbesondere für kleinere Unternehmen. Zur Hölle, ich hatte selbst die gleiche Situation, in der ein Unternehmen, für das ich gearbeitet habe, seine Entwickler Telerik-Testlizenzen verwenden ließ, während sich die bezahlte Lizenz auf dem Build-Server befand, um Geld zu sparen. Manchmal müssen Sie Schlupflöcher verwenden.
Nzall
3

Während dies für Ihre Situation übermäßig sein kann, können Sie versuchen, mithilfe einer Automatisierungssoftware ein eigenes Anmeldefenster zu erstellen, die eindeutigen Benutzeranmeldeinformationen abzurufen und dann SSMS mit den richtigen Befehlszeilenoptionen zu starten. Natürlich möchten Sie verhindern, dass Benutzer SSMS direkt ausführen, und Sie können dies über Windows-Gruppenrichtlinien oder durch Registrierungsänderungen tun. Wenn Sie mit Ihren Skripten ein bisschen kreativ werden, kann AutoHotKey dies auch tun.

  1. Software zur Automatisierung fast aller Windows-Aktionen - AutoHotKey
  2. Geben Sie 'ssms.exe /?' Ein, um die Befehlszeilenoptionen für SSMS anzuzeigen.
  3. Um zu erfahren, wie Sie verhindern können, dass Benutzer ein Programm ausführen, klicken Sie auf "Windows verhindert, dass Benutzer ein Programm ausführen".

Es wird eine Weile dauern, bis Sie das alles erledigt haben, aber dann haben Sie mehr Möglichkeiten, wie Sie einzigartige Dinge schnell erledigen können.

Ps. Ich kann Softwarepiraterie oder Lizenzverletzungen überhaupt nicht dulden. Verwenden Sie die oben genannten Ratschläge auf eigene Gefahr. Dies sind Standardtools, die jeder gute Windows-Administrator bereits kennen sollte oder in seiner Trickkiste haben sollte.

Michael Engelby
quelle
3

Sie können ein kleines Tool schreiben, das nach dem erforderlichen Fenster sucht und eine Nachricht an dieses sendet, um das Steuerelement zu deaktivieren. Oder wählen Sie eines der vorhandenen Tools.

Die Schnellsuche hat diese Frage gefunden: /programming/11833500/preventing-cross-process-sendmessage-calls

mit diesem Link: https://www.raymond.cc/blog/how-to-enable-and-access-disabled-grayed-out-buttons-windows-and-checkboxes/

Natürlich ist jedes solche Werkzeug spröde. Erstellen Sie stattdessen möglicherweise eine Sicherungskopie der Datei, in der dieses Kennwort gespeichert ist ( SqlStudio.bin), und überschreiben Sie sie jedes Mal, wenn sich ein Benutzer bei Windows anmeldet, mit einer neuen Kopie. Du sagtest:

Aber nur wenige von ihnen klicken versehentlich auf dieses Kontrollkästchen, sodass wir jedes Mal das deaktivieren müssen SqlStudio.bin, um das Problem zu lösen.

Behandeln Sie es nicht als Ausnahmesituation, sondern als normale Situation und löschen Sie es SqlStudio.binbei jeder Anmeldung.

Alternativ können Sie versuchen, diese Datei schreibgeschützt zu machen / Schreibberechtigungen zu verweigern.

Vladimir Baranov
quelle
Das Verhindern von Schreibvorgängen scheint auf den ersten SqlStudio.binBlick eine gute Idee zu sein, aber verstehe ich anhand Ihrer Formulierung richtig, dass Sie das selbst nicht versucht haben? Wissen Sie im Voraus, ob es Nebenwirkungen gibt? ob auch andere einstellungen darauf geschrieben werden?
Andriy M
@AndriyM, du hast recht, ich habe es nicht selbst versucht. Ich dachte nur, dass es nicht schlimmer sein kann, als es ganz wie OP zu löschen. Es ist möglicherweise besser, eine Sicherungskopie dieser Datei zu erstellen und sie nach Bedarf wiederherzustellen, oder sich einfach immer bei Windows anzumelden.
Vladimir Baranov
1
Ah, das macht. Eine andere Variante Ihres Vorschlags könnte darin bestehen, eine einfache Batchdatei zu erstellen, die wiederhergestellt SqlStudio.binund dann SSMS ausgeführt wird, und die Verknüpfung zu bearbeiten, mit der SSMS gestartet wird, um diesen Batch anstelle von SSMS selbst auszuführen.
Andriy M
0

Ich weiß, dass dies ein alter Beitrag ist, aber um anderen Menschen zu helfen, denke ich, dass es vielleicht einfacher ist, einfach ein "Standard" -Sicherungsprogramm für die sqlstudio-Einstellungen zu erstellen und es wiederherzustellen, bevor der Laptop einem Benutzer zur Verfügung gestellt wird. Das schlimmste Szenario könnte auch einige Registry-Hacking beinhalten.

CesarF
quelle
2
Können Sie weitere Details dazu bereitstellen, wie Sie ein "Standard" -Sicherungsprogramm für SQL Studio-Einstellungen erstellen können?
Greg