Udostępnij za pośrednictwem


Stałe role bazy danych agenta programu SQL Server

Dotyczy:programu SQL ServerAzure SQL Managed Instance

Ważne

W Azure SQL Managed Instance większość, ale nie wszystkie funkcje agenta programu SQL Server są obecnie obsługiwane. Aby uzyskać szczegółowe informacje, zobacz Różnice języka T-SQL usługi Azure SQL Managed Instance z programu SQL Server.

Program SQL Server ma następujące msdb stałe role bazy danych, które zapewniają administratorom dokładną kontrolę nad dostępem do agenta programu SQL Server. Role wymienione od najmniej do najbardziej uprzywilejowanego dostępu to:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Gdy użytkownicy, którzy nie są członkami jednej z tych ról, są połączeni z programem SQL Server w programie SQL Server Management Studio, węzeł agenta programu SQL Server w Eksploratorze obiektów nie jest widoczny. Użytkownik musi być członkiem jednej z tych stałych ról bazy danych lub członkiem stałej roli serwera sysadmin do korzystania z agenta programu SQL Server.

Uprawnienia stałych ról bazy danych agenta programu SQL Server

Uprawnienia roli bazy danych agenta programu SQL Server są koncentryczne względem siebie. Innymi słowy, bardziej uprzywilejowane role dziedziczą uprawnienia mniej uprzywilejowanych ról w obiektach agenta programu SQL Server (w tym alerty, operatory, zadania, harmonogramy i serwery proxy). Jeśli na przykład członkowie SQLAgentUserRole z najniższymi uprawnieniami otrzymali dostęp do proxy_A, członkowie zarówno SQLAgentReaderRole, jak i SQLAgentOperatorRole automatycznie mają dostęp do tego proxy, mimo że dostęp do proxy_A nie został im jawnie udzielony. Może to mieć wpływ na zabezpieczenia, które zostały omówione w poniższych sekcjach dotyczących każdej roli.

Uprawnienia SQLAgentUserRole

SQLAgentUserRole to najmniej uprzywilejowane role stałej bazy danych agenta programu SQL Server. Ma uprawnienia tylko do operatorów, zadań lokalnych i harmonogramów zadań. Członkowie SQLAgentUserRole mają uprawnienia tylko do lokalnych zadań i harmonogramów zadań, które są przez nich posiadane. Nie mogą używać zadań wieloserwerowych (zadań serwera głównego i docelowego) i nie mogą zmienić własności zadania, aby uzyskać dostęp do zadań, których jeszcze nie posiadają. Członkowie SQLAgentUserRole mogą wyświetlać listę dostępnych serwerów proxy tylko w oknie dialogowym Właściwości kroku zadania programu SQL Server Management Studio. Tylko węzeł Zadania w Eksploratorze obiektów programu SQL Server Management Studio jest widoczny dla elementów członkowskich SQLAgentUserRole.

Ważne

SqlAgentReaderRole i SQLAgentOperatorRole są automatycznie członkami elementu SQLAgentUserRole. Oznacza to, że członkowie programu SQLAgentReaderRole i SQLAgentOperatorRole mają dostęp do wszystkich serwerów proxy programu SQL Server Agent, które zostały przyznane dla elementu SQLAgentUserRole i mogą korzystać z tych serwerów proxy.

Poniższa tabela zawiera podsumowanie uprawnień SQLAgentUserRole w obiektach agenta programu SQL Server.

Akcja Operatorów Zadania lokalne (tylko należące do firmy) Harmonogramy zadań (tylko harmonogramy należące do firmy) Proksje
Tworzenie/modyfikowanie/usuwanie Nie. Tak

Nie można zmienić własności zadania.
Tak Nie.
Wyświetl listę (wyliczenie) Tak

Może uzyskać listę dostępnych operatorów do użycia w programie sp_notify_operator i okno dialogowe Właściwości zadania programu Management Studio.
Tak Tak Tak

Lista serwerów proxy dostępnych tylko w oknie dialogowym Właściwości kroku zadania programu Management Studio.
Włączanie/wyłączanie Nie. Tak Tak Nie dotyczy
Wyświetlanie właściwości Nie. Tak Tak Nie.
Wykonywanie/zatrzymywanie/uruchamianie Nie dotyczy Tak Nie dotyczy Nie dotyczy
Wyświetlanie historii zadań Nie dotyczy Tak Nie dotyczy Nie dotyczy
Usuwanie historii zadań Nie dotyczy Nie.

Członkowie SQLAgentUserRole muszą mieć wyraźnie przyznane EXECUTE uprawnienia sp_purge_jobhistory do usuwania historii zadań na zadaniach, które posiadają. Nie mogą usuwać historii zadań dla innych zadań.
Nie dotyczy Nie dotyczy
Dołączanie/odłączanie Nie dotyczy Nie dotyczy Tak Nie dotyczy

Uprawnienia SQLAgentReaderRole

SqlAgentReaderRole zawiera wszystkie uprawnienia SQLAgentUserRole , a także uprawnienia do wyświetlania listy dostępnych zadań wieloserwerowych, ich właściwości i historii. Członkowie tej roli mogą również wyświetlać listę wszystkich dostępnych zadań i ich harmonogramów oraz ich właściwości, a nie tylko tych zadań i harmonogramów, których są właścicielami. Członkowie SQLAgentReaderRole nie mogą zmieniać własności zadań, aby uzyskać dostęp do zadań, których jeszcze nie posiadają. Tylko węzeł Zadania w Eksploratorze obiektów programu SQL Server Management Studio jest widoczny dla członków elementu SQLAgentReaderRole.

Ważne

Członkowie elementu SQLAgentReaderRole są automatycznie członkami elementu SQLAgentUserRole. Oznacza to, że członkowie elementu SQLAgentReaderRole mają dostęp do wszystkich serwerów proxy agenta programu SQL Server, które zostały przyznane dla elementu SQLAgentUserRole i mogą korzystać z tych serwerów proxy.

Poniższa tabela zawiera podsumowanie uprawnień SQLAgentReaderRole w obiektach agenta programu SQL Server.

Akcja Operatorów Zadania lokalne Zadania wieloserwerowe Harmonogramy zadań Proksje
Tworzenie/modyfikowanie/usuwanie Nie. Tak (tylko własne zadania)

Nie można zmienić własności zadania.
Nie. Tak (tylko harmonogramy należące do mnie) Nie.
Wyświetl listę (wyliczenie) Tak

Może uzyskać listę dostępnych operatorów do użycia w programie sp_notify_operator i okno dialogowe Właściwości zadania programu Management Studio.
Tak Tak Tak Tak

Lista serwerów proxy dostępnych tylko w oknie dialogowym Właściwości kroku zadania programu Management Studio.
Włączanie/wyłączanie Nie. Tak (tylko posiadane zadania) Nie. Tak (tylko harmonogramy będące własnością użytkownika) Nie dotyczy
Wyświetlanie właściwości Nie. Tak Tak Tak Nie.
Edytuj właściwości Nie. Tak (tylko posiadane zadania) Nie. Tak (tylko własne harmonogramy) Nie.
Wykonywanie/zatrzymywanie/uruchamianie Nie dotyczy Tak (tylko należące do niego zadania) Nie. Nie dotyczy Nie dotyczy
Wyświetlanie historii zadań Nie dotyczy Tak Tak Nie dotyczy Nie dotyczy
Usuwanie historii zadań Nie dotyczy Nie.

Członkom SQLAgentReaderRole musi być jawnie przyznane uprawnienie EXECUTE na sp_purge_jobhistory do usuwania historii zadań w przypadku zadań, które posiadają. Nie mogą usuwać historii zadań dla innych zadań.
Nie. Nie dotyczy Nie dotyczy
Dołączanie/odłączanie Nie dotyczy Nie dotyczy Nie dotyczy Tak (tylko harmonogramy, które są w posiadaniu) Nie dotyczy

Uprawnienia SQLAgentOperatorRole

SQLAgentOperatorRole jest najbardziej uprzywilejowaną ze stałych ról baz danych agenta SQL Server. Obejmuje wszystkie uprawnienia sqlAgentUserRole i SQLAgentReaderRole. Członkowie tej roli mogą również wyświetlać właściwości operatorów i serwerów proxy oraz wyliczać dostępne serwery proxy i alerty na serwerze.

