Mam testową bazę danych, z którą mam problemy z uprawnieniami.
Nie mogę uzyskać dostępu do bazy danych raportowania, a dokumentacja pomocy aplikacji mówi:
Resolution:
1. Launch the SQL Server Management Studio and connect to the database server(s) hosting the Vision and Reporting Server databases.
2. Expand the security folder.
3. Select logins and right click on the <username> user and choose properties.
4. Click the User Mapping tab
5.Make sure the following databases are selected in the Users mapped to this Login:
ReportServer
ReportServerTempDB
Your Vision databases
This maps the login/user to the respective databases.
6. As you select each database (including your Vision database), select the db_owner role in the Database role membership for: section. You must select this option for each database.
Gdy to robię, pojawia się następujący błąd:
"Create failed for user '<servername>\<username>'. User, group, or role '<servername>\<username>' already exists in the current database. (Microsoft SQL Server, Error: 15023)"
Przejrzałem ten błąd i wypróbowałem następujące polecenie w każdej bazie danych:
ALTER USER [<username>] WITH LOGIN = [<username>]
Komunikat wskazywał, że polecenia zostały wykonane pomyślnie, ale nadal pojawia się powyższy błąd, gdy próbuję zmapować każdą bazę danych zgodnie z instrukcjami powyżej.
czego mi brakuje?
Komentarz Per Kin (dzięki) Próbowałem: - Kliknąłem użytkownika prawym przyciskiem myszy i wybrałem: Skrypt Zaloguj się jako> Upuść i utwórz do> Nowe okno zapytania. - Uruchomiłem wynikowe zapytanie i próbowałem zmapować role użytkowników, wybierając ponownie dwie pozostałe bazy danych i db_owner, ale nadal pojawia się ten sam komunikat o błędzie, jak powyżej.
Myśli??
Korzystam z Auto_Fix za pomocą
sp_change_users_login
w moim środowisku programistycznym, aby naprawić takie problemy (błąd 15023). Unikaj używania Auto_Fix w sytuacjach wrażliwych z punktu widzenia bezpieczeństwa.Należy również pamiętać, że ta funkcja może zostać usunięta w przyszłej wersji Microsoft SQL Server.
Inne referencje:
źródło
To właściwe podejście.
W przeciwnym razie przejdź do:
Bezpieczeństwo> Loginy> (twoja nazwa użytkownika)> Właściwości> Mapowanie użytkowników
i ponownie przypisz tego użytkownika do wybranej bazy danych.
Możesz użyć następującego zapytania w kontekście bazy danych, aby sprawdzić, czy nie ma sierot:
źródło
przejdź do głównej bazy danych i usuń użytkownika
źródło