Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Добрый вечер всем!
Прошу помощи в следующем. Имею БД на MS SQL Server 2008. Пользователей мало, но планируется много. Примерно 100 чел.
В данный момент всем все доступно. Требуется разграничить права пользователей на уровне строк. То есть, чтобы пользователь(или определенная группа пользователей) создавший/ая запись в БД могла в дальнейшем видеть только "свои" записи в БД. При этом, есть еще подчиненные таблицы.
Примерно представляю, что нужно писать хранимые процедуры, но как в подробностях это сделать пока не представляю. Дайте наводку. Или примеры. Буду очень благодарен!
14 май 14, 22:10    [16017990]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Вьюшки прошу не предлагать. Имею ввиду постоянное пополнение и пролистывание записей пользователями через формочки Access.
P.S. Жалко что нельзя править тут недавно написанную запись:(
14 май 14, 22:15    [16018010]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
invm
Member

Откуда: Москва
Сообщений: 9442
eric555
Вьюшки прошу не предлагать
Почему?
14 май 14, 22:26    [16018059]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
invm,

Потому что во вьюшку нельзя добавлять данные. Я имел ввиду работу с редактированием и просмотром одновременно!
14 май 14, 22:40    [16018137]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
invm
Member

Откуда: Москва
Сообщений: 9442
eric555
Потому что во вьюшку нельзя добавлять данные.
Можно.
14 май 14, 22:40    [16018140]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
invm
eric555
Потому что во вьюшку нельзя добавлять данные.
Можно.

Интересно как это? У меня во вьюшке подсоединена куча справочников, подчиненных таблиц....
14 май 14, 22:47    [16018172]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Crimean
Member

Откуда:
Сообщений: 13148
таки вьюшка ) и тема, на самом деле, далеко не из простых
реально имхо есть 2 крайности - или скатывание в ACL (объем и неповоротливость при попытке основательно сменить права, особенно "косвенные") или постоянный расчет эффективных прав (процессору капут и пользователи могут быть недовольны)
добавочка - если пересмотрите термин "пролистывание" - может стать сильно проще
а попробуете "это" делать хранимками - скорее всего упретесь по куче направлений. но можно и хранимками, конечно же
14 май 14, 22:49    [16018184]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
В любом случае, меня интересует разграничение прав пользователей по строкам на таблицы, а не на вьюшки!!!
14 май 14, 22:49    [16018185]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Crimean,

Можно подробнее про "пролистывание" и про "хранимки" где это все взять? Мне бы примеры, а я попробую разобраться.
14 май 14, 22:51    [16018198]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31498
eric555
Интересно как это? У меня во вьюшке подсоединена куча справочников, подчиненных таблиц....
На каждую таблицу делается вьюшка, в которой эта таблица, плюс таблицы с правами. Приложение переделывать не надо, всё само будет работать с новой функциональностью.

Если вьюхи использовать нельзя (например, начальник их не любит), то менять обращения к таблицам на запросы к этим таблицам с фильтром по правам, или использовать процедуры.

Как их использовать - спрашивайте в форуме по аксессу, тут вам вряд ли подскажут. Думаю, для этого придётся полностью переписать приложение, так как наверняка у вас всё запрограммировано "мышкой", без написания реальных запросов DML.
14 май 14, 22:56    [16018230]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31498
eric555
Можно подробнее про "пролистывание" и про "хранимки" где это все взять? Мне бы примеры, а я попробую разобраться.
Какие примеры, "как написать хранимку"? Это же всё есть в хелпе.

Смотрите CREATE PROCEDURE, там есть много примеров.
Вот первый:
CREATE PROCEDURE HumanResources.uspGetAllEmployees
AS
    SET NOCOUNT ON;
    SELECT LastName, FirstName, JobTitle, Department
    FROM HumanResources.vEmployeeDepartment;
GO
14 май 14, 22:58    [16018243]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
invm
Member

