0

防止更改数据库或验证其完整性的最佳方法是什么,以便无法从为该数据库创建的应用程序中更改它。

假设您有访问数据库的用户名和密码允许读写。

要求:

  • 用户有写权限
  • 不要依赖特定的系统,例如(MySQL、Oracle、SQL Server)

我正在寻找的解决方案不是基于用户对数据库的权限

4

3 回答 3

0

大多数现代数据库允许您授予读取和写入权限,但同时不允许像 ALTER TABLE 这样的 DDL 命令。

不要授予不应更改数据库结构的用户执行 DDL 的权限。

如果“更改”是指更改任何数据行,而不是数据库结构,则可以仅授予用户 SELECT 权限。

于 2012-08-15T20:58:12.587 回答
0

您的应用程序使用的用户或帐户必须获得数据库服务器的权限。通常权限包括以下内容:

  • 选择
  • 插入
  • 更新
  • 删除
  • 改变
  • 降低

仅授予用户帐户所需的权限;换句话说,不授予Alter权限,应用程序(或使用相同登录名的任何人)将无法更改表。

于 2012-08-15T20:58:52.177 回答
0

两种策略: 1)如果你运行的是 SQL Server、Oracle、DB2 等,你可以配置权限,让用户默认是读/写(这意味着没有更改权限)。2)您可以定期检查是否有人更改了数据结构,甚至设置数据库触发器来检测更改并记录谁/何时等(取决于您的数据库平台)

于 2012-08-15T21:00:18.243 回答