Wie schreibt man eine SQL-Abfrage, um herauszufinden, welche Anmeldungen erteilt wurden, welche Rechte Sie in Sql Server 2005?
Ich bin verantwortlich für einige test-Datenbank-Server. Historisch gesehen, zu viele andere Leute Zugang zu Ihnen haben. Sie laufen auf SQL Server 2005. Ich habe das schreiben von Abfragen und wickelte Sie in Skripten, so kann ich führen Sie eine regelmäßige Prüfung der Rechte. Finden Sie heraus, welche Benutzer hatte Administrator Rechte auf dem server selbst war in Ordnung, wie es war, herauszufinden, wer hatte die "sysadmin" Rolle auf Ihre Anmeldung - es war eine einzelne Zeile eine Abfrage für das letztere.
Aber wie finden Sie heraus, welche Anmeldungen haben ein User-Mapping zu einem bestimmten (oder beliebigen) Datenbank? Ich kann die sys.database_principals und sys.server_principals-Tabellen. Ich haben sich den sys.Datenbanken Tabelle. Ich habe noch nicht herausgefunden, wie Sie herausfinden, welche Benutzer über Zugriffsrechte auf eine Datenbank, und wenn ja, welche. Jede Google-Suche bringt Menschen manuell mit der Benutzer-Mapping-Bereich der Login-dialog, anstatt mit einer Abfrage zu tun. Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Check-out dieser msdn-Referenz-Artikel auf Has_Perms_By_Name. Ich denke, Sie sind wirklich daran interessiert, Beispiele D, F und G
Andere Idee... ich schmiß Sie SQL profiler und klicken auf den ObjectExplorer->Sicherheit->Benutzer. Dies führte in der (ca) die folgende Abfrage ausgegeben.
Diese erhalten Sie was Benutzer zugeordnet sind, welche Anmeldungen innerhalb einer einzigen Datenbank.
Hier ist, wie Sie dies tun. Ich landete Suche nach Referenz zu einem sproc in der MSDN-Dokumentation. Ich zog diese aus der sproc und wickelte es in eine Schleife über alle Datenbanken bekannt zu der Instanz.
Dieser meldet dann den Benutzer mit "DBO", die vielleicht nicht sollte. Ich habe bereits widerrufen einige admin-Zugang von einigen Nutzern, dass Sie Sie nicht brauchen. Vielen Dank an alle!