Cześć Waldemar, dobre wieści — nic tu nie jest zepsute. Błąd 15405 ("Nie można użyć specjalnego principal 'sa'") to zachowanie zaprojektowane: sa jest wbudowanym kontem administratora systemu SQL Server i jest na stałe członkiem stałej sysadmin roli serwera, a SQL Server celowo blokuje wszelkie modyfikacje członkostwa w rolach dla tego specjalnego principa, niezależnie od tego, czy dodajesz go lub mapujesz serveradmin jako db_owner bazę danych. Nie ma też nic do zyskania z tej operacji, ponieważ sysadmin jest to nadzbiór każdej innej stałej roli serwera — może wykonywać dowolną aktywność na serwerze, włącznie ze wszystkim, co serveradmin przyznaje (zmiany konfiguracji, wyłączanie itd.) — więc sa już posiada wszystkie te uprawnienia domyślnie i nie może otrzymać więcej.
Właściwe obsługi polegają po prostu na tym, by w ogóle nie przypisywać serveradmin do . sa Jeśli robisz to, aby spełnić wymóg dostawcy aplikacji, że "logowanie musi mieć serweradmina", to wymóg jest już spełniony i przekroczony przez sysadmin. Jeśli faktycznym celem jest logowanie ograniczone do praw konfiguracyjnych na poziomie serwera bez pełnej mocy administratora systemu, stwórz dedykowane logowanie i dodaj go do roli: CREATE LOGIN [AppAdmin] WITH PASSWORD = '<strongpassword>'; ALTER SERVER ROLE [serveradmin] ADD MEMBER [AppAdmin]; — to się powiedzie, ponieważ nie jest to specjalny principal. Jako dodatkową uwagę dotyczącą bezpieczeństwa, Microsoft zaleca wyłączenie sa lub przemianowanie i używanie nazwających się logów administracyjnych do codziennej pracy, ponieważ sa jest to najczęściej atakowana nazwa konta na instancjach SQL Server działających w internecie.