2009-09-17 2 views
0

У меня есть клиент-серверное приложение, в котором клиент .NET обращается ко всем данным и хранимым процедурам в базе данных SQL Server 2008.Защита данных SQL Server 2008

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

ответ

7

Вы не можете предотвратить доступ системного администратора к данным, а также не должны.

Однако никто, кроме назначенного dba, не должен иметь пароль для учетной записи sa. Если у sa нет пароля или у многих людей есть пароль, измените это сейчас. Если приложение обращается через sa, немедленно измените его.

Кроме того, вы можете наилучшим образом ограничить доступ, чтобы удалить доступ ко всем другим учетным записям из таблиц и представлений (включая выбор доступа) и разрешить доступ только exec через хранимые процедуры. Таким образом, любой, кроме назначенного администратора, может делать только то, что хранится в procs, и ничего больше. Вы не можете этого сделать, однако, если вы использовали какой-либо динамический sql либо в приложении, либо в хранимых процедурах, что является одной из причин, почему динамический sql является плохой идеей.

+0

, поэтому, если у пользователя нет доступа SELECT в определенной таблице, но имеет доступ EXEC к хранимой процедуре, которая делает SELECT из той же таблицы, пользователь может видеть данные? –

+0

Да, но только через хранимую процедуру. – MartW

+0

Да, вы правы. –

3

Вы не можете заблокировать sa или другого системного администратора, так как доступ к полной системе является неотъемлемой частью их роли. Вы можете попробовать шифровать данные, чтобы они не имели смысла вне вашего приложения, хотя это может усложнить любые будущие потребности в отчетах.

+0

Шифрование на самом деле не вариант, так как мне придется адаптировать все приложение (я думаю). Также я уверен, что есть штраф за исполнение. Еще спасибо за ответ. – Marc