none
SQLAgentUserRole nur für diverse Jobs RRS feed

  • 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. 

    Donnerstag, 5. November 2020 13:50

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

    Donnerstag, 19. November 2020 06:49
    Beantworter
  • 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

    Freitag, 13. November 2020 12:08
    Beantworter
  • 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

    Freitag, 6. November 2020 06:13
    Beantworter

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

    Freitag, 6. November 2020 06:13
    Beantworter
  • 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? 

    Freitag, 13. November 2020 08:53
  • 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

    Freitag, 13. November 2020 12:08
    Beantworter
  • 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?

    Dienstag, 17. November 2020 22:23
  • 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

    Donnerstag, 19. November 2020 06:49
    Beantworter
  • 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. 

    Dienstag, 24. November 2020 21:56