защита нескольких баз данных сервера sql при развертывании клиента

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

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

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

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

так как защитить эту базу данных в случае любого клиентского развертывания базы данных веб-приложения

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


person Joy    schedule 26.12.2011    source источник
comment
Почему вы хотите это сделать?   -  person Sergio Tulentsev    schedule 26.12.2011
comment
@SergeiTulentsev, так как они просят приложение, которое можно запустить в Интернете. но в то же время они хотят, чтобы он был их собственным. таким образом я могу защитить свой код. но не базу данных. он сказал, что оставляет за собой все права на это. Я согласился при условии, что авторские права на код будут принадлежать нам. но лицензия на удобство использования будет их   -  person Joy    schedule 27.12.2011


Ответы (2)


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

Вы можете рассмотреть компактную версию SQL Server ( http://www.microsoft.com/sqlserver/en/us/editions/compact.aspx) Я считаю, что он больше похож на встроенную базу данных, поэтому нет прямого доступа за пределами вашего приложения.

person Community    schedule 26.12.2011
comment
сколько данных может содержать компактная версия SQL Server? это работает с asp.net? а можно ли посмотреть данные компактного издания? снаружи? или структура таблицы? - person Joy; 27.12.2011
comment
Добавлена ​​ссылка на страницу компактного издания. Я знаю, насколько пользователь видит, что это будет просто файл на сервере. Он поддерживает ASP, и как вы видите данные, я не уверен. - person ; 31.12.2011
comment
но я предполагаю, что Entity framework или сообщество Nhibernate плохо поддерживают компактную версию SQL Server? это немного не по теме. но все же спрашиваю .. и как abt sql lite по сравнению с sql server compact edition? - person Joy; 11.01.2012

Это вообще очень плохая идея.

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

person TheBoyan    schedule 26.12.2011
comment
Определенно я знаю, что это очень плохая идея. но посмотри выше в моем комментарии для Сергея. Я ответил, почему мне это нужно. каким-то образом я в исправлении. так вот почему я здесь. так что как приступить к этой проблеме с решением. я определенно не отрицаю, что это будет очень глупо ... но к решению, если у вас есть другая альтернатива. так я об этом и спрашиваю :) - person Joy; 27.12.2011