Członkowie sqlAgentOperatorRole mają dodatkowe uprawnienia do zadań lokalnych i harmonogramów. Mogą wykonywać, zatrzymywać lub uruchamiać wszystkie zadania lokalne, a także usuwać historię zadań dla dowolnego zadania lokalnego na serwerze. Mogą również włączać lub wyłączać wszystkie zadania lokalne i harmonogramy na serwerze. Aby włączyć lub wyłączyć zadania lokalne lub harmonogramy, członkowie tej roli muszą używać składowanych procedur sp_update_job i sp_update_schedule. Tylko parametry określające nazwę lub identyfikator zadania lub harmonogramu oraz parametr @enabled mogą być określone przez członków SQLAgentOperatorRole. Jeśli określą inne parametry, wykonanie tych procedur składowanych zakończy się niepowodzeniem. Członkowie sqlAgentOperatorRole nie mogą zmienić własności zadań, aby uzyskać dostęp do zadań, których jeszcze nie posiadają.

Węzły Zadania, Alerty, Operatory i Serwery proxy w Eksploratorze obiektów programu SQL Server Management Studio są widoczne dla członków SQLAgentOperatorRole. Tylko węzeł Dzienniki błędów nie jest widoczny dla członków tej roli.

Ważne

Członkowie sqlAgentOperatorRole są automatycznie członkami sqlAgentUserRole i SQLAgentReaderRole. Oznacza to, że członkowie SQLAgentOperatorRole mają dostęp do wszystkich serwerów proxy agenta SQL Server, którym udzielono uprawnień w rolach SQLAgentUserRole lub SQLAgentReaderRole, i mogą używać tych serwerów proxy.

Poniższa tabela zawiera podsumowanie uprawnień SQLAgentOperatorRole w obiektach agenta programu SQL Server.

Akcja Powiadomienia Operatorów Zadania lokalne Zadania wieloserwerowe Harmonogramy zadań Proksje
Tworzenie/modyfikowanie/usuwanie Nie. Nie. Tak (tylko należące do niego zadania)

Nie można zmienić własności zadania.
Nie. Tak (tylko własne harmonogramy) Nie.
Wyświetl listę (enumeracja) Tak Tak

Może uzyskać listę dostępnych operatorów do użycia w programie sp_notify_operator i okno dialogowe Właściwości zadania programu Management Studio.
Tak Tak Tak Tak
Włączanie/wyłączanie Nie. Nie. Tak

Członkowie SQLAgentOperatorRole mogą włączać lub wyłączać lokalne zadania, których nie są właścicielami, korzystając z procedury przechowywanej sp_update_job i określając wartości parametrów @enabled oraz @job_id (lub @job_name). Jeśli członek tej roli określa jakiekolwiek inne parametry dla tej procedury składowanej, wykonanie procedury nie powiedzie się.
Nie. Tak

Członkowie SQLAgentOperatorRole mogą włączać lub wyłączać harmonogramy, których nie posiadają, korzystając z procedury składowanej sp_update_schedule i określając wartości parametrów @enabled i @schedule_id (lub @name). Jeśli członek tej roli określi jakiekolwiek inne parametry dla tej procedury składowanej, wykonanie procedury zakończy się niepowodzeniem.
Nie dotyczy
Wyświetlanie właściwości Tak Tak Tak Tak Tak Tak
Edytuj właściwości Nie. Nie. Tak (tylko posiadane zadania) Nie. Tak (tylko harmonogramy będące w posiadaniu) Nie.
Uruchom/Zatrzymaj/Startuj Nie dotyczy Nie dotyczy Tak Nie. Nie dotyczy Nie dotyczy
Wyświetlanie historii zadań Nie dotyczy Nie dotyczy Tak Tak Nie dotyczy Nie dotyczy
Usuwanie historii zadań Nie dotyczy Nie dotyczy Tak Nie. Nie dotyczy Nie dotyczy
Dołączanie/odłączanie Nie dotyczy Nie dotyczy Nie dotyczy Nie dotyczy Tak (tylko harmonogramy należące) Nie dotyczy

Przypisywanie wielu ról do użytkowników

Członkowie stałej roli serwera sysadmin mają dostęp do wszystkich funkcji agenta programu SQL Server. Jeśli użytkownik nie jest członkiem roli sysadmin , ale jest członkiem więcej niż jednej stałej roli bazy danych agenta programu SQL Server, ważne jest, aby pamiętać koncentryczny model uprawnień tych ról. Ponieważ bardziej uprzywilejowane role zawsze zawierają wszystkie uprawnienia mniej uprzywilejowanych ról, użytkownik będący członkiem więcej niż jednej roli automatycznie ma uprawnienia skojarzone z najbardziej uprzywilejowaną rolą, której członkiem jest użytkownik.