Chciałbym skonfigurować użytkownika „czytającego” w mojej instancji SQL Server 2012. Chciałbym dać mu prawo do wykonania dowolnej procedury składowanej, funkcji lub bezpośredniej instrukcji SQL, która pobiera dane ze wszystkich tabel i widoków, ale nie może aktualizować ani wstawiać (tj. Niczego czytać i nic nie pisać).
Czy mogę to skonfigurować bez wyraźnego nadania uprawnień do każdej funkcji lub procedury składowanej według nazwy, ale raczej przyznać mu prawo wykonywania dowolnej funkcji lub procedury składowanej, po prostu zabierając prawo do modyfikowania tabel?
Czy coś się zmieni, jeśli zamiast tego uruchomię SQL Server 2008?
Wyjaśnienia i uzupełnienia:
- Jeśli procedura przechowywana zmienia dane, użytkownik powinien otrzymać komunikat o błędzie (albo odmawia modyfikacji, albo całkowicie odmawia dostępu do procedury przechowywanej).
- Jeśli potencjalne rozwiązanie obejmuje odmowę uprawnień, czy mogę po prostu nie przyznać pewnych uprawnień zamiast odmowy?
- Czy odmowa może być zastosowana do wszystkich tabel, widoków itp. (Istniejących teraz i w przyszłości) w bazie danych w jednym poleceniu?
GRANT
aby udzielić uprawnień, DENY
odmówić uprawnień i REVOKE
usunąć GRANT
lub DENY
. Bez GRANT
lub DENY
użytkownik może dziedziczyć uprawnienia, powiedzmy od uzyskania dostępu do procedury przechowywanej.
DENY DELETE, INSERT, UPDATE
korzystasz z bazy danych lub schematu, uważam, że wpłynie to tylko na tabele i widoki.