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

Откуда: Москва
Сообщений: 794
SQL SERVER 2008. Подскажите пожалуйста - есть ли какие-то сценарии или методы как можно установить права доступа для множества объектов базы данных. Как то страшно ломает проставлять чекбоксы вручную для нескольких сотен таблиц/запросов/процедур у нового пользователя БД через форму его свойств.
15 дек 13, 13:51    [15295029]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
http://technet.microsoft.com/ru-ru/library/ms188371.aspx
15 дек 13, 13:57    [15295035]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
garvy
Member

Откуда: Москва
Сообщений: 794
С инструкцией GRANT разобраться можно. Как сделать так чтобы она одновременно дала например разрешение SELECT для списка из 600 таблиц. Не вызывать же ее для каждой?
15 дек 13, 14:03    [15295044]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Glory
Member

Откуда:
Сообщений: 104760
garvy
Как сделать так чтобы она одновременно дала например разрешение SELECT для списка из 600 таблиц. Не вызывать же ее для каждой?

если вы собственно про команду GRANT, то именно вызывать для каждого объекта
если вы про вообще организацию прав доступа, то есть контейнеры вроде схемы, группы. Которые созданы как раз для "массового назначения прав"
15 дек 13, 14:13    [15295058]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
garvy
С инструкцией GRANT разобраться можно. Как сделать так чтобы она одновременно дала например разрешение SELECT для списка из 600 таблиц. Не вызывать же ее для каждой?
Для каждой вызывать. Вытащить имена всех таблиц в курсоре и вызывать.
15 дек 13, 14:18    [15295067]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
garvy
Member

Откуда: Москва
Сообщений: 794
Да, я как раз о массовом назначении прав объектам. Что нибудь типа GRANT SELECT, UPDATE ON dbo TO userX, где dbo - схема. Но сама инструкция GRANT такого не допускает. Наверное это должна быть какая-то процедура, которая перебирает все объекты, принадлежащие схеме в ходе просмотра какого нибудь курсора. Вот я и думал - может что-то есть уже готовое среди стандартных процедур SQL
15 дек 13, 14:21    [15295071]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
garvy
Да, я как раз о массовом назначении прав объектам. Что нибудь типа GRANT SELECT, UPDATE ON dbo TO userX, где dbo - схема. Но сама инструкция GRANT такого не допускает. Наверное это должна быть какая-то процедура, которая перебирает все объекты, принадлежащие схеме в ходе просмотра какого нибудь курсора. Вот я и думал - может что-то есть уже готовое среди стандартных процедур SQL
Если у Вас нормально продумана организация доступа, то перебирать ничего не надо. У схемы владелец есть.
15 дек 13, 14:24    [15295073]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Glory
Member

Откуда:
Сообщений: 104760
garvy
Вот я и думал - может что-то есть уже готовое среди стандартных процедур SQL

Есть. называется оно - правильная организация прав доступа.
15 дек 13, 14:25    [15295077]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
garvy
Member

Откуда: Москва
Сообщений: 794
Glory
garvy
Вот я и думал - может что-то есть уже готовое среди стандартных процедур SQL

Есть. называется оно - правильная организация прав доступа.
15 дек 13, 14:30    [15295085]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
garvy
Member

Откуда: Москва
Сообщений: 794
Последнее мне не очень понятно. У меня задача - новый пользователь в системе. Для него нужно расписать права. Все. До этого в системе кроме sa вообще не было никаких действующих пользовалей. Приложение подключалось через sa. Что неправильно. Вот я и хочу придти к правильной организации прав доступа.
15 дек 13, 14:33    [15295090]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
garvy
Последнее мне не очень понятно. У меня задача - новый пользователь в системе. Для него нужно расписать права. Все. До этого в системе кроме sa вообще не было никаких действующих пользовалей. Приложение подключалось через sa. Что неправильно. Вот я и хочу придти к правильной организации прав доступа.
Не давайте права отдельным юзерам. Давайте права ролям приложений и баз данных.
15 дек 13, 14:39    [15295103]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
garvy
Member

Откуда: Москва
Сообщений: 794
Вот - для меня это уже горячее. Дело в том, что я никак не пойму сути роли приложения. По логике это то, что мне надо. Я и попытался ее создать да что-то обломал зубы. И еще тогда вопрос если я создаю роль приложения - что тогда будет писаться в строке подключения приложения к серверу и БД?
15 дек 13, 14:47    [15295112]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5489
garvy
Вот - для меня это уже горячее. Дело в том, что я никак не пойму сути роли приложения. По логике это то, что мне надо. Я и попытался ее создать да что-то обломал зубы. И еще тогда вопрос если я создаю роль приложения - что тогда будет писаться в строке подключения приложения к серверу и БД?
После подключения надо специальную хранимку выполнить с указанием пароля. С этого момента данная сессия теряет все предыдущие права и работает под правами роли до завершения сессии. То есть, такие роли даются конкретным приложениям. Например, цены на товар можно смотреть только из приложения "смотрелка цен". И не важно, кто это приложение запустил: менеджер Петя или уборщица Валя.
15 дек 13, 14:56    [15295126]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
garvy
Member

Откуда: Москва
Сообщений: 794
Вот меня жизнь не заставляла углубляться в эти вопросы, а теперь заставляет. Вроде бы и много прочитал, и хэлп читаю, а все равно в голове каша по этому вопросу. Можно тогда еще попытаю? Исторически сложилось: приложение под ACCESS, подключалось через sa к базе данных. В самом приложении уже поверх реализована собственная система авторизации. Поэтому вопрос остро не стоял через какую учетную запись попадает в базу пользователь приложения. Фирма маленькая, все под рукой. Время идет, фирма растет, уже появились перебежчики-конкуренты из состава бывших пользователей, которые могли (и стащили, не будь они дураками) приложение. И мало того - они еще и офис содержат в непосредственной близости от нашего. У меня острые приступы шпиономанской паранойи. Давно хотел этот момент переделать. И вот - погряз. В базе данных все таблицы только в схеме dbo. Чтобы некая роль или пользователь (не sa) мог работать из приложения - ему принудительно нужно назначать схему dbo по умолчанию? Вот пробую создать роль приложения. Назначаю ей схему по умолчанию dbo и выбираю схему, принадлежащую данной роли - dbo. При попытке создать роль выскакивает сообщение насчет невозможности изменить схему dbo
15 дек 13, 16:15    [15295219]     Ответить | Цитировать Сообщить модератору
 Re: массовое назначение прав доступа  [new]
Glory
Member

Откуда:
Сообщений: 104760
garvy
Чтобы некая роль или пользователь (не sa) мог работать из приложения - ему принудительно нужно назначать схему dbo по умолчанию?

dbo и так является схемой по-умолчанию

garvy
Вот пробую создать роль приложения.

Вам нужны роли базы данных
16 дек 13, 10:44    [15297303]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить