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

Откуда:
Сообщений: 6
Необходимо создать пользователя, который бы видел только 2 базы данных, и мог только читать и редактировать данные этих баз. Насколько я понимаю, этот пользователь не должен быть владельцем этих бах данных, так как не может их удалять?
Помогите советом.
23 апр 19, 16:13    [21869928]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30776
Sergey0192
Необходимо создать пользователя, который бы видел только 2 базы данных, и мог только читать и редактировать данные этих баз. Насколько я понимаю, этот пользователь не должен быть владельцем этих бах данных, так как не может их удалять?
Помогите советом.
Включите его в db_datareader, db_datawriter
23 апр 19, 21:48    [21870140]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Sergey0192
Member

Откуда:
Сообщений: 6
Спасибо alexeyvg, но проблема не решилась. Опишу детально:
1. У меня есть имя входа с правами:
- Сопоставленное с нужными базами
- Правами "Соединение SQL" и "Просмотр любой базы данных" - запрещено
2. Привязанное на него пользователь БД:
- с ролями: db_datareader, db_datawriter

А. При этом, когда подключаюсь под этим именем входа - не вижу баз данных
Б. Если уберу галку "Просмотр любой базы данных" - запрещено, вижу все БД, но не могу зайти.

А мне бы хотелось дать возможность видеть только нужные БД. Спасибо.
24 апр 19, 08:53    [21870297]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30776
Sergey0192
А мне бы хотелось дать возможность видеть только нужные БД.
А, вот что вам нужно...

Способность видеть список баз есть у роли public, которая обязательна.

Если у вас такое требование, то нужно убрать (REVOKE) у public это разрешение.

Из хелпа:
BOL sys.databases
Important
By default, the public role has the VIEW ANY DATABASE permission, allowing all logins to see database information. To block a login from the ability to detect a database, REVOKE the VIEW ANY DATABASE permission from public, or DENY the VIEW ANY DATABASE permission for individual logins.
Конечно, DENY ставить не надо, иначе пользователь не увидит свою базу тоже
24 апр 19, 09:36    [21870318]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
Sergey0192
Необходимо создать пользователя, который бы видел только 2 базы данных, и мог только читать и редактировать данные этих баз.
SSMS есть инструмент администрирования, а не манипуляций с данными для конечного пользователя.

Поэтому есть два варианта:
- этот логин будет видеть все БД, но иметь разрешения только на две нужные;
- этот логин будет видеть только нужные БД, но будет их владельцем. Соответственно, творить в них все что угодно, а не только редактировать данные в таблицах.
24 апр 19, 12:07    [21870411]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Владислав Колосов
Member

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

Какая разница - видит он их или нет? Пользователя должно подключать приложение, а не инструменты администрирования.
24 апр 19, 12:44    [21870446]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30776
Владислав Колосов
Sergey0192,

Какая разница - видит он их или нет? Пользователя должно подключать приложение, а не инструменты администрирования.
В смысле, можно вообще прав не настраивать, дать всем сисадмина, ведь "Пользователя должно подключать приложение, а не инструменты администрирования"? :-)

Совершенно правильный вопрос; если названия баз секретные, нужно обеспечить эту секретность не только приказом "не смотреть", но и ограничивая права техническими средствами.
invm
SSMS есть инструмент администрирования
Посмотреть список баз можно и в sys.databases
24 апр 19, 13:36    [21870510]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
alexeyvg
Посмотреть список баз можно и в sys.databases
В этом случае будут действовать какие-то другие правила видимости БД? ТС получит нужный результат без допусловий в запросе?
Или это как-то поможет ТCу получить желаемое в SSMS?
24 апр 19, 13:49    [21870529]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30776
invm
В этом случае будут действовать какие-то другие правила видимости БД? ТС получит нужный результат без допусловий в запросе?
Да, если дать права, как я процитировал из BOL, то он получит нужный результат без допусловий в запросе.
24 апр 19, 14:05    [21870549]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
alexeyvg
Да, если дать права, как я процитировал из BOL, то он получит нужный результат без допусловий в запросе.
Во-первых, SSMS тоже опрашивает sys.databases
Во-вторых, вы невнимательно читали документацию - мало отнять view any database

Чтобы БД была видна в sys.databases у вызывающего должно быть одно из серверных разрешений view any database или alter any database, либо create database в master, либо он должен быть владельцем БД.
Ничего из перечисленного ТСу не подходит.
О чем и было написано.
24 апр 19, 14:27    [21870582]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Кто знает, можно у них в название базы пароль включен. Тогда если смысл скрывать название. Или базы конкурентов втихаря обслуживают. А вопрос все равно гипотетический.
24 апр 19, 14:53    [21870613]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30776
invm
Во-вторых, вы невнимательно читали документацию - мало отнять view any database

Чтобы БД была видна в sys.databases у вызывающего должно быть одно из серверных разрешений view any database или alter any database, либо create database в master, либо он должен быть владельцем БД.
Ничего из перечисленного ТСу не подходит.
О чем и было написано.
Да, действительно, так не получается...
24 апр 19, 14:58    [21870621]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30776
Владислав Колосов
Кто знает, можно у них в название базы пароль включен. Тогда если смысл скрывать название. Или базы конкурентов втихаря обслуживают. А вопрос все равно гипотетический.
Встречал на практике такое требование, даже не в одной компании.
Как то это решалось, но не помню; наверное, как раз логины были владельцами.
24 апр 19, 15:13    [21870648]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Sergey0192
Member

Откуда:
Сообщений: 6
Все большое спасибо, действительно вопрос решается, когда логины - владельцы.
25 апр 19, 09:43    [21871244]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Sergey0192
Member

Откуда:
Сообщений: 6
Еще уточню один вопрос. Пользователь является владельцем баз данных, при этом он видит только эти базы (настроил, как мы с вами обговорили). Есть ли возможность дать пользователю права присоединять и отсоединять эти базы, с учетом что бы не дать ему права администратора (видимость всех баз)?
25 апр 19, 11:42    [21871409]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Sergey0192
Member

Откуда:
Сообщений: 6
Sergey0192,
Я так понимаю, по логике, это не возможно?
25 апр 19, 11:46    [21871416]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
Sergey0192
Есть ли возможность дать пользователю права присоединять и отсоединять эти базы, с учетом что бы не дать ему права администратора (видимость всех баз)?
Отсоединять - да (может как владелец). Присоединять - нет.

Не смущает, что сделав логин владельцем БД вы нарушили собственное ограничение
Sergey0192
и мог только читать и редактировать данные этих баз
?
25 апр 19, 11:51    [21871426]     Ответить | Цитировать Сообщить модератору
 Re: Новые пользователи (SQLServer)  [new]
Sergey0192
Member

Откуда:
Сообщений: 6
Не смущает, что сделав логин владельцем БД вы нарушили собственное ограничение
Sergey0192
и мог только читать и редактировать данные этих баз
?[/quot]

Частично смущает, но я даю права программисту (тех. поддержка). Детали мне никто не оговорил (сказали минимум), поэтому думаю так пока оставить. Спасибо, извините за беспокойство.
25 апр 19, 12:50    [21871534]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить