Mmh, also hast Du Dir "die beiden " Vorschläge mal angesehen? Es sind die gleichen, nur der eine Vorschlag hat einen anderen Begleittext als der andere.
Das habe ich natürlich bemerkt, sah aber keinen Grund dies zu kommentieren. Zwei gleiche Vorschläge sind weder schlechter als nur einer noch bedeutet es, dass es deshalb die beste Lösung für das Problem ist. Alte Börsenweisheit: "Die Mehrheit liegt meistens daneben - sonst wären wir alle reich"
Meine Kunden haben ihre IT physikalisch und administrativ an diverse Rechenzentren abgegeben. Meine Delphi-Anwendung verwendet eine
SQL-AppRole, um auf die eigene Datenbank auf dem
SQL-Server (bei diversen RZ) zuzugreifen. Diese AppRole ist Mitglied von db_owner. Somit verfügt meine Delphi-App über alle Berechtigungen innerhalb der Datenbank und kann somit alle Strukturen innerhalb der eigenen Datenbank (Tabellen, Sichten, Procs, Funcs usw.) erstellen, ändern oder löschen. Weder die AppRole noch die Anwender der Delphi-App (Windows-Authentifizierung) verfügen über Server-Rollen auf dem
SQL-Server.
Für die Anlage eines Jobs mit sp_add_schedule sind jedoch folgende Berechtigungen erforderlich:
"Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin diese gespeicherte Prozedur ausführen. Andere Benutzer müssen Mitglieder der festen SQL Server -Agent-Datenbankrollen in der msdb -Datenbank sein:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Das heißt: Nur
SQL-Server-Administratoren können diese Jobs erstellen. Da weder meine AppRole noch meine Anwender
SQL-Server-Administratoren sind, kann meine App diese Jobs nicht erstellen. Hierzu müssten Mitarbeiter in den Rechenzentren manuell eingreifen, indem sie die Jobs manuell erstellen oder jemandem die entsprechenden Berechtigungen erteilen. Und spätestens an dieser Stelle erklärt sich der Begriff "hinterher telefonieren". Das geht leider gar nicht.
Deshalb suche ich immer nach Möglichkeiten, die Dinge quasi mit "Bordmitteln" und ohne fremde Hilfe (Serveradmins) umzusetzen.