Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Права. Читать все таблицы, а измененять только в одной.  [new]
user89
Member

Откуда:
Сообщений: 2083
Здравствуйте! В базе есть пользователь userPortal, который должен только читать данные из всех таблиц. Сделал это, поставив ему в свойствах базы галочки db_datareader, db_denydatawriter. Всё ОК.
Через некоторое время появилась потребность дать ему права insert и update на одну новую таблицу PortalParams.
В свойствах пользователя поставил галочку db_datawriter (модифицировать таблицы он не может, поскольку db_denydatawriter имеет приоритет), а в свойствах таблицы PortalParams поставил все галочки на Grant.
Думал, что DataWriter на базу+GrantWriter на таблицу, перебьет DenyWriter в свойствах базы. Видать не перебило, т.к. при выполнении update ошибка
Запрещено разрешение "UPDATE" на объект "PortalParams" базы данных "Reporting", схемы "dbo"

Пока вижу 2 решения:
- модифицировать таблицу через хранимые процедуры
- таблицу перенести в новую схему, и дать права уже на схему

Уверен, есть способ попроще...
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)   Jun 28 2012 08:36:30   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor) 
31 янв 14, 11:14    [15498989]     Ответить | Цитировать Сообщить модератору
 Re: Права. Читать все таблицы, а измененять только в одной.  [new]
Glory
Member

Откуда:
Сообщений: 104751
user89
В свойствах пользователя поставил галочку db_datawriter (модифицировать таблицы он не может, поскольку db_denydatawriter имеет приоритет),

Зачем _запрещать_ что-то явно ? У пользователя без db_denydatawriter разве есть права на изменение таблиц ?
31 янв 14, 11:17    [15499022]     Ответить | Цитировать Сообщить модератору
 Re: Права. Читать все таблицы, а измененять только в одной.  [new]
user89
Member

Откуда:
Сообщений: 2083
Glory,

да, действительно. Снял галочки db_datawriter, db_denydatawriter. Попробовал сделать insert/update в других таблицах, не получилось (как и должно быть), а в таблице PortalParams - получилось. Спасибо!
31 янв 14, 11:26    [15499113]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить