我如何获得SQL数据库用户&角色到我的MVC EF项目在Visual Studio

本文关键字:EF MVC 我的 项目 Studio Visual 角色 何获得 SQL 数据库 用户 | 更新日期: 2023-09-27 18:07:20

我能够在visual studio中使用"schema compare"创建SQL数据库表。我添加了登录&使用T-SQL直接将用户添加到数据库中,并使用T-SQL将用户添加到datareader中;datawriter角色。

现在,当我在visual studio中使用我的项目作为源进行"模式比较"时,它想要从数据库中删除用户和角色。我如何将这些添加到项目中?

我如何获得SQL数据库用户&角色到我的MVC EF项目在Visual Studio

这取决于你是使用新的Sql Server数据工具(SSDT)项目(.sqlproj)还是旧的2010 Sql数据库项目(.dbproj)。

如果您正在使用新的SSDT项目,那么您只需将对象添加到项目中:

  • 创建一个新登录文件
  • 为您的新DB用户创建一个文件
  • 创建一个名为yourdatabasname .rolemembers .sql的文件

该文件将包含如下代码:

EXECUTE sp_addrolemember @rolename = N'db_datareader', @membername = N'NewDBUser';

你将需要一个权限。sql文件。在这里,您将像这样授予登录连接权限:

GRANT CONNECT TO [NewLogin] AS [dbo];

但是,如果您正在使用旧的数据库项目,则需要在解决方案中创建一个名为Server项目的新项目。它看起来非常像您的数据库项目,除了它是主数据库。

您可以在这个新的服务器项目中做与我上面概述的类似的事情,并且在您的原始数据库项目中,您将需要添加服务器项目作为参考。


对整个过程的警告。您将需要添加带有SID值的Login,这样当您尝试将数据库备份放在其他服务器上时,就不会出现孤立的用户场景。

我首先使用了这个MS KB中概述的过程来获得SID,然后如果您参考有关CREATE LOGIN的BOL部分,您将看到创建登录文件的语法应该是什么。