Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Версия: Microsoft SQL Server 2008 (SP2) - 10.0.4000.0 (X64)
Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)
Уровень совместимости БД: SQL 2005 (90)
Задача: Для пользователя For1C в БД запретить любой доступ ко всем таблицам, кроме трех по чтению.
И как это сделать, если у него роль Public из которой его выкинуть нельзя по определению?
Пробовал:
DENY DELETE, INSERT, REFERENCES, SELECT, UPDATE TO for1c;
REVOKE  SELECT ON table1   TO for1c;
GRANT SELECT ON dbo.table1 TO For1C
Не помогло. Deny действовал для всех таблиц и View. Пришлось отменить:
REVOKE DELETE, INSERT, REFERENCES, SELECT, UPDATE  FROM for1c
Подскажите пожалуйста, где ошибка? Где копать? Решение?

И на всякий случай:
SELECT * FROM fn_my_permissions(NULL, 'SERVER')
server		CONNECT SQL
server		VIEW ANY DATABASE
server		VIEW SERVER STATE

В текущей БД
SELECT * FROM fn_my_permissions('For1C', 'USER');
For1C		IMPERSONATE
For1C		VIEW DEFINITION
For1C		ALTER
For1C		CONTROL
18 янв 11, 12:18    [10089654]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Glory
Member

Откуда:
Сообщений: 104751
Александр М.
Задача: Для пользователя For1C в БД запретить любой доступ ко всем таблицам, кроме трех по чтению.
И как это сделать, если у него роль Public из которой его выкинуть нельзя по определению?

- Вообще то пользователям по-умолчанию и так не разрешено ничего
- Какая проблема с ролью public, если вы ничего не разрешали этой роли ?
18 янв 11, 12:21    [10089682]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Glory
- Какая проблема с ролью public, если вы ничего не разрешали этой роли ?

Попробую пояснить через последовательность своих действий:
1.Завел на сервере новый логин (For1C). У него по умолчанию уже роль есть роль Public. От которой не избавиться.
2. В разделе User mapping поставил галку напротив нужной БД.
Все - пользователь может читать, писать во все таблицы. Разрешение дала роль Public. На сколько я понял
18 янв 11, 12:29    [10089766]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Glory
Member

Откуда:
Сообщений: 104751
Александр М.
Glory
- Какая проблема с ролью public, если вы ничего не разрешали этой роли ?

Попробую пояснить через последовательность своих действий:
1.Завел на сервере новый логин (For1C). У него по умолчанию уже роль есть роль Public. От которой не избавиться.
2. В разделе User mapping поставил галку напротив нужной БД.
Все - пользователь может читать, писать во все таблицы. Разрешение дала роль Public. На сколько я понял

Так не бывает, что прав не назначали, а они взяли и сами появились
Значит ваш логин/пользователь включен в роли, через которые и унаследовал права
18 янв 11, 12:31    [10089783]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Еще раз - роль паблик по умолчанию не дает никаких разрешений. Если вы или кто-то другой назначили ей права, то сами себе баобабы.
18 янв 11, 12:32    [10089787]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
В какие серверные роли включен логин?
18 янв 11, 12:32    [10089794]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Гавриленко Сергей Алексеевич
В какие серверные роли включен логин?

Для For1c указана одна роль: Public
18 янв 11, 12:40    [10089867]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Glory
Member

Откуда:
Сообщений: 104751
Александр М.
Гавриленко Сергей Алексеевич
В какие серверные роли включен логин?

Для For1c указана одна роль: Public

Это для пользователя
А для логина ?
18 янв 11, 12:44    [10089911]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
Вам надо сделать наоборот
DENY SELECT ON dbo.Nottable TO For1C
и так для каждой таблицы, которую он не может сомтреть
DENY перекрывает любое разрешение
18 янв 11, 13:06    [10090120]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Glory
Member

Откуда:
Сообщений: 104751
HandKot
DENY перекрывает любое разрешение

Не все. SA/dbo/владельцу никто ничего не может запретить
18 янв 11, 13:09    [10090151]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Glory
Это для пользователя
А для логина ?


В Management Studio - Security - Logins - Server Roles : отмечено только Public
18 янв 11, 13:11    [10090177]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
я говорил касательно for1c
18 янв 11, 13:14    [10090209]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Baddy
Member

Откуда: Харьков
Сообщений: 174
дык, а что если сделать database Role с разрешением на select из нужных трех таблиц, и включить пользователя в эту роль при мапинге на нужную базу?
18 янв 11, 13:14    [10090211]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Glory
HandKot
DENY перекрывает любое разрешение

Не все. SA/dbo/владельцу никто ничего не может запретить

sp_helpuser 'for1c'
For1C	public	For1C	MyDb	dbo
18 янв 11, 13:15    [10090224]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Glory
Member

Откуда:
Сообщений: 104751
sp_helplogins 'mylogin'
18 янв 11, 13:17    [10090239]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
HandKot
Вам надо сделать наоборот
DENY SELECT ON dbo.Nottable TO For1C
и так для каждой таблицы, которую он не может сомтреть
DENY перекрывает любое разрешение

В БД сотни таблиц. И могут быть новые.
18 янв 11, 13:18    [10090251]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
iljy
Member

Откуда:
Сообщений: 8711
Александр М.,

может вы наконец посмотрите, какие права предосталены роли public?
18 янв 11, 13:19    [10090252]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
freelancerArt
Member

Откуда: Донецк
Сообщений: 450
Хм-м, может кому то поможет.... тынц
18 янв 11, 13:20    [10090264]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Glory
sp_helplogins 'mylogin'

For1C <...SID.> Help us_english yes no

For1C MyDb For1C User
18 янв 11, 13:24    [10090310]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
iljy
Member

Откуда:
Сообщений: 8711
Александр М.,

sp_helprotect @username=N'public'
sp_helprotect @username=N'for1C'
18 янв 11, 13:28    [10090379]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
iljy
Александр М.,

может вы наконец посмотрите, какие права предосталены роли public?

В БД: Security - Roles - Database Roles для Public разработчики расставили Granta по всем талицам!!!!
Только вот пусть и роль Database, однако User из public не выкинуть.
18 янв 11, 13:33    [10090435]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Александр М.
iljy
Александр М.,

может вы наконец посмотрите, какие права предосталены роли public?

В БД: Security - Roles - Database Roles для Public разработчики расставили Granta по всем талицам!!!!
Только вот пусть и роль Database, однако User из public не выкинуть.
Сделайте отдельную базу, в ней три вьюхи на ваши таблицы и выдайте права на них.
18 янв 11, 13:35    [10090450]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
iljy
Member

Откуда:
Сообщений: 8711
Александр М.
iljy
Александр М.,

может вы наконец посмотрите, какие права предосталены роли public?

В БД: Security - Roles - Database Roles для Public разработчики расставили Granta по всем талицам!!!!
Только вот пусть и роль Database, однако User из public не выкинуть.

Так чему вы тогда удивляетесь? Выкидывайте эти права. Ну или создавайте новую роль, в которой явно делайте DENY на лишние таблицы.
18 янв 11, 13:35    [10090459]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Glory
Member

Откуда:
Сообщений: 104751
Александр М.
В БД: Security - Roles - Database Roles для Public разработчики расставили Granta по всем талицам!!!!
Только вот пусть и роль Database, однако User из public не выкинуть.

Поздравьте своих разработчиков
18 янв 11, 13:35    [10090461]     Ответить | Цитировать Сообщить модератору
 Re: ограничение прав user  [new]
Александр М.
Member

Откуда:
Сообщений: 44
Glory
Поздравьте своих разработчиков

Эта задача для совсем иного проекта, который перед разработчиками не ставился. Они СВОИ ограничение доступа реализовали через роли приложения.
.
Картинка стала проясняться (для меня). Поэтому всем СПАСИБО за помощь и варианты решений.
Отдельно хочу поблагодарить iljy , Гавриленко Сергей Алексеевич.
18 янв 11, 13:55    [10090700]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить