在具有 Integrated Security = False 的客户端计算机上将 SQL Compact 替换为 SQL LocalDB
Replace SQL Compact with SQL LocalDB on client machines with Integrated Security = False
Microsoft 已弃用 SQL Compact,因此我想在客户端计算机上将其替换为 SQL LocalDB。
当使用 "Integrated Security = True" 时,替换在客户端机器上工作正常但是一旦我设置 "Integrated Security = False" 然后我得到
Login failed for user 'TestUser'
我无法在客户端上使用集成安全性。
他们不应该在不知道用户名/密码的情况下访问数据库,该用户名/密码已经在他们的 machine.config 中加密。
我在 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 论坛上发布了一个类似的问题,但没有收到很好的回复。
另外,好像Whosebug上也有类似的问题,但是没有很好的回答。
LocalDB and Entity Framework 6 - Security
LocalDB connection with Integrated security=False
我感觉我已经知道了答案,因为 LocalDB 无法在其他关闭了集成安全性的计算机上工作,因为理论上它使用的是 SQL 服务器的本地实例,其中登录存储在 master 数据库中,客户端 master 数据库与 LocalDB 内的登录名不匹配。
在我看来,微软通过启用集成安全来放弃 LocalDB 中的安全问题似乎很可笑。
任何人都可以找到数据库,将其复制到他们的计算机上,然后使用 SQL 工具读取数据库,甚至不知道用户名/密码。
You have to use integrated security when you use LocalDB or the
AttachDBFileName option.
Microsoft 已弃用 SQL Compact,因此我想在客户端计算机上将其替换为 SQL LocalDB。
当使用 "Integrated Security = True" 时,替换在客户端机器上工作正常但是一旦我设置 "Integrated Security = False" 然后我得到
Login failed for user 'TestUser'
我无法在客户端上使用集成安全性。
他们不应该在不知道用户名/密码的情况下访问数据库,该用户名/密码已经在他们的 machine.config 中加密。
我在 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 论坛上发布了一个类似的问题,但没有收到很好的回复。
另外,好像Whosebug上也有类似的问题,但是没有很好的回答。
LocalDB and Entity Framework 6 - Security
LocalDB connection with Integrated security=False
我感觉我已经知道了答案,因为 LocalDB 无法在其他关闭了集成安全性的计算机上工作,因为理论上它使用的是 SQL 服务器的本地实例,其中登录存储在 master 数据库中,客户端 master 数据库与 LocalDB 内的登录名不匹配。
在我看来,微软通过启用集成安全来放弃 LocalDB 中的安全问题似乎很可笑。
任何人都可以找到数据库,将其复制到他们的计算机上,然后使用 SQL 工具读取数据库,甚至不知道用户名/密码。
You have to use integrated security when you use LocalDB or the AttachDBFileName option.