首页 > 解决方案 > 我们是否应该在 SAAS 应用程序中删除已删除客户端的物理数据库

问题描述

我正在开发一个项目,该项目位于 .net 核心并托管在 azure 上,并被世界各地拥有独立数据库的不同客户用作 SAAS 应用程序。现在我有一个要求,说我们应该删除那些不再在主数据库中并由管理员删除的客户端的数据库。

我怀疑我们是否真的应该删除将被删除的客户端的数据库?

另外,如果是的话,通过应用程序删除数据库是否可行,或者我们应该使用一些实用程序来做到这一点?

另外我担心服务器是否会允许应用程序删除数据库?

有人可以建议我吗?

遵循我正在使用的技术堆栈:.net 核心(后端)和 EF 核心 MSSQL(数据库)

标签: sql-serversaas

解决方案


有几种不同的方法.. 本质上它与任何其他数据库的工作方式相同,因此您可以执行 T-SQL 来执行此操作.. 或使用 Azure SDK.. 以下是不同方法的一些示例:https://docs。 microsoft.com/en-us/sql/t-sql/statements/drop-database-transact-sql?view=sql-server-2017

您可以像这样在 EF 中执行原始 SQL 语句:

using(var context = new SampleContext()) 
{ 
    var commandText = "INSERT Categories (CategoryName) VALUES (@CategoryName)"; 
    var name = new SqlParameter("@CategoryName", "Test"); 
    context.Database.ExecuteSqlCommand(commandText, name); 
} 

那么,使用这种格式,您可以添加 DROP Database 命令吗?取自:https ://www.learnentityframeworkcore.com/raw-sql - 在 Database.ExecuteCommand 部分下


推荐阅读