Предоставление доступа конкретного пользователя к конкретным (нескольким) документам - PullRequest
0 голосов
/ 23 июня 2011

Я строю небольшой проект с базой данных.У меня есть пользовательская таблица, в которой есть два столбца, user_id и name. Во второй таблице хранится идентификатор и имя некоторых документов: в ней также есть два столбца doc_id и doc_name. Я хочу предоставить доступ определенного пользователя к определенным (нескольким) документам.

Например:

user1 может получить доступ только к doc_2 и doc_3.

user2 имеет доступ только к doc_1 и doc_2 и т. Д.

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

Нужно ли менять дизайн базы данных?(например, добавить столбец в документы, чтобы сохранить имя каждого пользователя, который может получить к нему доступ?) Если это так, можете ли вы сказать мне, какие изменения я должен сделать?можно сделать путем создания представлений?В этом случае мне все еще нужно изменить дизайн базы данных?Если это так, можете ли вы сказать мне пример просмотра, пожалуйста?В этом случае мне нужно будет создать представление для каждого пользователя?Например, если есть 100 пользователей, мне нужно будет создать 100 просмотров?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вам нужен третий стол (я назову его user_doc). Вам нужно 2 основных столбца; user_id и doc_id.

Затем вы вставляете одну строку для каждого документа и пользовательской комбинации, которая имеет права доступа.

Если их user_id не отображается в таблице user_doc с релевантным doc_id, у них нет разрешения.

Пример запроса для получения списка всех документов, к которым у определенного пользователя есть доступ:

SELECT doc_id FROM user_doc WHERE user_id = @UserId

или для поиска всех пользователей, имеющих доступ к определенному документу:

SELECT user_id FROM user_doc WHERE doc_id = @DocId
0 голосов
/ 23 июня 2011

Вы должны иметь таблицу РАЗРЕШЕНИЯ с отношениями между пользователями и документами. Столбцы могут быть PERMISSIONS_ID, USER_ID (ссылка на пользователя), DOC_ID (ссылка на документ). Каждый раз, когда пользователю должен быть предоставлен доступ к документу, эта таблица должна быть заполнена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...