Discussion:
Berechtigung für CmdExec-Aufträge
(zu alt für eine Antwort)
Markus Broy
2003-09-22 13:57:56 UTC
Permalink
Hallo zusammen,

meine Frage bezieht sich auf das Ausführen von "CmdExec"-Aufträgen. Hier
steht in der SQL-Hilfe:
"Aus Sicherheitsgründen kann nur der Auftragsbesitzer oder ein Mitglied der
sysadmin-Rolle die Definition eines vorhandenen Auftrags ändern, den Auftrag
starten und beenden oder einen anderen Benutzer zum Besitzer eines Auftrags
machen."

Die sysadmin-Rolle soll dem User, der einen Auftrag anlegen und auf Termin
setzen soll, nicht gewährt werden. Nach der Info aus der Hilfe, müsste es ja
ausreichen, wenn der User gleichzeitig Besitzer des Auftrags ist. Doch
scheinabr ist er auch dann nicht Besitzer, wenn er den Auftrag selbst
anlegt. Jedenfalls kommt es bei der Ausfürhung des Auftrags zu folgender
Fehlermeldung:

"Nicht-Systemadministratoren wurde die Berechtigung zur Ausführung von
CmdExec-Auftragsschritten verweigert. Fehler bei Schritt ..."

Wie kann ich Besitzer eines Auftrags werden? Und wo kann ich dies
einsehen? - Oder geht es doch nur als sysadmin?

Danke!

Gruß

Markus Broy
Ralf Dietrich
2003-09-22 14:13:51 UTC
Permalink
Hallo Markus,
Post by Markus Broy
Hallo zusammen,
meine Frage bezieht sich auf das Ausführen von "CmdExec"-Aufträgen.
"Aus Sicherheitsgründen kann nur der Auftragsbesitzer oder ein
Mitglied der sysadmin-Rolle die Definition eines vorhandenen Auftrags
ändern, den Auftrag starten und beenden oder einen anderen Benutzer
zum Besitzer eines Auftrags machen."
Die sysadmin-Rolle soll dem User, der einen Auftrag anlegen und auf
Termin setzen soll, nicht gewährt werden. Nach der Info aus der
Hilfe, müsste es ja ausreichen, wenn der User gleichzeitig Besitzer
des Auftrags ist. Doch scheinabr ist er auch dann nicht Besitzer,
wenn er den Auftrag selbst anlegt. Jedenfalls kommt es bei der
"Nicht-Systemadministratoren wurde die Berechtigung zur Ausführung von
CmdExec-Auftragsschritten verweigert. Fehler bei Schritt ..."
Wie kann ich Besitzer eines Auftrags werden? Und wo kann ich dies
einsehen? - Oder geht es doch nur als sysadmin?
Danke!
Gruß
Markus Broy
Ralf Dietrich
2003-09-22 14:25:21 UTC
Permalink
Hallo Markus,
was war denn das, eben geöffnet und das Posting war weg :-(
Post by Markus Broy
Hallo zusammen,
meine Frage bezieht sich auf das Ausführen von "CmdExec"-Aufträgen.
"Aus Sicherheitsgründen kann nur der Auftragsbesitzer oder ein
Mitglied der sysadmin-Rolle die Definition eines vorhandenen Auftrags
ändern, den Auftrag starten und beenden oder einen anderen Benutzer
zum Besitzer eines Auftrags machen."
Die sysadmin-Rolle soll dem User, der einen Auftrag anlegen und auf
Termin setzen soll, nicht gewährt werden. Nach der Info aus der
Hilfe, müsste es ja ausreichen, wenn der User gleichzeitig Besitzer
des Auftrags ist. Doch scheinabr ist er auch dann nicht Besitzer,
wenn er den Auftrag selbst anlegt. Jedenfalls kommt es bei der
"Nicht-Systemadministratoren wurde die Berechtigung zur Ausführung von
CmdExec-Auftragsschritten verweigert. Fehler bei Schritt ..."
Wie kann ich Besitzer eines Auftrags werden? Und wo kann ich dies
einsehen? - Oder geht es doch nur als sysadmin?
Danke! Gruß Markus Broy
es gibt da zwei Varianten:
Du Kannst in den Eigenschaften des SQLAgenten ein Proxykonto für die
CMD-EXEC-Auftragsschritte zuweisen. Ansonsten musst Du wirklich den Besitz
des Auftrages übernehmen.
Das kannst Du direkt auf der ersten Seite der Auftragseigenschaften (links
in der Mitte)
Wenn es dann zufällig noch Probleme geben (und nur dann!), nimmst Du
(zusätzlich) die Schrittdetails.
Auch dort gibt es unter Umständen die Notwendigkeit noch einmal zu sagen,
in welchem Kontexkt der Schritt ausgeführt wird.
--
CU Ralf
------------------
www.damisys.de
------------------
Markus Broy
2003-09-22 15:05:02 UTC
Permalink
Hallo Ralf,

zunächst vielen Dank. Allerdings komme ich noch nicht ganz zum Ziel ...
Post by Ralf Dietrich
Du Kannst in den Eigenschaften des SQLAgenten ein Proxykonto für die
CMD-EXEC-Auftragsschritte zuweisen. Ansonsten musst Du wirklich den Besitz
des Auftrages übernehmen.
Wo finde ich die Eigenschaften des SQLAgents?
Post by Ralf Dietrich
Das kannst Du direkt auf der ersten Seite der Auftragseigenschaften (links
in der Mitte)
Ja, das Eingabefeld habe ich bereits gesehen, es ist allerdings leider
ausgegraut. Was mich allerdings wundert, ist, dass dort der Besitzer steht,
der den Auftrag aufruft. Dennoch kommt es zu der Fehlermeldung?

Gruß

Markus Broy
Ralf Dietrich
2003-09-22 17:25:14 UTC
Permalink
Hallo Markus,
Post by Markus Broy
Hallo Ralf,
Wo finde ich die Eigenschaften des SQLAgents?
Server > Verwalten > rechts *klick auf SQL Server-Agent :-)
Registerkarte Auftragssystem (ganz unten)
ansonsten siehe BOL> Stichworte von Elmar
Post by Markus Broy
Ja, das Eingabefeld habe ich bereits gesehen, es ist allerdings leider
ausgegraut. Was mich allerdings wundert, ist, dass dort der Besitzer
steht, der den Auftrag aufruft. Dennoch kommt es zu der Fehlermeldung?
Bist Du sa?, wenn nicht, kannst Du das nicht ändern :-o
CU Ralf

Elmar Boye
2003-09-22 14:43:02 UTC
Permalink
Hallo Markus,
Post by Markus Broy
meine Frage bezieht sich auf das Ausführen von "CmdExec"-Aufträgen.
"Aus Sicherheitsgründen kann nur der Auftragsbesitzer oder ein
Mitglied der sysadmin-Rolle die Definition eines vorhandenen Auftrags
ändern, den Auftrag starten und beenden oder einen anderen Benutzer
zum Besitzer eines Auftrags machen."
Die sysadmin-Rolle soll dem User, der einen Auftrag anlegen und auf
Termin setzen soll, nicht gewährt werden. Nach der Info aus der
Hilfe, müsste es ja ausreichen, wenn der User gleichzeitig Besitzer
des Auftrags ist. Doch scheinabr ist er auch dann nicht Besitzer,
wenn er den Auftrag selbst anlegt. Jedenfalls kommt es bei der
"Nicht-Systemadministratoren wurde die Berechtigung zur Ausführung von
CmdExec-Auftragsschritten verweigert. Fehler bei Schritt ..."
Wie kann ich Besitzer eines Auftrags werden? Und wo kann ich dies
einsehen? - Oder geht es doch nur als sysadmin?
Bei der obigen Fehlermeldung gehts weniger um Besitzer oder Nicht-
Besitzer.

Für xp_cmdshell und Co. gilt, dass nur für Mitglieder der Sysadminrolle
die Aufträge unter dem SQL Server Dienstkonto ausgeführt werden. Für
alle anderen muss das Proxy Konto für den SQL Server Agent konfiguriert
werden -> Eigenschaftseite im Enterprise Manager. Auch sind die
Standard-Ausführungsberechtigungen für xp_cmdshell zunächst auf die
sysadmin begrenzt. (siehe auch xp_sqlagent_proxy_account und die
Beschreibung zu xp_cmdshell).

Gruss
Elmar
Loading...