Откуда: Москва
Сообщений: 9442
eric555
Интересно как это?
http://technet.microsoft.com/ru-ru/library/ms187956.aspx
VIEW_METADATA

Указывает, что экземпляр SQL Server возвратит в API-интерфейсы DB-Library, ODBC и OLE DB сведения метаданных о представлении вместо базовой таблицы или таблиц, когда метаданные режима обзора затребованы для запроса, который ссылается на представление. Метаданные режима обзора — это дополнительные метаданные, которые экземпляр SQL Server возвращает вышеназванным клиентским API-интерфейсам. Эти метаданные позволяют клиентским API-интерфейсам реализовывать обновляемые клиентские курсоры. Метаданные режима обзора содержат сведения о базовой таблице, которой принадлежат столбцы в результирующем наборе.

Для представлений, созданных с применением предложения VIEW_METADATA, метаданные режима обзора возвращают имя представления, а не имена базовых таблиц при описании столбцов из представления в результирующем наборе.

В представлении, созданном с предложением WITH VIEW_METADATA, все столбцы, за исключением столбца timestamp, поддерживают обновление, если представление включает триггеры INSTEAD OF INSERT или INSTEAD OF UPDATE. Дополнительные сведения об обновляемых представлениях см. в разделе «Примечания».
14 май 14, 23:04    [16018272]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

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

Как их использовать - спрашивайте в форуме по аксессу, тут вам вряд ли подскажут. Думаю, для этого придётся полностью переписать приложение, так как наверняка у вас всё запрограммировано "мышкой", без написания реальных запросов DML.


Как во вьюшках добавлять или изменять данные? Я чет в ступор зашел! Никогда это не получалось. Разве можно править данные во вьюхе??

На уровне приложения, а точнее формочек аксесс ставить фильтры отпадает. Шаловливые ручки пользователей могут многое подправить)
14 май 14, 23:07    [16018289]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
invm,

Ну теперь все понятно! Осталось, почитать и разобраться во всем подробнее... Спасибище!
14 май 14, 23:10    [16018312]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
alexeyvg
eric555
Можно подробнее про "пролистывание" и про "хранимки" где это все взять? Мне бы примеры, а я попробую разобраться.
Какие примеры, "как написать хранимку"? Это же всё есть в хелпе.

Смотрите CREATE PROCEDURE, там есть много примеров.
Вот первый:
CREATE PROCEDURE HumanResources.uspGetAllEmployees
AS
    SET NOCOUNT ON;
    SELECT LastName, FirstName, JobTitle, Department
    FROM HumanResources.vEmployeeDepartment;
GO


А подкиньте пожалуйста пример создания хранимки для моего случая, чтобы я увидел как пользователю делается ограничение на просмотр и редактирование его же созданных записей.
14 май 14, 23:12    [16018323]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Implementing SQL Server Row and Cell Level Security
14 май 14, 23:41    [16018457]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
pkarklin,

Хороший пример, спасибо! Жалко что не на русском, сложно переводить...
14 май 14, 23:55    [16018517]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31498
eric555
pkarklin,

Хороший пример, спасибо! Жалко что не на русском, сложно переводить...
Это пример как раз для вьюх.

С хранимками то же самое; тот запрос, из которого состоит вьюха, просто пишется в хранимой процедуре.
15 май 14, 00:02    [16018540]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
alexeyvg,

Может, лучше тогда с помощью триггеров сделать? Надо чтобы на уровне сервера были настроены все условия и фильтры. Открыл формочку, увидел только "свои" записи! При добавлении новой записи, в служебное поле вставился идентификатор, присущий ему или определенной группе пользователей ну и так далее...
15 май 14, 09:24    [16019124]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Crimean
Member

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

а давайте уже для каждого пользователя свою копию данных сделаем и в свою схему засунем? и триггерами все разведем. а чего? если данных мало, а железа много - пойдет! шутка, но в каждой шутке, как известно..
15 май 14, 09:27    [16019136]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Crimean,

Таблиц очень много, я замучаюсь для каждой группы копировать по 20 таблиц! А если в одной что поменять надо будет? Дублировать свои действия 20 раз не очень удобно и ошибиться легко:(
15 май 14, 09:40    [16019172]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
aleks2
Guest
eric555
Таблиц очень много, я замучаюсь для каждой группы копировать по 20 таблиц! А если в одной что поменять надо будет? Дублировать свои действия 20 раз не очень удобно и ошибиться легко:(


1. Осподе милосердный и всемогущий не наградил нас кнопкой [Сделать фсе как я хАчу].
Так что шевелить ручками придется.

2. За образец могешь взять систему UNIX разграничения доступа к файлам.
15 май 14, 10:00    [16019288]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
П-Л
Guest
Дальнейшее будет относиться к АДП файлу аксеса. Редактируемость данных вью мс скл сервера через формы аксеса зависит от многих факторов. Поведение аксеса и весь тот код, которым обменивается аксес с сервером при операциях редактирования/добавления/удаления записей через формы, опирающиеся на многотабличные вью можно исследовать профайлером. Мало не покажется.

Конструкция вью должна соблюдать определенные правила. Звезды и снежинки нормально редактируются. Причем аксесу хватает смекалки чтобы отправить на сервер апдейт в нужную таблицу. Т.е. возможно редактирование не только данных самой детальной таблицы фактов, но и полей справочников, зацепленных во вью джоином через ФК. В запрос должны включаться поля ФК из детальных таблиц, а не ПК из прицепленного справочника. Все это было хорошо и гладко на старых версиях аксеса и сервера. Аксес 2003 с Скл 2000 работал абсолютно бесшовно.

Для сочетание Аксес 2003 + скл 2005 уже пришлось понижать версию совместимости БД, если надо сохранить все опции редактируемости запросов, иначе в многотабличных вью, где самая детальная таблица имеет ПК автосчетчик, перестают вставляться новые записи. На еще более новых версиях Аксес 2007 + скл 2005/8/12 появляются новые проблемы. Мне пришлось полностью отключить встроенный механизм аксеса по отправке команд серверу и заменить его своими классами, перехватывающими события форм и формирующими валидные апдейты, инсерты, делиты.
15 май 14, 10:06    [16019342]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
aleks2
2. За образец могешь взять систему UNIX разграничения доступа к файлам.

Не видел в живую.
15 май 14, 20:29    [16023634]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
П-Л,

Вьюхи мне не подойдут, я замучаюсь на каждую таблицу делать вьюху!!! У меня основных таблиц в БД порядка 20. 9 зданий(условно) по 5 отделов в каждом (9*5*20=получится 900 вьюшек). Несерьезно и очень неудобно будет! Каждый отдельный отдел при добавлении/редактировании записи, должен видеть только свои записи. Да, и потом, все права доступа, фильтры, идентификаторы для пользователей/групп должны быть на сервере в БД, а не в файлах access (.accdb и .adp). Короче, фишка с вьюшками не подойдет:(
15 май 14, 20:40    [16023654]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
invm
Member

Откуда: Москва
Сообщений: 9442
eric555
У меня основных таблиц в БД порядка 20. 9 зданий(условно) по 5 отделов в каждом (9*5*20=получится 900 вьюшек)
Это еще зачем?

Лучше наймите специалиста. Заодно поучитесь у него.
15 май 14, 21:07    [16023715]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
invm,

Просто можно узнать, можно ли сделать то, что я хочу с помощью треггеров?
15 май 14, 21:19    [16023746]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Просто можно узнать, можно ли сделать то, что я хочу с помощью треггеров?

Триггеров на select ?
15 май 14, 21:48    [16023828]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Просто можно узнать, можно ли сделать то, что я хочу с помощью треггеров?

Триггеров на select ?


Не знаю, я никогда их сам не писал. Но нужно, чтобы каждый отдел видел/редактировал только свои записи в БД.
15 май 14, 22:01    [16023882]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Не знаю, я никогда их сам не писал. Но нужно, чтобы каждый отдел видел/редактировал только свои записи в БД.

Триггеров на "видел", т.е. выбрал, т.е. select просто не существует
15 май 14, 22:22    [16023962]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Не знаю, я никогда их сам не писал. Но нужно, чтобы каждый отдел видел/редактировал только свои записи в БД.

Триггеров на "видел", т.е. выбрал, т.е. select просто не существует


Ну, а если триггер при создании новой записи, будет просто вставлять в столбец строки идентификатор пользователя, а потом формочка будет показывать записи только те, которые разрешены пользователю?
15 май 14, 22:28    [16023980]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Ну, а если триггер при создании новой записи, будет просто вставлять в столбец строки идентификатор пользователя, а потом формочка будет показывать записи только те, которые разрешены пользователю?

А если доступ к записи нужен нескольким пользователям, то в таблице будет поле для каждого пользователя ?
15 май 14, 22:32    [16023991]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Ну, а если триггер при создании новой записи, будет просто вставлять в столбец строки идентификатор пользователя, а потом формочка будет показывать записи только те, которые разрешены пользователю?

А если доступ к записи нужен нескольким пользователям, то в таблице будет поле для каждого пользователя ?

Группа, дружище, группа)))
15 май 14, 22:34    [16023999]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Glory
пропущено...

А если доступ к записи нужен нескольким пользователям, то в таблице будет поле для каждого пользователя ?

Группа, дружище, группа)))

А чем это будет отличаться от нелюбимого вами варианта с представлениями ?
15 май 14, 22:37    [16024015]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
пропущено...

Группа, дружище, группа)))

А чем это будет отличаться от нелюбимого вами варианта с представлениями ?


А разве триггерами не лучше? Не удобнее будет? С вьюшками мне бы вот это чудо на русском Implementing SQL Server Row and Cell Level Security , чтобы я смог разобраться....
15 май 14, 22:43    [16024053]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
А разве триггерами не лучше? Не удобнее будет?

Удобней что ? Автоматически заполнять поле записи ?
15 май 14, 22:48    [16024085]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
С вьюшками мне бы вот это чудо на русском Implementing SQL Server Row and Cell Level Security , чтобы я смог разобраться....

Открыть страницу в Chrome и нажать кнопку Translate ?
15 май 14, 22:49    [16024094]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
А разве триггерами не лучше? Не удобнее будет?

Удобней что ? Автоматически заполнять поле записи ?

Ну да, чтобы идентификатор или id пользователя/группы в поле таблицы записывал триггер, а не формочка access.
И как тогда будет заполняться поле идентификатора пользователя, если делать через вьюхи?
15 май 14, 22:52    [16024113]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
С вьюшками мне бы вот это чудо на русском Implementing SQL Server Row and Cell Level Security , чтобы я смог разобраться....

Открыть страницу в Chrome и нажать кнопку Translate ?

Можно, я думал об этом, просто машинный перевод не очень...
15 май 14, 22:53    [16024117]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Ну да, чтобы идентификатор или id пользователя/группы в поле таблицы записывал триггер, а не формочка access.
И как тогда будет заполняться поле идентификатора пользователя, если делать через вьюхи?

также, как и через таблицу
15 май 14, 22:53    [16024119]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Ну да, чтобы идентификатор или id пользователя/группы в поле таблицы записывал триггер, а не формочка access.
И как тогда будет заполняться поле идентификатора пользователя, если делать через вьюхи?

также, как и через таблицу

Ну, так, а как через таблицу?
15 май 14, 22:55    [16024134]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Ну, так, а как через таблицу?

Мда. Командой INSERT
15 май 14, 22:57    [16024148]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory,

Много вопросов. Я наверное ссылочку ту переведу, попробую потренироваться как будет время свободное, потом отпишусь.
15 май 14, 22:58    [16024151]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Ну, так, а как через таблицу?

Мда. Командой INSERT

