Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Права пользователей / 21 сообщений из 21, страница 1 из 1
23.12.2019, 18:38
    #39907217
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Есть некая CRM система, в основе СУБД MS SQL server. Хочу создать учетку, которая будет иметь доступ только одной базе на чтение (баз несколько). При создании нового имени для входа новой учетке автоматически присваевается роль public. Как я понимаю, у роли public на данном сервере открыт доступ ко всем базам на чтение и апдейт (как минимум). При создании новой учетки я могу расшарить её права до админа, поставив дополнительно галочку sysadmin (в пункте "Server Roles"), а вот снять галочку public нельзя. Даже если я в пункте "сопоставление пользователей" (user mapping) поставлю галочку на нужную мне базу и дам пользователю роль db_datareader, то у него все равно унаследуются права на апдейт от роли public.
Извиняюсь за сумбур, постарался донести своё понимание.
Соответственно вопросы:
1. Где я могу изменить права роли паблик? (для общего развития)
2. Как я могу запретить доступ к базам, не меняя роль паблик
Спасибо.
...
Рейтинг: 0 / 0
23.12.2019, 18:52
    #39907226
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot,

назначение прав базы можно проверить в базе. public - это роль базы данных. Разрешения проверяйте в свойствах базы и в свойствах самой роли.

Явно запретить что-либо можно установив DENY (ЗАПРЕТИТЬ по-русски).
...
Рейтинг: 0 / 0
23.12.2019, 20:03
    #39907280
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
1. Где я могу изменить права роли паблик? (для общего развития)
2. Как я могу запретить доступ к базам, не меняя роль паблик
1. Там же, где меняются права для любого пользователя или роли.
2. Достаточно не давать права на доступ к базам.
Saniacot
Как я понимаю, у роли public на данном сервере открыт доступ ко всем базам на чтение и апдейт (как минимум).
Нет, у роли паблик нет прав доступа к базам и данным.
Saniacot
Хочу создать учетку, которая будет иметь доступ только одной базе на чтение (баз несколько).
Создаёте учётку, потом даёте ей права на нужные базы с вхождением в роль датаридер (создавая в каждой из баз пользователя с таким же именем и соответствующими правами).
...
Рейтинг: 0 / 0
24.12.2019, 09:24
    #39907369
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
alexeyvg
Saniacot
1. Где я могу изменить права роли паблик? (для общего развития)
2. Как я могу запретить доступ к базам, не меняя роль паблик
1. Там же, где меняются права для любого пользователя или роли.
2. Достаточно не давать права на доступ к базам.
Saniacot
Как я понимаю, у роли public на данном сервере открыт доступ ко всем базам на чтение и апдейт (как минимум).
Нет, у роли паблик нет прав доступа к базам и данным.
Saniacot
Хочу создать учетку, которая будет иметь доступ только одной базе на чтение (баз несколько).
Создаёте учётку, потом даёте ей права на нужные базы с вхождением в роль датаридер (создавая в каждой из баз пользователя с таким же именем и соответствующими правами).

Спасибо за пояснения. Но всё ещё не складывается картина. Попробую объяснить. У меня на сервере 3 БД. Две были созданы до меня, одну я создал сам. Создаю имя для входа на сервере, допустим TestUser с аутентификацией по проверке подлинности SQL Server. Больше ничего не меняю, роль сервера по дефолту public. По итогу я не могу войти в свою созданную базу. Но если я создам в своей базе пользователя с именем TestUser и дам ему роль db_datareader он сможет зайти в мою базу и читать данные (но не изменять их).
Этот механизм мне понятен.
Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается?
...
Рейтинг: 0 / 0
24.12.2019, 10:05
    #39907380
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается?
В той БД, к которой есть доступ, разрешен гость.
...
Рейтинг: 0 / 0
24.12.2019, 10:23
    #39907386
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
invm
Saniacot
Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается?
В той БД, к которой есть доступ, разрешен гость.

Спасибо!
А какой тогда правильный способ изменить права доступа к базе, где активен гость? Если я создаю в этой базе пользователя и даю ему права db_datareader, то он все равно может изменять данные (так как похоже, что такие права есть у гостя).
...
Рейтинг: 0 / 0
24.12.2019, 10:57
    #39907398
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
А какой тогда правильный способ изменить права доступа к базе, где активен гость?
Это же очевидно - изменять права у гостя. Или у роли public.
...
Рейтинг: 0 / 0
24.12.2019, 11:17
    #39907410
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
invm
Saniacot
Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается?
В той БД, к которой есть доступ, разрешен гость.
Или логин всё таки замаплен на пользователя (но пользователь может быть не обязательно с таким же именем)
Это Saniacot-у тоже нужно проверить.
Код: sql
1.
exec sp_helplogins N'TestUser'



А, прочитал следующий пост; если бы он был замаплен, то при "Если я создаю в этой базе пользователя..." была бы ошибка...
...
Рейтинг: 0 / 0
24.12.2019, 11:19
    #39907411
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
invm
Saniacot
А какой тогда правильный способ изменить права доступа к базе, где активен гость?
Это же очевидно - изменять права у гостя. Или у роли public.

А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик.
...
Рейтинг: 0 / 0
24.12.2019, 11:20
    #39907413
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
invm
пропущено...
Это же очевидно - изменять права у гостя. Или у роли public.

А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик.
Можно этому новому пользователю явно запретить то, что нужно запретить.

Хотя это кривой подход.
...
Рейтинг: 0 / 0
24.12.2019, 11:25
    #39907415
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot,

отвечу не так как тут принято..
БД - это способ хранения инфы. Доступ в системе - это логическая составляющая системы (доступ может отсутствовать, как и сама бд).

Права доступа субъекты должны распространяться на объекты в системе, а как они созданы и что юзают - это уже физика а не логика... Если Ваша система - своя БД, то да = доступ на уровне БД имеет смысл...

как то так
(круглый)
...
Рейтинг: 0 / 0
24.12.2019, 11:28
    #39907418
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
alexeyvg
Saniacot
пропущено...

А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик.
Можно этому новому пользователю явно запретить то, что нужно запретить.

Хотя это кривой подход.

Спасибо за совет!
Но для меня странно, что права гостя перевешивают права, явно заданные в учетке пользователя.
...
Рейтинг: 0 / 0
24.12.2019, 11:31
    #39907421
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик.
Гость не влияет, а можно ли не трогать паблик завист от того, что нужно получить на выходе.
...
Рейтинг: 0 / 0
24.12.2019, 11:52
    #39907424
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
invm
Saniacot
А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик.
Гость не влияет, а можно ли не трогать паблик завист от того, что нужно получить на выходе.

Ну допустим у меня гость дает доступ на чтение и редактирование таблиц БД. А на выходе мне нужно получить только чтение.
...
Рейтинг: 0 / 0
24.12.2019, 13:29
    #39907471
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
Ну допустим у меня гость дает доступ на чтение и редактирование таблиц БД
Если вы явно создали пользователя, то гость на его разрешения никак не влияет.
...
Рейтинг: 0 / 0
24.12.2019, 14:23
    #39907501
Saniacot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
invm
Saniacot
Ну допустим у меня гость дает доступ на чтение и редактирование таблиц БД
Если вы явно создали пользователя, то гость на его разрешения никак не влияет.

Ну пользователь на уровне сервера (имя входа) имел доступ к базе (как мы выяснили через гостя). Он там мог и селектить, и апдейтить. После чего я на уровне базы создал этого пользователя и дал ему права db_reader. Мне казалось, что эти права апдейтить не должны позволять. Но он все равно имеет право на апдейт.
...
Рейтинг: 0 / 0
24.12.2019, 16:40
    #39907568
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot,

Еще раз - гость никак не влияет на разрешения другого пользователя. Смотрите разрешения у роли public.
...
Рейтинг: 0 / 0
24.12.2019, 17:36
    #39907604
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
invm
пропущено...
Если вы явно создали пользователя, то гость на его разрешения никак не влияет.

Ну пользователь на уровне сервера (имя входа) имел доступ к базе (как мы выяснили через гостя). Он там мог и селектить, и апдейтить. После чего я на уровне базы создал этого пользователя и дал ему права db_reader. Мне казалось, что эти права апдейтить не должны позволять. Но он все равно имеет право на апдейт.
Похоже, вы неправильно представляете, как работает система безопасности в СУБД, в т.ч. в SQL Server. Выглядит так, что вы полагаете, будто набор прав, выданный непосредственно пользователю, "перекроет" права, которые он получает из других источников (таких, как членство в ролях или группах Windows / AD). Эти права не перекрываются, они складываются.

Выдача юзеру db_datareader никак не повлияет на его способность писать в БД. Вместо этого вам нужно включать его в db_denydatawriter, потому что deny имеет приоритет над grant, если только он не владелец базы и не член роли sysadmin.
...
Рейтинг: 0 / 0
24.12.2019, 17:59
    #39907618
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot
alexeyvg
Можно этому новому пользователю явно запретить то, что нужно запретить.

Хотя это кривой подход.

Спасибо за совет!
Но для меня странно, что права гостя перевешивают права, явно заданные в учетке пользователя.
Я написал " запретить "!

Нужно как уже написали несколько человек, запретить лишние права, то есть сделать DENY.
Ennor Tiegael
Похоже, вы неправильно представляете, как работает система безопасности в СУБД, в т.ч. в SQL Server
Честно говоря, даже не припомню каких то ОС, Информационных Систем, приложений, где было бы по другому.

Везде разрешения складываются, запреты складываются, и суммарный набор запретов имеет приоритет над суммарным набором разрешений.
...
Рейтинг: 0 / 0
25.12.2019, 06:13
    #39907707
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
alexeyvg
Ennor Tiegael
Похоже, вы неправильно представляете, как работает система безопасности в СУБД, в т.ч. в SQL Server
Честно говоря, даже не припомню каких то ОС, Информационных Систем, приложений, где было бы по другому.

Везде разрешения складываются, запреты складываются, и суммарный набор запретов имеет приоритет над суммарным набором разрешений.
Я тоже не припомню, но мало ли, какой у автора бэкграунд, может у них какая-нить самописная / узко-отраслевая приблуда так организована. The Universe is big :)
...
Рейтинг: 0 / 0
26.12.2019, 13:24
    #39908414
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Права пользователей
Saniacot,

создайте роль или пользователя (введите нужных пользователей в эту роль) и явно запретите ему что-либо делать, я об этом ещё во втором сообщении написал. Явный запрет перекрывает явные разрешения.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Права пользователей / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]