我正在尝试编写一个 Web 服务来更新在线数据库,随后将编写一个网站来访问数据,但我的 SQL Server 登录权限出现问题。
我想使用Entity Framework访问数据库,连接将使用SQL Server身份验证。我希望登录名仅对存储过程具有执行权限,以便能够减少任何安全威胁 - 但是每当我尝试向数据库添加新连接时,它都不允许我这样做,并且我可以添加的唯一方法连接是指登录名是否具有 dbcreator 角色。
我收到以下错误 -
CREATE DATABASE permission denied in database 'master' An attempt to attach an auto-named database......A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
如果连接被迫使用具有 dbcreator 角色的登录名,这似乎会带来很大的安全风险,对于 Web 服务而言,风险不大,因为登录名将受密码保护,但网站会将密码存储在代码中,因此可能受到损害并被用来进行更改。
我确信有一个很好的解决方案 - 我只是在追踪它时遇到了困难。大多数解决方案似乎都是为连接赋予 dbcreator 角色。
最佳答案
Entity Framework 默认要创建数据库。您可以更改:https://stackoverflow.com/a/5018062/384701
关于C# Entity Framework 连接 - 访问数据所需的 dbcreator 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11672206/