【发布时间】:2018-01-21 17:47:02
【问题描述】:
大多数人似乎有相反的问题,但解决方案是“授予对数据库的访问权限”。我想限制对数据库(LocalDB)的两个连接之一的访问。恐怕答案是“创建一个数据库用户并使用它来连接”。这仅用于测试,我不想提供用户。有没有办法通过连接字符串强制与 LocalDB 建立只读连接?我对此表示怀疑,但我想我会问。这是我当前的连接字符串:
<add name="readonlyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Database=test;Trusted_Connection=True; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
实现要复杂得多,但基本上使用 System.Data.Entity.DbContext 类,如果有帮助的话。
【问题讨论】:
-
在数据库中创建新用户有什么问题?当然,您需要用户来访问数据库,无论您是尝试读取、写入还是其他方式。
-
我很懒,不想写更多的SQL来写测试。
-
嗯,不具体,不,你不 --
Trusted_Connection=true使用 Windows 凭据。所以数据库上有一个“用户”,但它只是开发人员的 Windows 帐户。目前没有用户配置。 -
那个,既然你已经有答案了,为什么还要在这里问呢?
-
我的基本建议是将您的数据库用户(不是登录名)连同他们的权限一起置于源代码控制中。这样一来,您就可以使用它们进行测试,使用的权限与它们在生产环境中的权限完全相同。
标签: c# entity-framework localdb