Понимание разрешений SQL Server

8

Я работаю в SQL Server Management Studio против своего экземпляра SQL Server 2008 R2 Express Edition. Я пытаюсь понять, как работают разрешения.

Что я могу видеть, это (через свойства многих из этих объектов)

  1. Мой сервер Логин может быть связан с пользователем базы данных
  2. Пользователь базы данных может иметь одну или несколько ролей базы данных
  3. Одна из ролей базы данных - db_datawriter, которой принадлежит схема db_datawriter.

Однако в этот момент тропа становится холодной. Схема db_datawriter имеет страницу разрешений под своими свойствами, которая является пустой.

Что именно определяет права доступа схемы db_datawriter?

akc42
источник

Ответы:

7

У db_datawriter нет элементов на странице разрешений, потому что у него нет явных разрешений на объекты как таковые. Права подразумеваются ролью.

MSDN для db_datawriter говорит

Члены предопределенной роли базы данных db_datawriter могут добавлять, удалять или изменять данные во всех пользовательских таблицах.

Он имеет INSERT, UPDATE, DELETE для таблиц согласно другой странице MSDB. Разрешения фиксированных ролей базы данных.

Предоставлено: УДАЛИТЬ, ВСТАВИТЬ, ОБНОВИТЬ

Наконец, что говорит механизм БД (SQL Server 2008 R2)?

EXEC sp_dbfixedrolepermission 'db_datawriter'

db_datawriter   DELETE permission on any object
db_datawriter   INSERT permission on any object
db_datawriter   UPDATE permission on any object

Страницы MSDN для SQL Server 2008 находятся здесь (другая иерархия страниц)

ГБН
источник
Я думаю, что ОП спрашивает о разрешениях на схеме, а не о фиксированной роли БД. Если я не понял это?
Томас Стрингер
@ Surfer513: схема является заполнителем для роли, у нее нет разрешений
gbn
Ах, хорошо, я вижу. Спасибо за разъяснение ошибочного!
Томас Стрингер
На самом деле я пытался выяснить, дало ли db_datawriter вам право писать через представление. Я думаю, что ответ заключается в том, что вы можете это сделать, если у вас есть права доступа к базовой таблице (и соблюдаете другие условия вставки только в одну таблицу). Моя ошибка записи оказалась проблемой
повторного заполнения для