Это сложный вопрос, и он может быть невозможен даже на 100%.Однако, есть несколько хитростей по его настройке:
- Установите новый с именем экземпляр SQL-сервера с пользовательской учетной записью SA (имя и пароль).Существует метод установки для вызова SQL-сервера «Автоматическая установка», который позволяет вам указать все параметры установки для SQL-сервера в INI-файле, а затем запустить установку без вывода сообщений.Ознакомьтесь с документацией здесь: Автоматическая установка SQL Server 2008 r2
- Создайте базу данных, таблицы, процедуры и т. Д. С помощью своего волшебного сценария установки SQL (используйте зашифрованные хранимые процедуры, если хотите,но они тоже можно взломать)
- Добавить / проверить разрешения схемы для учетной записи custom SA и удалить все разрешения схемы для всех ролей администратора.Цель здесь состоит в том, чтобы никакие роли не имели каких-либо разрешений схемы для вашей базы данных, и только ваш пользователь SA имеет разрешение (не назначенное ролью, а непосредственно пользователю).
Есть несколько коммерческих приложений, о которых я знаю, которые даже не говорят вам, что устанавливают экземпляр MS SQL Express.Они тоже создадут свой именованный экземпляр с именованной учетной записью SAЯ не могу сказать, что мне это нравится как клиенту (поскольку SQL наносит удар по процессору, и я не хочу, чтобы на моей рабочей станции работали "секретные" экземпляры).Но если вы заранее сообщите об этом своим клиентам, они могут понять.
** Имейте в виду, что опытный администратор базы данных может разбираться с системными таблицами и не иметь права вручную предоставлять доступ к вашей базе данных.Эти методы на самом деле просто «запутывание» и не будут на 100% пуленепробиваемыми.
В качестве примечания: С множеством доступных сторонних поставщиков данных и технологий веб-сервисов,Я думаю, что многие компании находят, что одна только схема их базы данных больше не является проприетарной или ценной.Было время, когда одна схема базы данных могла представлять сотни часов кодирования.Но сегодня такие инструменты, как EntityFramework, NHibernate, Linq-to-SQL, XPO и т. Д., Создают схему базы данных для вас на основе определений классов программного обеспечения и атрибутов кода.Так что просто видеть таблицу БД не очень ценно.Кроме того, вы можете написать кучу бизнес-логики, статистического анализа или других вспомогательных методов в вашем программном обеспечении, которых нет в схеме базы данных.По моему мнению, именно в этом и заключается сегодняшняя « добавленная стоимость » в функциональности бизнес-логики, анализа и отчетности вашего программного обеспечения, а не в необработанных таблицах данных.
Именно поэтомудругой автор рекомендовал запутывать хранимые процедуры, потому что они могут многократно работать с самой схемой базы данных, если у вас есть хорошие процедуры анализа и составления отчетов.Это также то, что клиенты, скорее всего, хотели бы настроить для своих собственных потребностей отчетности.Вы можете быть склонны придерживаться политики, согласно которой настраиваемые отчеты могут составлять только в вашей компании (эй, даже такие крупные парни, как SAP, не терпят, кто что может изменить).