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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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