Pracuję z istniejącą bazą danych i próbuję napisać kwerendę sql, aby uzyskać wszystkie informacje o koncie, w tym poziomy uprawnień. Ma to na celu audyt bezpieczeństwa. Chcemy zrzucić wszystkie te informacje w czytelny sposób, aby ułatwić porównywanie. Mój problem polega na tym, że istnieje lista mostków/linków dla uprawnień, więc istnieje wiele rekordów na użytkownika. Chcę uzyskać wyniki z wszystkimi uprawnieniami dla jednego użytkownika w jednym wierszu. Oto przykład:Pomoc dotycząca zapytań SQL z tabelą mostów
Table_User:
UserId UserName
1 John
2 Joe
3 James
Table_UserPermissions:
UserId PermissionId Rights
1 10 1
1 11 2
1 12 3
2 11 2
2 12 3
3 10 2
PermissionID linki do tabeli z nazwą uprawnień i co robi. Prawo jest jak 1 = 2 = widzenia, modyfikować i itp
Co wrócę z podstawowej kwerendy dla użytkownika 1 jest:
UserId UserName PermissionId Rights
1 John 10 1
1 John 11 2
1 John 12 3
Co chciałbym coś takiego:
UserId UserName Permission1 Rights1 Permission2 Right2 Permission3 Right3
1 John 10 1 11 2 12 3
Idealnie chciałbym to dla wszystkich użytkowników. Najbliższą rzeczą, którą znalazłem jest funkcja Pivot w SQL Server 2005. http://geekswithblogs.net/lorint/archive/2006/08/04/87166.aspx Problem z tym, co mogę powiedzieć, to to, że muszę podać nazwę każdej kolumny dla każdego użytkownika i nie jestem pewien, jak uzyskać poziom praw. Z prawdziwymi danymi mam około 130 użytkowników i 40 różnych uprawnień.
Czy jest jeszcze inny sposób z usługą sql, że mogę to zrobić?
I * wiem * Prawie dokładnie to pytanie na tej stronie widziałem co najmniej dwa razy. Ale nie mogę tego znaleźć. –