Използвам интегрирана защита в приложение ASP.net, IIS и SQL Server са хоствани на една и съща сървърна машина с Windows Server 2008 R2.
Възможно ли е да се позволи на потребителите да имат достъп до приложението от мрежата и да влизат в него, но да не им позволяват да влизат директно в базата данни или чрез SQL Server Management Studio?
Опитвам се да защитя достъпа до базата данни, защото приложението ми ще бъде инсталирано на сървъра на клиента в помещенията на клиента.
Ето моята връзка за връзка, която използвам понастоящем
<add connectionString="Server=.sqlexpress;Database=DB89akwA;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />
<add connectionString="Server=.sqlexpress;Database=DB89akwA;Integrated Security=true" name="MainAppConnectionString" providerName="System.Data.SqlClient" />
Това са двата низове за връзка, които използвам понастоящем, една е за удостоверяване на ASP.net и втората е използвана от моята кандидатура. Тези струни са едни и същи и имат една и съща база данни.
Някакви предположения?
Отговори:
2 за отговор № 1Не е възможно да се "защити" база данни, работеща в помещенията на клиента. Персоналът на клиента може да получи паролата от стринга за свързване ASP.Net. Администраторът на домейна може винаги достъп до базата данни (съществува действителна статия в MSDN, описваща процеса: Свържете се със SQL Server, когато системните администратори са заключени).
Ако искате да скриете интелектуалната собственостусетете базата данни, а след това единственото решение е да не разположите базата данни на клиента (използвайте хоствана база данни като SQL Azure например).
Ако просто искате да предотвратите намесата на клиента в базата данни, можете да го посочите в договора. Одит и откриване на смущения е възможен.
-2 за отговор № 2
Да, това е напълно възможно. Лицето, влизано в ASP.NET, използващо интегрирана защита, не може да влезе в SQL Server със същите идентификационни данни. И двата са напълно изключени. Това е възможно само ако SQL Server е зададен, за да им позволи достъп.
Моят съвет е да създадете SQL Loginи потребителите, и само им дават достъп до SQL Server. В приложението си, когато създавате връзката String, не поставяйте интегрираната защита на true и просто оставете потребителя да въведе своето Sql потребителско име и парола за достъп до базата данни.