Перейти к публикации
Программа учета компьютеров и ИТ оборудования IT Invent
pskigor

Запрет доступа к базе MSSQL через SQL Server management Studio

Рекомендованные сообщения

Добрый. Подскажите такой момент. Нужно настроить доступ пользователю только на чтение ПО, однако не исключёт вариант того что пользователь может зайти в базу через MSSQL Server Managment Studio и подредачить там что-то. Хочу ограничить права на уровне базы. Попробовал решение в лоб - закинуть пользователя в роли db_denydatawrite и db_dataread, однако программа стала ругаться что в какие то таблицы ей нужны DELETE и UPDATE. Можете подсказать как корректно настроить такое поведение? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

Есть один способ настройки системы безопасности на уровне сервера.
 
Пользоваться им нужно осторожно.
 
на MS SQL сервере в разделе Server Objects -> Triggers необходимо создать триггер:
 
CREATE TRIGGER [TR_SERVER_LOGON]
ON ALL SERVER
FOR LOGON
AS
BEGIN

	IF APP_NAME() <> 'IT Invent' and SUSER_SNAME() <> 'admin_user'
	BEGIN

		rollback

	END

END

 

Данный триггер проверяет любую попытку авторизации. 
Если имя приложения в котором идет авторизация не "IT Invent" и при этом логин пользователя не "admin_user" то авторизация будет прервана. 
"admin_user" это логин администратора который всегда должен иметь доступ к системе.
Таким образом к базе можно будет подключиться только из программы IT Invent или через логин админа. При желании триггер можно модернизировать под свои реалии, добавив несколько логинов администратора.
 
Проверить что возвращают функции APP_NAME() и SUSER_SNAME() можно непосредственно в самой программе:
 
image.thumb.png.7561ff63b66b434f5c35c9962d9a092d.png
 
 
Главное не ошибиться иначе будут сложности с доступом к базе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×