powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как дать доступ на уровне с строк в таблице?
7 сообщений из 7, страница 1 из 1
Как дать доступ на уровне с строк в таблице?
    #32052761
Добрый день всем.
Понимая, что реально нет такого в MS SQL.
Но мне необходимо решить такую проблему.

Уже есть идеи:
1.Сделать каждому юзеру свою таблицу и потом джоинить их.
2. Идентиффикатор пользователя в строку.

Пожалуйста Ваши идеи по парой слов.

С уважением Евгений Доронин.
...
Рейтинг: 0 / 0
Как дать доступ на уровне с строк в таблице?
    #32052764
sorgery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одна таблица, пользователю давать через вьюху (фильтруем по юзверю)... Для того чтобы записывать кто вставил строку используй Current_User в дефаулт велью...
...
Рейтинг: 0 / 0
Как дать доступ на уровне с строк в таблице?
    #32052768
Я это и имел ввиду во втором способе. Но за подтверждение этой мысли - спасибо!
...
Рейтинг: 0 / 0
Как дать доступ на уровне с строк в таблице?
    #32052785
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри здесь
...
Рейтинг: 0 / 0
Как дать доступ на уровне с строк в таблице?
    #32052788
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При вашем подходе пользователь монопольно владеет строкой (связь 1-1).
Для многопользовательского доступа используйте след. механизм.
Таблицу не разделять.
Сделать дополнительную таблицу.
permissions с полями key и user
Где key - ключ в вашей таблице, user - идентификатор пользователя
Сделать вьюху или процедуру, что больше нравиться.
Запрос выглядит так
select *
from <Ваша таблица> a
inner join permission b on b.key = a.<Ключ> and user = <идентификатор пользователя>
В качестве идентификатора пользователя можете использовать, например, SUSER_SNAME().
Тогда добавляя и удаляя записи из permissions вы управляете доступом к отдельным записям вьюхи.
...
Рейтинг: 0 / 0
Как дать доступ на уровне с строк в таблице?
    #32052810
VAT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, доступ к лицевым счетам:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE VIEW user_account ( account, view_detail, brw, db, kr ) AS
SELECT
	acc_grp.account,
	acc_grp.view_detail,
	acc_grp.brw,
	acc_grp.db,
	acc_grp.kr 
FROM 
	acc_grp join
 	members on acc_grp.user_group_id = members.user_group_id 
WHERE
 	members.user_id = user_id() 


В acc_grp - лицевой счёт, группа юзеров, права.
В members - user_id и user_group_id.
А дальше эту вьюху джойним с чем попало, где есть account.
Сейчас в acc_grp >193000 строк, и нормально.
...
Рейтинг: 0 / 0
Как дать доступ на уровне с строк в таблице?
    #32052877
Огромное спасибо всем участникам обсуждения!
1. akuz - буду использовать именно эту идею!
2. Jimmy - в споре рождается истина!
3. VAT - за сообщение в стиле "а мы его по морде чайником", в данном случае - конкретной реализацией!

Отдельное спасибо sorgey - как первому пришедшему на помощь и давшему надежду!
Виват форуму SQL.ru!
SQL.ru -жил,SQL.ru -жив,SQL.ru -будет жить!

Приношу извинения за всплеск эмоций (поясню я должен внедрить эту идею до понедельника и съэкономил много времени благодаря SQL.ru).

Буду рад всем помочь!

Мои интересы типичны:
VS C++, библиотеки к нему (особенно ищу Stingray Studio 2001)
Java (но я не успеваю stay current)

С уважением , Евгений Доронин.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как дать доступ на уровне с строк в таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]