允许用户在db中创建表

时间:2013-11-29 15:54:39

标签: sql web-applications create-table

让我们想象以下情况:

管理员可以访问某些网店的管理员控制面板。他有权创建类别,产品等......他也有权创建产品类型。

这意味着管理员打开一些产品类型创建公式的页面,他会写一个类型名称和几个类型属性:

表单输入字段 - 用户输入

  • 类型名称:计算机
  • Attribute_1:存储
  • 属性_2:图形卡
  • Attribute_3:处理器
  • Attribute_4:操作系统
  • Attribute_5:null
  • Attribute_6:null
  • [提交]

在db中提交全新表计算机后,将创建。表将有四列(存储,graphic_card,处理器,operation_system)。

我的问题是:允许商店管理员以这种方式在数据库中创建表格是否可以?或者这是不好的做法?

当然,将存在防止SQL注入的经典机制......

非常感谢您的回答!抱歉我的英语不好:)

1 个答案:

答案 0 :(得分:1)

为创建表添加如此强大的Web应用程序用户权限通常是一种不好的做法。 我将在存储过程中实现表创建,然后仅向用户提供对过程的执行访问权限,并且不会提供更强大和危险的DDL(数据定义语言)权限。

使用存储过程创建表,您可以使用业务规则限制表创建。例如,您可以为表名提供一个模式,您可以限制列数,也可以最大化可以创建的表数,也可以记录表创建事件。