如何防止更改数据库

时间:2012-08-15 20:54:42

标签: database security

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

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

要求:

  • 用户具有写入权限
  • 不依赖于(MySQL,Oracle,SQL Server)等特定系统

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

3 个答案:

答案 0 :(得分:0)

大多数现代数据库允许您授予读取和写入权限,但禁止使用ALTER TABLE等DDL命令。

不要给不应该改变数据库结构权限的用户执行DDL。

如果通过“Alter”表示更改任何数据行而不是数据库结构,则只能授予用户SELECT权限。

答案 1 :(得分:0)

必须从数据库服务器授予应用程序使用的用户或帐户。通常,权限包括:

  • 选择
  • 插入
  • 更新
  • 删除
  • 阿尔特
  • 掉落

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

答案 2 :(得分:0)

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