Блин, вы не так меня поняли. Знаю я все эти команды. Я другое имею ввиду. Мне надо чтобы идентификатор пользователя или группы БД MS SQL вставлялся в каждую запись БД. Вот что я имел ввиду.
15 май 14, 23:01    [16024164]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Мне надо чтобы идентификатор пользователя или группы БД MS SQL вставлялся в каждую запись БД. Вот что я имел ввиду.

А как вы вставляете другие поля записи то ?
Чем поле "для идентификатора пользователя" отличается ?
15 май 14, 23:02    [16024176]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
invm
Member

Откуда: Москва
Сообщений: 9442
eric555
Группа, дружище, группа)))
А если разного рода доступ нужен разным группам?
15 май 14, 23:04    [16024187]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Мне надо чтобы идентификатор пользователя или группы БД MS SQL вставлялся в каждую запись БД. Вот что я имел ввиду.

А как вы вставляете другие поля записи то ?
Чем поле "для идентификатора пользователя" отличается ?

Блин, я все конечно понимаю, но вы не так меня понимаете. Прочитайте самый первый пост в этой теме.
15 май 14, 23:05    [16024192]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Прочитайте самый первый пост в этой теме.

И что там ? текст команды INSERT, котрую вы пытались написать ?
15 май 14, 23:06    [16024204]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory,

Да какой INSERT??? Я создаю записи в БД с помощью форм access. Просто сейчас все пользователи БД видят и могут редактировать все записи, а мне нужно разграничить доступ к записям. Чтобы пользователи 1-го отдела видели и правили свои записи, а пользователи 2-го отдела - свои!
15 май 14, 23:10    [16024228]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Я создаю записи в БД с помощью форм access

Причем тут тогда MS SQL ?
Вы думаете, что сервер за вас сформирует правильные тексты команд что ли ?
15 май 14, 23:13    [16024247]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
eric555
Я создаю записи в БД с помощью форм access

Причем тут тогда MS SQL ?
Вы думаете, что сервер за вас сформирует правильные тексты команд что ли ?

Ладно, давайте не будем переливать из пустого в порожнее. Я лучше попробую разобраться с этой статьей на английском как будет время и отпишусь уже по существу! А то сейчас бесполезное наполнение топика идет. Спасибо за советы:)
15 май 14, 23:15    [16024266]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31498
eric555
Ладно, давайте не будем переливать из пустого в порожнее. Я лучше попробую разобраться с этой статьей на английском как будет время и отпишусь уже по существу! А то сейчас бесполезное наполнение топика идет. Спасибо за советы:)
Задайте вопрос на форуме проектирование БД, раз вы вообще не понимаете, как сделать систему прав. Думаю, это даже там неоднократно обсуждалось, поищите сначала.

Я грешным делом подумал, что у вас по модели данных и бизнес-логике прав доступа уже всё готово, и вы задаёте вопрос по реализации всего этого именно на MSSQL :-)
16 май 14, 00:53    [16024579]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
aleks2
Guest
eric555
aleks2
2. За образец могешь взять систему UNIX разграничения доступа к файлам.

Не видел в живую.

И я живого юникса не видал. Зачем его видеть?
Ни к чему это.

ЗЫ. Тредстартер классический "недоучка-халявщик-мечтатель".
Ничего не понимая в теме - он с ходу отметает все предложения.
Он не понимает, что если бы разграничение доступа по-строчно было встроено в MS SQL - его бы уже давно уволили.
16 май 14, 08:34    [16024911]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
П-Л
Guest
eric555
П-Л,

