首页 > 解决方案 > 基于 C# 应用程序中的用户输入创建 SQL 数据库的安全方法

问题描述

我正在努力在互联网上自己寻找解决方案。

我最近了解到@parameters 不能用于表示数据库名称。

在我的情况下,每个用户都应该依赖于指定的数据库(出于多种原因)。我想过使用 sqlCommand 创建数据库,该数据库动态结合了 sql 命令和输入字符串,但被告知这是一个愚蠢的想法(我同意)。

我听说过 SMO,但不确定这是否会让我进入正确的位置。

也许有一种方法可以在用户提示时为数据库生成随机名称,然后将该名称与用户名一起存储在“主”数据库的表中以进行识别?

在我找到正确的解决方案之前,我几乎都会搁置工作。

标签: c#sqlsql-serverdatabaseprogrammatically-created

解决方案


好吧,我能想到的一种方法是使用存储过程创建数据库。您可以将用户输入传递给 SPROC,并通过 sp_executesql 中的参数或使用 QUOTENAME 验证那里的输入。


推荐阅读