Wiem, że możemy sprawdzić loginy i zdefiniowanych użytkowników za pomocą GUI w SQL Server, ale zastanawiam się, jak możemy to sprawdzić za pomocą skryptu.
Uruchomiłem poniższe zapytanie, ale pokazuje ono Principal_id, którego nie jestem pewien, jak zmapować, aby uzyskać poziom uprawnień.
SELECT * FROM Sys.login_token
Czy jest więc jakiś wbudowany zapisany proces, który może wyświetlać dane logowania i użytkowników z ich poziomem uprawnień ?
Dziękuję Ci.
Odpowiedzi:
Nie jestem pewien, czy istnieje wbudowany sposób, ale wypróbuj to zapytanie dla podmiotów głównych serwera:
Zasadniczo to, co robi, otrzymuje uprawnienia przyznane i odmówione, i łączy je z członkostwem w roli. Powinno to dać ci krótkie spojrzenie na bezpieczeństwo logowania do serwera. Daj mi znać, jeśli tego właśnie szukasz.
źródło
CAST([srvperm].[state_desc] AS VARCHAR(MAX)) + ' ' + CAST(srvperm.[permission_name] AS VARCHAR(MAX)) + ' TO [' + CAST(srvprin.name AS VARCHAR(MAX)) + '];' as GrantQuery
co pomaga replikować te uprawnienia, jeśli migrujesz serwer :)Spróbuj tego - wyświetli się lista użytkowników, obiektów i uprawnień, które mają na tych obiektach:
Powinieneś także sprawdzić funkcję sys.fn_my_permissions:
http://msdn.microsoft.com/en-us/library/ms188367.aspx
Oto kilka linków, które powinny Ci również pomóc:
ZEZWOLENIA: http://msdn.microsoft.com/en-us/library/ms191291.aspx
SYS.DATABASE_PERMISSIONS: http://msdn.microsoft.com/en-us/library/ms188367.aspx
Mam nadzieję, że to Ci pomoże.
źródło