Benutzer mit den meisten Antworten
SQLAgentUserRole nur für diverse Jobs

Frage
-
Hallo an alle,
ich suche eine Möglichkeit die Rechte der Rolle "SQLAgentUserRole" nur auf diverse Jobs zu ermöglichen.
Bisher habe ich nichts dazu gefunden auch keinen Workaround. Da aber auf den SQL Server mehrere Jobs sind die nicht von jeden gestartet werden sollen, möchte ich gern das ganze auf Jobebene einschränken.
Danke für eure Hilfe.
Antworten
-
Das wird leider schon länger bemängelt, dass eine Gruppe nicht owner eines Jobs sein kann. Ich habe dazu schon Connect-Einträge von 2009 gesehen.
Ein Workaround war bei mir mal die Verwendung eines SQL Logins. Alle Gruppenmitglieder kannten das Passwort und konnten den Server mit diesen Credentials in ihrem SSMS registrieren und damit mit identischen Accounts arbeiten. Identisch, nicht gleich berechtigt!
Du kannst für diese Idee aber abstimmen: Feedback
Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Moderator Dienstag, 24. November 2020 10:12
- Als Antwort markiert Toot_Braunstein Dienstag, 24. November 2020 21:56
-
So kannst Du schauen, wem die Jobs gehören:
SELECT sv.name AS [Name], sv.job_id AS [JobID], sv.originating_server AS [OriginatingServer], CAST(sv.enabled AS bit) AS [IsEnabled], ISNULL(sv.description,N'') AS [Description], sv.start_step_id AS [StartStepID], ISNULL(suser_sname(sv.owner_sid), N'') AS [OwnerLoginName], sv.date_created AS [DateCreated], sv.date_modified AS [DateLastModified] FROM msdb.dbo.sysjobs_view AS sv;
HTH!Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Moderator Dienstag, 24. November 2020 10:12
- Als Antwort markiert Toot_Braunstein Dienstag, 24. November 2020 21:57
-
Das verstehe ich nicht ganz. Aus der Doku:
Die Mitglieder von SQLAgentUserRole haben lediglich Berechtigungen für lokale Aufträge und Auftragszeitpläne, deren Besitzer sie sind.Wenn die User also kein Besitzer der Jobs sind, können sie diese auch nicht starten.
Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 10. November 2020 12:17
- Als Antwort markiert Toot_Braunstein Dienstag, 24. November 2020 21:57
Alle Antworten
-
Das verstehe ich nicht ganz. Aus der Doku:
Die Mitglieder von SQLAgentUserRole haben lediglich Berechtigungen für lokale Aufträge und Auftragszeitpläne, deren Besitzer sie sind.Wenn die User also kein Besitzer der Jobs sind, können sie diese auch nicht starten.
Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 10. November 2020 12:17
- Als Antwort markiert Toot_Braunstein Dienstag, 24. November 2020 21:57
-
hallo Christoph,
danke für deine Antwort! Ich habe es mit SQLAgentUserRole versucht und einer AD-Gruppe die Rechte zugewiesen.
Dabei habe ich folgendes genutzt:
USE [msdb]
GO
EXEC sp_addrolemember 'SQLAgentUserRole', 'Domain\UserAgentenSteuerung'
GO
Jedoch konnte diese AD-Gruppe die Jobs im SQL Server nicht starten. Deswegen bin ich auf Operator gewechelt. Aber es sollen ja nicht alle Jobs von der Gruppe gestartet werden können. Wie kann ich den Besitz ermitteln?
PS: in den Benutzereigenschaften unter Schemas im Besitz kann ich meine AD-Gruppe wiederfinden. Aber das ist sicher nicht das was du gemeint hast oder?
-
So kannst Du schauen, wem die Jobs gehören:
SELECT sv.name AS [Name], sv.job_id AS [JobID], sv.originating_server AS [OriginatingServer], CAST(sv.enabled AS bit) AS [IsEnabled], ISNULL(sv.description,N'') AS [Description], sv.start_step_id AS [StartStepID], ISNULL(suser_sname(sv.owner_sid), N'') AS [OwnerLoginName], sv.date_created AS [DateCreated], sv.date_modified AS [DateLastModified] FROM msdb.dbo.sysjobs_view AS sv;
HTH!Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Moderator Dienstag, 24. November 2020 10:12
- Als Antwort markiert Toot_Braunstein Dienstag, 24. November 2020 21:57
-
Hallo Christoph danke fürs antworten.
Ich habe nun den Besitzer ausfindig gemacht. Nun habe ich aber ein weiteres Problem. Über das SSMS kann ich den Besitzer nicht wechseln, denn ich kann den Besitz nur auf Anmeldungen ändern. Meine AD-Gruppe gilt zwar als Anmeldung bzw. wird dort aufgelistet - ABER ich kann diese nicht auswählen im SSMS bei den gewünschten Job.
Ist dies so gewollt? Wenn ja warum?
-
Das wird leider schon länger bemängelt, dass eine Gruppe nicht owner eines Jobs sein kann. Ich habe dazu schon Connect-Einträge von 2009 gesehen.
Ein Workaround war bei mir mal die Verwendung eines SQL Logins. Alle Gruppenmitglieder kannten das Passwort und konnten den Server mit diesen Credentials in ihrem SSMS registrieren und damit mit identischen Accounts arbeiten. Identisch, nicht gleich berechtigt!
Du kannst für diese Idee aber abstimmen: Feedback
Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Moderator Dienstag, 24. November 2020 10:12
- Als Antwort markiert Toot_Braunstein Dienstag, 24. November 2020 21:56
-
Hallo Christoph,
das ist nett gemeint aber von solchen Lösungen halte nicht nicht wirklich etwas. Damit erledige ich eine Aufgabe und erstelle mir 3 neue ;-).
Da kann ich auch innerhalb der Instanz die Rechte zum Jobsteuern geben und auf Unwissenheit hoffen. Da durch die Namen der Jobs nicht bekannt sind, kann man diese auch nicht anstoßen.
Das ist auch nicht 100% schön aber für mich der bessere Weg,
Danke dir trotzdem.