2008-11-05 3 views
1

Я создал приложение, использующее SQL Express 2005, и я хочу его развернуть, но проблема в том, что любой, у кого есть SQL Management Studio (или что-то в этом роде), установленный на его компьютере, может подключитесь к моей базе данных и измените ее. В любом случае, чтобы конечные пользователи не могли видеть или редактировать содержимое моей базы данных, даже тех, у кого есть привилегии администратора?SQL Express 2005, Secure Database File

+0

Что делать, если я устанавливаю SQL Express с пользовательским паролем для учетной записи SA и в режиме микширования? Можно ли подключиться к нему, не зная этого пароля? – mrtaikandi 2008-11-05 10:22:23

+0

Это либо/или вещь, либо он либо заставляет вас пройти аутентификацию с помощью сервера sql server, либо с помощью Windows auth. Это не заставит кого-то сделать оба, поскольку один делает недействительным другой. Вы должны заблокировать его до авторизации SQL Server, только если вы не хотите, чтобы Windows Auth работала. – 2008-11-05 10:37:38

ответ

2

Я думаю, вы имеете в виду тот факт, что по умолчанию установки SQL Server позволяют выполнять проверку подлинности Windows и SQL Server. Если вы удалите режим проверки подлинности Windows, пользователям придется подключаться через проверку подлинности SQL Server.

Это из http://support.microsoft.com/kb/247931

аутентификации SQL Server

SQL Server аутентификации опирается на внутренний список пользователя, поддерживаемой SQL Server компьютера. Этот список не включает пользователей Windows NT и относится к компьютерам SQL Server. Пользователями являются , созданные и настроенные с использованием диспетчера сервера SQL . Для того, чтобы использовать этот метод аутентификации, выполнить с следующие шаги:

• Если вы подсоединили через Connectivity Open Database (ODBC), в администраторе ODBC, выбрать проверку подлинности SQL Server при настройке источника данных.

• В Объекты данных ActiveX (ADO) строки соединения, включают параметры «UID» и «PWD», когда вы использование ODBC и «ID пользователя» и «Пароль» при использовании поставщика SQLOLEDB ,

1

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

Вы не можете изменить это.

Возможно, вы могли бы подумать о том, почему вы хотите предотвратить такой доступ?

Ожидаю, что вы хотите предотвратить несанкционированное или случайное повреждение данных?

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

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

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

Шифрование добавляется с помощью оговорки о

WITH ENCRYPTION 

в ваших создании или изменении заявлений.