Заменить SQL Compact на SQL LocalDB на клиентских компьютерах с интегрированной безопасностью = False
Microsoft устарел SQL Compact, поэтому я хотел бы заменить его SQL LocalDB на клиентских компьютерах.
При использовании "Integrated Security = True" замена прекрасно работает на клиентских машинах, но как только я устанавливаю "Integrated Security = False", то я получаю
Ошибка входа для пользователя 'TestUser'
Я не могу использовать интегрированную безопасность на клиентах.
Они не должны иметь возможности получить доступ к базе данных, не зная имя пользователя / пароль, который имеет уже зашифровано в их машине.конфиг.
Я создал логин в VS следующим образом:
CREATE LOGIN TestUser WITH PASSWORD = 'asdfsdfasdf';
GO
CREATE USER TestUser FOR LOGIN TestUser WITH DEFAULT_SCHEMA = [dbo];
GO
exec sp_addrolemember 'db_owner', 'TestUser'
GO
Строка соединения выглядит примерно так:
<add name=" ConnectionStringName"
connectionString="Data Source=(LocalDB)v11.0;
AttachDbFilename=|DataDirectory|TEST.mdf;
Integrated Security=False; User Id=TestUser;
Password=asdfsdfasdf"
providerName="System.Data.SqlClient" />
Я опубликовал этот аналогичный вопрос на форумах MSDN, но я не получаю хороших ответов.
Кроме того, похоже, что есть аналогичные вопросы по stackoverflow, но нет хороших ответов.
LocalDB и Entity Framework 6-безопасность
соединение LocalDB с интегрированной безопасностью=False
У меня есть ощущение, что я уже знаю ответ в том, что LocalDB не может работать на других компьютерах с отключенной встроенной безопасностью, потому что теоретически он использует локальный экземпляр SQL server, в котором имена входа хранятся в главной базе данных, а главная база данных клиентов не будет соответствовать имени входа в локальной базе данных.
На мой взгляд, это кажется нелепым, что Microsoft откажется от проблем безопасности в LocalDB, оставив включенной интегрированную безопасность.Любой мог бы найдите базу данных, скопируйте ее на свой компьютер, а затем используйте инструменты SQL для чтения базы данных, даже не зная имени пользователя / пароля.
1 ответ:
Согласно документации MSDN:
Вы должны использовать интегрированную безопасность при использовании LocalDB или Вариант ключевое слово attachdbfilename.