Есть ли способ сделать транзакции или соединения только для чтения в SQL Server? - PullRequest
2 голосов
/ 11 февраля 2009

Мне нужно быстрое «нет» для DELETE / UPDATE / INSERT, так как инструмент отчетности 3p позволяет пользователям писать свой собственный SQL.

Я знаю, что мне, вероятно, следует добавить нового пользователя и установить разрешения для таблиц / sp / views / etc ..., а затем создать новое подключение как пользователь с ограниченными правами.

Существует ли более быстрый способ заставить транзакцию или соединение в SQL Server работать только в режиме чтения?

Ответы [ 5 ]

3 голосов
/ 11 февраля 2009

Я не знаю. Если инструмент 3P настолько сумасшедший, я был бы совершенно параноидален в отношении того, что я ему подвергал. Я думаю, что настройка нового пользователя - это лучшее. Может быть, даже просто предоставив им чертианские представления и / или сохраненные данные и назвав это днем.

2 голосов
/ 11 февраля 2009

Почему вас беспокоит способность ваших пользователей добавлять произвольный SQL в свои отчеты запросов? Если у них есть права на изменение данных в вашей базе данных, они могут просто подключиться к ней с помощью любого клиента ODBC и напрямую выполнить SQL.

Я не уверен, что проблема заключается в 3P, похоже, что вам нужно ограничить пользователей, но не сделали этого.

Если у вас есть класс пользователей, которым нельзя изменять ваши данные, настройте их учетные записи таким образом. Полагаясь на то, что они будут использовать только инструмент отчетности, который не позволяет им изменять данные, это дыра в безопасности, через которую я мог бы проехать на грузовике.

Если им разрешено изменять данные, ограничение сеансов из 3P не поможет защитить вашу систему.

Если я не понял вашу установку. Я был неправ раньше, просто спросите мою жену. В таком случае, не стесняйтесь обучать меня.

1 голос
/ 11 февраля 2009

Это должно быть с именованными пользователями? У меня есть пользователь «отчет» и пользователь «браузер», который просто имеет права выбора для большинства таблиц. Любой, кому нужны данные, использует эти учетные записи, и, поскольку они выбраны только, мне не о чем беспокоиться.

См. Ссылку Керна.

1 голос
/ 11 февраля 2009

Изменение разрешений для пользователя (которое используется в строке подключения) на SQL Server.

0 голосов
/ 11 февраля 2009

Если у вас есть контроль, когда соединение создается и закрывается, вы можете выполнить BEGIN TRAN, а затем выполнить ROLLBACK в конце. Таким образом, все, что делает этот инструмент отчетности, будет отменено в конце. Однако, если у него есть возможность управлять этими транзакциями или новыми соединениями, или если пользовательская база неизвестна и потенциально опасна, она не является надежной. Кроме того, любая крупная транзакция может привести к блокировке вашей базы данных действиями пользователей

Я должен сказать, что реальный ответ - безопасность, назначаемая пользователям. «Более быстрый» способ - это новый пользователь с правами только на чтение.

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