SQL Server Найти наименьшие привилегии для учетной записи пользователя - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть поставщик, который установил базу данных приложения на один из моих экземпляров SQL Server 2012.Он сказал мне, что для использования учетной записи SQL Auth, используемой приложением, требуется средство чтения данных БД, средство записи данных, владелец БД и системный администратор.Это не имеет смысла для меня, потому что сисадмин не будет нуждаться в других ролях.После установки я удалил sysadmin, и в учетной записи были данные чтения и записи.Приложение перестало работать.

Поэтому я ищу несколько советов и идей для определения минимальных привилегий, требуемых для пользователя приложения.Я вижу, что в базе данных есть хранимые процедуры, но нет никаких функций, типов, сборок, поэтому я хотел бы просто создать роль со всеми необходимыми грантами.Владелец БД будет лучше, чем системный администратор.Я мог бы жить с этим.

1 Ответ

0 голосов
/ 07 декабря 2018

Это зависит от того, что приложение должно делать.Если ваше приложение считывало только данные, тогда роль администратора данных.Если он читает и пишет в базу данных, и читатель и писатель будет хорошо.Обратите внимание, что запись данных включает только вставку и обновление, а не изменение или изменение.В большинстве случаев вы можете назначить серию ролей и не предоставлять доступ для входа в систему таким командам, как усечение или удаление таблиц - очевидно, что приложение с богатыми полномочиями было бы плохой идеей.

Вот списоквсе возможные роли, которые вы можете назначить и для чего каждая из них.Надеемся, что понимание того, что делает приложение, поможет вам более гибко назначать эти роли.

Предопределенные роли базы данных

Возможно, вам придется создать свою собственную, но у вас есть доступ к несколькимпредопределенные роли базы данных:

  • db_owner: участники имеют полный доступ.
  • db_accessadmin: участники могут управлять группами Windows и входами в SQL Server.
  • db_datareader: участники могут читать всеdata.
  • db_datawriter: Члены могут добавлять, удалять или изменять данные в таблицах.
  • db_ddladmin: Члены могут запускать операторы динамически подключаемой библиотеки (DLL).
  • db_securityadmin: Члены могут изменять членство в ролях и управлять разрешениями.
  • db_bckupoperator: Члены могут создавать резервные копии базы данных.
  • db_denydatareader: Члены не могут просматривать данные в базе данных.
  • db_denydatawriter: Участники не могут изменять или удалять данные в таблицах или представлениях.

Фиксированные роли

Фиксированные роли сервераприменяются ко всему серверу, и есть несколько предопределенных ролей сервера:

  • SysAdmin: любой участник может выполнять любые действия на сервере.
  • ServerAdmin: любой участник может устанавливать параметры конфигурации на сервере..
  • SetupAdmin: любой участник может управлять связанными серверами и параметрами и задачами запуска SQL Server.
  • Администратор безопасности: любой участник может управлять безопасностью сервера.
  • ProcessAdmin: любой участник можетуничтожение процессов, запущенных на SQL Server.
  • DbCreator: любой участник может создавать, изменять, удалять и восстанавливать базы данных.
  • DiskAdmin: любой участник может управлять дисковыми файлами SQL Server.
  • BulkAdmin: любой участник может выполнить команду массовой вставки.
...