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

Откуда: Самара
Сообщений: 70
Добрый день! Уважаемые господа, извините, если вопрос не совсем корректный:
При установке прав пользователей на таблицы возможно : чтение, изменение, удаление, добавление (целиком на таблицы).
Посмотрел поиск по форуму нашел возможность разграничения прав не только по таблицам , но и по полям.
Видел также ссылку на описание назначения прав доступа по записям.
А насколько реально разрешить изменять только ячейки таблиц со значением NULL, то есть - право на добавление, но не сторок, а новых значений и не возможность исправить ранее уже внесенные данные.
Заранее спасибо.
11 мар 12, 18:46    [12227468]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Allllllllllex
А насколько реально разрешить изменять только ячейки таблиц со значением NULL, то есть - право на добавление, но не сторок, а новых значений и не возможность исправить ранее уже внесенные данные.
Реально. Но к системе безопасности это не имеет никакого отношения.
11 мар 12, 18:47    [12227478]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Allllllllllex
А насколько реально разрешить изменять только ячейки таблиц со значением NULL, то есть - право на добавление, но не сторок, а новых значений и не возможность исправить ранее уже внесенные данные.
Только на триггерах, в системе безопасности такого нет.
11 мар 12, 18:50    [12227492]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Allllllllllex
Member

Откуда: Самара
Сообщений: 70
Гавриленко Сергей Алексеевич
Allllllllllex
А насколько реально разрешить изменять только ячейки таблиц со значением NULL, то есть - право на добавление, но не сторок, а новых значений и не возможность исправить ранее уже внесенные данные.
Реально. Но к системе безопасности это не имеет никакого отношения.


Спасибо!
Согласен, что не имеет в широком смысле, но, например, ситуация, когда записи уже в таблице есть, и работа пользователя - просто проставить значения параметров в одно поле. То есть ему нужен доступ на изменение таблицы. А как защитить от изменения данные, полученные ранее от других пользователей средствами сервера, а не клиента. (клиент - адп проект, где пользователь может че хошь).
11 мар 12, 18:59    [12227537]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Allllllllllex
Гавриленко Сергей Алексеевич
пропущено...
Реально. Но к системе безопасности это не имеет никакого отношения.


Спасибо!
Согласен, что не имеет в широком смысле, но, например, ситуация, когда записи уже в таблице есть, и работа пользователя - просто проставить значения параметров в одно поле. То есть ему нужен доступ на изменение таблицы. А как защитить от изменения данные, полученные ранее от других пользователей средствами сервера, а не клиента. (клиент - адп проект, где пользователь может че хошь).
12227492
11 мар 12, 19:00    [12227541]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Allllllllllex
Member

Откуда: Самара
Сообщений: 70
alexeyvg
Allllllllllex
А насколько реально разрешить изменять только ячейки таблиц со значением NULL, то есть - право на добавление, но не сторок, а новых значений и не возможность исправить ранее уже внесенные данные.
Только на триггерах, в системе безопасности такого нет.


То есть такой глобальный тригер, который запрещяет изменять данные в ячейках определенной таблицы, если они там уже есть. Хитро. А, простите, нельзя ли примерчик, если чета подобное уже успешно делалось ранее.
11 мар 12, 19:06    [12227562]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Allllllllllex
alexeyvg
пропущено...
Только на триггерах, в системе безопасности такого нет.


То есть такой глобальный тригер, который запрещяет изменять данные в ячейках определенной таблицы, если они там уже есть. Хитро. А, простите, нельзя ли примерчик, если чета подобное уже успешно делалось ранее.
Ну, не глобальный, а просто триггер :-)

Берёте какой нибуть пример из справки: http://msdn.microsoft.com/ru-ru/library/ms189799.aspx

и модифицируете:

CREATE TRIGGER Purchasing.LowCredit ON Purchasing.PurchaseOrderHeader
AFTER UPDATE
AS
DECLARE @creditrating tinyint, @vendorid int;
IF EXISTS (
	SELECT *
	FROM Purchasing.PurchaseOrderHeader p 
		JOIN deleted AS d 
			ON d.PurchaseOrderID = p.PurchaseOrderID 
			AND d.SOMEFIELD IS NOT NULL AND (d.SOMEFIELD <> p.SOMEFIELD OR p.SOMEFIELD IS NULL)
	)
BEGIN
	RAISERROR ('UPDATE SOMEFIELD IS DISABLED!!!', 16, 1);
	ROLLBACK TRANSACTION;
	RETURN 
END;
GO
11 мар 12, 19:34    [12227693]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Allllllllllex
Member

Откуда: Самара
Сообщений: 70
Спасибо, alexeyvg!

Еще один ньюанс: можно ли запрет не изменение ячейки сделать, так, чтобы он включался на следующий день. Т.е. в течнии рабочего времени пользователь еще может изменить данные (если ошибся или изменились значения показателей, просто для удобства работы), а на следующий день уже нет. (Не через 24 часа после добавления всей записи, а через 24 часа после последнего изменения именно этой ячейки).
11 мар 12, 20:45    [12228006]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Allllllllllex
Member

Откуда: Самара
Сообщений: 70
Нет не через 24 часа, а на следующий день.
И сообщение об ошибке:

"Ровно в 12 часов ночи Ваш протокол по результатам работы за смену превратится в тыквууу!!"
11 мар 12, 21:10    [12228084]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Allllllllllex
Нет не через 24 часа, а на следующий день.
И сообщение об ошибке:

"Ровно в 12 часов ночи Ваш протокол по результатам работы за смену превратится в тыквууу!!"
Ну так дописывайте логику в триггер. Или вы текст не читали, а просто к себе скопировать хотите? А вдруг в коде сюрприз? :-)
11 мар 12, 21:44    [12228191]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Allllllllllex
Member

Откуда: Самара
Сообщений: 70
Большой спасиб, alexeyvg! :))

Почти ровно 14 тысяч ответов... , жаль счас не модно говорить :"Респект и уважуха", а то прям тот самое
11 мар 12, 22:56    [12228503]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Allllllllllex
Почти ровно 14 тысяч ответов
Я и больше могу, только ерунда получается :-)
11 мар 12, 23:06    [12228558]     Ответить | Цитировать Сообщить модератору
 Re: Возможен ли доступ на изменение только к пустым ячейкам таблиц  [new]
Allllllllllex
Member

Откуда: Самара
Сообщений: 70
: )))
11 мар 12, 23:19    [12228623]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить