Чи є різниця між наданням користувача SELECT користувачеві та додаванням їх до ролі db_datareader?


9

Мене попросили надати SELECT, INSERTі UPDATEдо цього користувачеві для всіх таблиць в базі даних. Я в кінцевому підсумку доданні db_datareaderі надання їм INSERTі UPDATEна рівні бази даних.

Але це мене змусило задуматися, яка різниця (якщо така є) між наданням SELECTдозволу користувача на рівні бази даних або додаванням їх до db_datareaderролі? І чи є найкраща практика так чи інакше?

Відповіді:


7

Рік Байхам має пост WIKI, в якому відображається фіксований сервер і ролі фіксованої бази даних та їх карта. Ви можете подивитися тут: http://social.technet.microsoft.com/wiki/contents/articles/database-engine-fixed-server-and-fixed-database-roles.aspx

На графіку видно, що роль db_datareader ідентична GRANT SELECT ON [база даних]. Так що це все ще чудово використовувати, але рекомендується перейти від цих ролей до більш детальних команд. Деякі інші ролі фіксованої бази даних для більшості людей менш чітко визначені. Використання явних команд призводить до більшої чіткості при наданні прав на звіт.

Очевидно, ви знаєте, як надати більш дрібні дозволи. Я намагаюся відірватися від старих ролей, коли це можливо, але db_owner (наприклад) - це важка звичка ламатися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.