Вьюхи мне не подойдут, я замучаюсь на каждую таблицу делать вьюху!!! У меня основных таблиц в БД порядка 20. 9 зданий(условно) по 5 отделов в каждом (9*5*20=получится 900 вьюшек). Несерьезно и очень неудобно будет! Каждый отдельный отдел при добавлении/редактировании записи, должен видеть только свои записи. Да, и потом, все права доступа, фильтры, идентификаторы для пользователей/групп должны быть на сервере в БД, а не в файлах access (.accdb и .adp). Короче, фишка с вьюшками не подойдет:(

Зачем вы перемножаете ?

Текущий логин пользователя, соединившегося с БД, известен. Его группа достается. При создании новой записи в тригере в поле Группа автоматически записать текущую группу. После этого во вью/процедуру/табличную функцию по выборке данных зашивается условие WHERE <группа текущего пользователя>=<Группа, создавшая запись>. Один объект обслуживает всех пользовтелей а никак не сотни, которые вы себе напридумывали.

В реальности разрешения могут быть не столь примитивны, каким-то группам могут потребоваться права на доступ к чужим записям и тогда достаточно будет добавть таблицы разрешений Группы-Здания и Группы-Отделы, в каждой перечислить пары айди для которых доступ разрешен. В триггере можно реализовать правило можно видеть и чужие, сохранять можно только свои. Все совсем несложно.

Вам катастрофически не хватает знания приемов использования сервера и типовых трюков.
16 май 14, 09:21    [16025079]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
П-Л,

Теоретически я Вас понял, спасибо за подсказку!
Помучаюсь, поизучаю, думаю, получится. А то я смотрю, тут не очень любят тех, кто в первый раз сталкивается с определенной задачей... Еще раз спасибо, сударь! ;)
16 май 14, 22:17    [16029749]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
П-Л,

Как уже знаете, дошел я уже до вью. Только вот незадача! Если отнять все права с таблицы. Навесить на таблицу вью, дать права на вью. То sql не дает вносить данные. Как быть?
20 май 14, 21:28    [16045080]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
То sql не дает вносить данные. Как быть?

так и пишет - "Не дам вносить данные!" ?
20 май 14, 21:37    [16045118]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
eric555
Только sql не дает вносить данные. Как быть?

Причем только через .adp файл, через ODBC полет нормальный!
20 май 14, 21:37    [16045120]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
так и пишет - "Не дам вносить данные!" ?

Ну типа прав на инсерт нет:) А на основную таблицу вообще права никому давать не хочу!
20 май 14, 21:38    [16045124]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Ну типа прав на инсерт нет:)

Типа прав на инсерт куда ?
Вы опять не знаете, какую именно команду ваше приложение передает серверу ?
20 май 14, 21:40    [16045136]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory,

Знаю, знаю:) Через вью идет команда инсерт в основную таблицу!
20 май 14, 21:42    [16045145]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Через вью идет команда инсерт в основную таблицу!

Мда. И давно во вьювах разрешили команды инсерт ?
20 май 14, 22:21    [16045270]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory,

В смысле давно? Вы мне скажите как правильнее сделать, я же практикуюсь, тренируюсь!!!
Glory,

Тестирую так, опишу подробнее: создал пока что одну таблицу с тремя полями:
Sn Tekst User_id
1 текст 6
2 текст 6
3 текст 7
4 текст 7

Навесил на нее вью и выбрал первые два поля - Sn и Tekst. Дал вьюхе права на вставку, выборку и обновление. Добавляю информацию в БД через формы access. Если подключить вью через ODBC, то вьюшка редактируется прекрасно и новые записи добавляются. Если делать подключение через .adp файлик access, то именно тогда и вылезает надпись: Запрещено разрешение "INSERT" на объект Table_1.
20 май 14, 22:24    [16045284]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
В смысле давно?

В смысле, что во вью невозможно написать ничего, кроме select-а

eric555
Тестирую так, опишу подробнее:

Ответьте на простой вопрос - вы знаете текст команды, которую выполняет сервер ?

eric555
Запрещено разрешение "INSERT" на объект Table_1.

А зачем вы делаете "INSERT" в Table_1, если INSERT должен быть в представление ?
20 май 14, 22:28    [16045299]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
А зачем вы делаете "INSERT" в Table_1, если INSERT должен быть в представление ?

Вы, наверное, меня не так поняли. Я подключаю вьюшку в аксесс через ODBC, открываю ее и добавляю прямо туда данные. Инсертится как-бы во вьюшку, но на самом деле инсерт то идет в Table_1.
20 май 14, 22:32    [16045314]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Инсертится как-бы во вьюшку, но на самом деле инсерт то идет в Table_1.

Господи.
Вы думате, сервер не различает, какой объект указан в тексте команды INSERT ?
Вы слишком много программируете мышкой. И очень мало руками.
20 май 14, 22:34    [16045323]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
Вы думате, сервер не различает, какой объект указан в тексте команды INSERT ?

Он все прекрасно различает, только вот почему если делать все тоже самое через .adp файлик, то данные во вью не добавляются??
20 май 14, 22:37    [16045335]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
только вот почему если делать все тоже самое через .adp файлик, то данные во вью не добавляются??

Наверное, у вас мышка не той системы.
Или вы некачественно нажимате ею на кнопочки.
20 май 14, 22:38    [16045338]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory,

Или же вы не так меня поняли и начинаете умничать, типа какой-то дурак хочет что-то сделать и не умеет мышкой пользоваться... ну чтож, и на этом спасибо...
20 май 14, 22:40    [16045345]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Или же вы не так меня поняли

А что вас понимать, если вы только и рассказывает, как производите какие-то манипуляции в adp мышкой ?
20 май 14, 22:50    [16045392]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
какие-то манипуляции в adp мышкой ?

что значит какие-то? я несколько раз уже написал, что вставляю данные через вью! Значит, имею ввиду команду инсерт. Инсерт во вью. А вью настроена на таблицу. Что тут непонятного?
20 май 14, 22:55    [16045407]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
что значит какие-то? я несколько раз уже написал, что вставляю данные через вью!

Сколько раз вы написали здесь текст команды ?

eric555
Значит, имею ввиду команду инсерт

Где текст этого инсерт ?


eric555
Инсерт во вью.

Ну так где текст команды ?

ЗЫ
Сейчас вы опять начнете расскза про то, как вы мышкой линкуете чего-то там в аксессе. Ппц
20 май 14, 22:59    [16045426]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory,

А вам трудно догадаться, что аксесс не показывает текст самой команды?
20 май 14, 23:16    [16045481]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
А вам трудно догадаться, что аксесс не показывает текст самой команды?

Я открою вам тайну, нужно самому найти этот текст команды
20 май 14, 23:18    [16045488]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
Я открою вам тайну, нужно самому найти этот текст команды

..лять, давайте страниц на 20 разнесем обсуждение, как текст этой команды вытащить!
Не помню я где ее вытащить, знаю что где-то в мониторинге SQL...
Давайте сейчас еще страниц на 10 дайте мне понять, что я элементарно вам не могу вытащить этот долбанный текст команды, на который у вас мания какая-то!
20 май 14, 23:23    [16045508]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
.лять, давайте страниц на 20 разнесем обсуждение, как текст этой команды вытащить!

Может лучше документацию по аксессу почитаете ?

eric555
Не помню я где ее вытащить, знаю что где-то в мониторинге SQL...
Давайте сейчас еще страниц на 10 дайте мне понять, что я элементарно вам не могу вытащить этот долбанный текст команды, на который у вас мания какая-то!

А чего вы хотите то ? Чтобы вам рассказали, как заставить сервер за вас формировать правильный текст команды ?
20 май 14, 23:25    [16045514]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
eric555
Member

Откуда: Москва
Сообщений: 397
Glory
Может лучше документацию по аксессу почитаете ?

Ну поехали умничать дальше, сейчас страниц на 10 разведем где в аксессе чего смотреть.
Все, спасибо...
20 май 14, 23:38    [16045552]     Ответить | Цитировать Сообщить модератору
 Re: Разграничение прав пользователей по записям БД (по строкам БД)  [new]
Glory
Member

Откуда:
Сообщений: 104760
eric555
Все, спасибо...

И вам всего хорошего
20 май 14, 23:44    [16045569]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Microsoft SQL Server Ответить