|
Права пользователей
|
|||
---|---|---|---|
#18+
Есть некая CRM система, в основе СУБД MS SQL server. Хочу создать учетку, которая будет иметь доступ только одной базе на чтение (баз несколько). При создании нового имени для входа новой учетке автоматически присваевается роль public. Как я понимаю, у роли public на данном сервере открыт доступ ко всем базам на чтение и апдейт (как минимум). При создании новой учетки я могу расшарить её права до админа, поставив дополнительно галочку sysadmin (в пункте "Server Roles"), а вот снять галочку public нельзя. Даже если я в пункте "сопоставление пользователей" (user mapping) поставлю галочку на нужную мне базу и дам пользователю роль db_datareader, то у него все равно унаследуются права на апдейт от роли public. Извиняюсь за сумбур, постарался донести своё понимание. Соответственно вопросы: 1. Где я могу изменить права роли паблик? (для общего развития) 2. Как я могу запретить доступ к базам, не меняя роль паблик Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 18:38 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot, назначение прав базы можно проверить в базе. public - это роль базы данных. Разрешения проверяйте в свойствах базы и в свойствах самой роли. Явно запретить что-либо можно установив DENY (ЗАПРЕТИТЬ по-русски). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 18:52 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot 1. Где я могу изменить права роли паблик? (для общего развития) 2. Как я могу запретить доступ к базам, не меняя роль паблик 2. Достаточно не давать права на доступ к базам. Saniacot Как я понимаю, у роли public на данном сервере открыт доступ ко всем базам на чтение и апдейт (как минимум). Saniacot Хочу создать учетку, которая будет иметь доступ только одной базе на чтение (баз несколько). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 20:03 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
alexeyvg Saniacot 1. Где я могу изменить права роли паблик? (для общего развития) 2. Как я могу запретить доступ к базам, не меняя роль паблик 2. Достаточно не давать права на доступ к базам. Saniacot Как я понимаю, у роли public на данном сервере открыт доступ ко всем базам на чтение и апдейт (как минимум). Saniacot Хочу создать учетку, которая будет иметь доступ только одной базе на чтение (баз несколько). Спасибо за пояснения. Но всё ещё не складывается картина. Попробую объяснить. У меня на сервере 3 БД. Две были созданы до меня, одну я создал сам. Создаю имя для входа на сервере, допустим TestUser с аутентификацией по проверке подлинности SQL Server. Больше ничего не меняю, роль сервера по дефолту public. По итогу я не могу войти в свою созданную базу. Но если я создам в своей базе пользователя с именем TestUser и дам ему роль db_datareader он сможет зайти в мою базу и читать данные (но не изменять их). Этот механизм мне понятен. Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 09:24 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 10:05 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
invm Saniacot Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается? Спасибо! А какой тогда правильный способ изменить права доступа к базе, где активен гость? Если я создаю в этой базе пользователя и даю ему права db_datareader, то он все равно может изменять данные (так как похоже, что такие права есть у гостя). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 10:23 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot А какой тогда правильный способ изменить права доступа к базе, где активен гость? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 10:57 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
invm Saniacot Но есть ещё две созданные до меня базы. Причем к одной из них он имеет доступ на чтение и апдейт, а ко второй вообще не имеет досупа. В обоих базах нет созданного пользователя TestUser. Как это работает и где задается? Это Saniacot-у тоже нужно проверить. Код: sql 1.
А, прочитал следующий пост; если бы он был замаплен, то при "Если я создаю в этой базе пользователя..." была бы ошибка... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:17 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
invm Saniacot А какой тогда правильный способ изменить права доступа к базе, где активен гость? А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:19 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot invm пропущено... Это же очевидно - изменять права у гостя. Или у роли public. А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик. Хотя это кривой подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:20 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot, отвечу не так как тут принято.. БД - это способ хранения инфы. Доступ в системе - это логическая составляющая системы (доступ может отсутствовать, как и сама бд). Права доступа субъекты должны распространяться на объекты в системе, а как они созданы и что юзают - это уже физика а не логика... Если Ваша система - своя БД, то да = доступ на уровне БД имеет смысл... как то так (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:25 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
alexeyvg Saniacot пропущено... А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик. Хотя это кривой подход. Спасибо за совет! Но для меня странно, что права гостя перевешивают права, явно заданные в учетке пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:28 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:31 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
invm Saniacot А если эта опция недоступна? Права настроены с определенными целями для текущих проектов, а мне нужно лишь создать учетку с определенными правами, не меняю прав гостя или паблик. Ну допустим у меня гость дает доступ на чтение и редактирование таблиц БД. А на выходе мне нужно получить только чтение. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:52 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot Ну допустим у меня гость дает доступ на чтение и редактирование таблиц БД ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 13:29 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
invm Saniacot Ну допустим у меня гость дает доступ на чтение и редактирование таблиц БД Ну пользователь на уровне сервера (имя входа) имел доступ к базе (как мы выяснили через гостя). Он там мог и селектить, и апдейтить. После чего я на уровне базы создал этого пользователя и дал ему права db_reader. Мне казалось, что эти права апдейтить не должны позволять. Но он все равно имеет право на апдейт. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 14:23 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot, Еще раз - гость никак не влияет на разрешения другого пользователя. Смотрите разрешения у роли public. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 16:40 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot invm пропущено... Если вы явно создали пользователя, то гость на его разрешения никак не влияет. Ну пользователь на уровне сервера (имя входа) имел доступ к базе (как мы выяснили через гостя). Он там мог и селектить, и апдейтить. После чего я на уровне базы создал этого пользователя и дал ему права db_reader. Мне казалось, что эти права апдейтить не должны позволять. Но он все равно имеет право на апдейт. Выдача юзеру db_datareader никак не повлияет на его способность писать в БД. Вместо этого вам нужно включать его в db_denydatawriter, потому что deny имеет приоритет над grant, если только он не владелец базы и не член роли sysadmin. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 17:36 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
Saniacot alexeyvg Можно этому новому пользователю явно запретить то, что нужно запретить. Хотя это кривой подход. Спасибо за совет! Но для меня странно, что права гостя перевешивают права, явно заданные в учетке пользователя. Нужно как уже написали несколько человек, запретить лишние права, то есть сделать DENY. Ennor Tiegael Похоже, вы неправильно представляете, как работает система безопасности в СУБД, в т.ч. в SQL Server Везде разрешения складываются, запреты складываются, и суммарный набор запретов имеет приоритет над суммарным набором разрешений. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 17:59 |
|
Права пользователей
|
|||
---|---|---|---|
#18+
alexeyvg Ennor Tiegael Похоже, вы неправильно представляете, как работает система безопасности в СУБД, в т.ч. в SQL Server Везде разрешения складываются, запреты складываются, и суммарный набор запретов имеет приоритет над суммарным набором разрешений. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 06:13 |
|
|
start [/forum/topic.php?fid=46&fpage=75&tid=1686714]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 337ms |
total: | 465ms |
0 / 0 |