Можно ли защитить паролем базу данных SQL-сервера даже от администраторов сервера? - PullRequest
2 голосов
/ 29 декабря 2010

Я хочу установить приложение (ASP.Net + SQL Server 2005 Express) в локальной сети какой-то небольшой компании для демонстрации его на некоторое время, но я также хочу, чтобы никто даже системный администратор не имелразрешение на эту базу данных и любое предоставление разрешения требует безопасного прохода, который у меня есть.Я просто хочу, чтобы моя структура таблиц, а также отношения и функции были скрыты, а шифрование данных не имеет никакого преимущества

Мне нужно больше времени уделять этой статье Шифрование базы данных в SQL Server 2008 Enterprise Edition , которые я нашел из этого ответа возможно ли защитить паролем базу данных sql-server

, но

1.Мне нравится быть уверенным и более ясным в этом, потому что другой ответ на этой странице говорит:

Да.Вы можете защитить его от всех, кроме администраторов сервера.

2.Если это возможно, БД должна быть корпоративной версии?

3. Есть ли другие возможные решения и обходные пути для этого?

4.Если я установил новый экземпляр с моим собственным паролем sa, могу ли я запретить другим администраторам экземпляров присоединять mdf к своим собственным?

заранее спасибо

Ответы [ 5 ]

2 голосов
/ 29 декабря 2010

Эти люди могут получить доступ к вашему серверу или экземпляру SQL Server независимо от того, что вы делаете

  • любой, кто имеет физический доступ к серверу
  • администраторы домена сети
  • любой, у кого есть пароль sa
  • группа Windows с правами локального администратора и / или sa (что подразумевает групповую политику и т. Д.)

Вы должны разместить свой сервер вне офиса, если хотитеникто не сможет зайти на него.

Это , что просто

1 голос
/ 29 декабря 2010

Как уже говорилось на других постерах, вы не можете password protect a database - отказать в разрешениях - системному администратору. Одна из альтернатив, которая не обсуждалась, - это размещение на ноутбуке. Поскольку это демонстрационная версия, вы можете разместить сайт базы данных и ASP.Net на ноутбуке и подключить его к своей сети - разумеется, с разрешения Sysadmin - и попросить клиентов протестировать приложение с вашего ноутбука.

Это позволит вам защитить базу данных от системных администраторов и даст дополнительное преимущество: если вы захотите, чтобы они увидели базу данных, вы могли позволить им использовать ваш ноутбук, и вы будете наблюдать за их действиями в вашей базе данных. Это последнее преимущество - то, что вы не можете легко сделать с помощью размещенного решения.

Приведенный выше ответ на пункт 3. Что касается пункта 2, вам понадобится выпуск SQL Server Enterprise Edition, чтобы воспользоваться преимуществами прозрачного шифрования данных (TDE) в соответствии с ссылкой для сравнения на MSDN . Если щелкнуть ссылку «Безопасность предприятия» вверху, она покажет таблицу, объясняющую различные возможности безопасности для разных версий SQL Server, и показывает, что TDE предназначен только для выпуска Enterprise Edition.

1 голос
/ 29 декабря 2010

Существует несколько разных способов решения этой проблемы.

  1. Размещать его вне офиса - я думаю, что самым простым решением было бы просто разместить его вне офиса.Существует множество дешевых общих хостингов, которые вы можете использовать.

  2. Блокировка системных администраторов с этого сервера .Предполагая, что у вас есть root-доступ и только вы используете / нуждаетесь в этом сервере, вы можете изменить пароль root и любые другие пароли на сервере.

  3. Делайте то, что вы в настоящее время делаете, и попытайтесь сделатьчто-то безопасное, даже если тот, у кого нет доступа, имеет root-доступ к серверу.Этот способ звучит сложно и небезопасно даже в лучшем случае.

1 голос
/ 29 декабря 2010

У меня есть вклад для (3):

Полагаю (возможно, я ошибаюсь), у вас на самом деле нет конфиденциальной информации в вашей базе данных, вы просто хотите, чтобы кто-то в локальной сети не использовал ваши вещи.

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

Таким образом, любой системный администратор, который просто интересуется данными или хочет изменить свою историю на 13371337, не захочет переживать проблему декомпиляции вашего кода и / или взлома вашего шифрования (на время демонстрации) и Ваша (предполагаемая) проблема будет решена.

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

1 голос
/ 29 декабря 2010

В SQL Server вы не можете «защитить паролем» базу данных - вы можете ограничить разрешения, предоставляемые данному пользователю или роли в вашей базе данных.

Вы можете DENY любой, кто имеет доступ к вашей базе данных - но это немного странно, поскольку никто не сможет ее использовать ....

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

Если вы не доверяете даже своим системным администраторам, у вас большие проблемы .....

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