Я искал тяжело разобраться в вопросах безопасности, связанных с SQL Server. Мы разрабатываем приложение .NET, предназначенное для SQL Server 2008, и мы хотим использовать FileStream.Интегрированная безопасность SQL Server
Теперь я узнал, что SQL Server разрешает FileStream через API Win32, если вы используете Integrated Security. Проблема в том, что у нас около 80% нашего приложения завершено, но оно полностью основано на проверке подлинности SQL. Таким образом, мы делаем прямое приложение INSERT в нашем приложении и не используем хранимые процедуры для каждой операции CRUD.
Это относительно безопасно, потому что я могу хранить имя пользователя и пароль SQL в зашифрованном виде. Я знаю, что пароль переносится в Clear Text, но я готов принять это.
Мы хотим, чтобы конечные пользователи могли подключаться к базе данных с помощью таких инструментов, как Crystal Reports, и для этого у нас есть дополнительный логин SQL, который имеет только права SELECT.
Теперь, если мы перейдем к интегрированной безопасности, мы должны предоставить отдельным пользователям (через группы AD и т. Д.) Права делать то, что может сделать приложение. В противном случае приложение не сможет выполнить эту работу. Но тогда у конечного пользователя также будут эти права, когда он подключится прямо к БД.
Я вижу, что люди говорят, что вы должны использовать хранимые процедуры для каждой операции CRUD и предоставлять права EXEC только AD-группе, но как бы я это сделал? Я не вижу, как пользователь будет иметь разные разрешения при подключении напрямую или через приложение ... Может кто-нибудь просветить меня по этому поводу.
Дополнительный вопрос для бонусных баллов: Intergrated Security не будет работать на рабочей группе, насколько я понимаю. Как люди получают FileStream для работы в рабочей группе? Или это считается невозможным?