Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何防止更改数据库_Database_Security - Fatal编程技术网

Database 如何防止更改数据库

Database 如何防止更改数据库,database,security,Database,Security,防止更改数据库或验证数据库完整性的最佳方法是什么,这样就不能从为此数据库创建的应用程序中更改数据库 假设您拥有访问数据库的用户名和密码,则允许读写 要求: 用户具有写入权限 不要依赖于像MySQL、Oracle、SQL Server这样的特定系统 我正在寻找的解决方案不是基于用户对数据库的权限大多数现代数据库允许您授予读写权限,但不允许使用诸如ALTER TABLE之类的DDL命令 不要向不应更改DB结构的用户授予执行DDL的权限 如果“Alter”是指更改任何数据行,而不是数据库结构,则只

防止更改数据库或验证数据库完整性的最佳方法是什么,这样就不能从为此数据库创建的应用程序中更改数据库

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

要求:
  • 用户具有写入权限
  • 不要依赖于像MySQL、Oracle、SQL Server这样的特定系统

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

大多数现代数据库允许您授予读写权限,但不允许使用诸如ALTER TABLE之类的DDL命令

不要向不应更改DB结构的用户授予执行DDL的权限


如果“Alter”是指更改任何数据行,而不是数据库结构,则只能授予用户选择权限。

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

  • 挑选
  • 插入
  • 更新
  • 删除
  • 改变
  • 下降

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

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

您使用的是什么品牌/类型的DB?如果您不是在寻找基于数据库权限的解决方案(正如大家所指出的,这是设计用于实现此目的的技术特性),您在寻找什么?您想授予用户写权限,但随后禁止他们向数据库写入?如果要防止将无效数据放入数据库,则需要应用程序检查、外键和检查约束的组合。遗憾的是,对检查约束的支持在不同的数据库中存在很大差异ases。你必须要具体。我不是在看具体的数据库说明。我在找一种技术、概念或策略。applyA的技术、概念或策略到底要做什么?为什么你不能使用权限?我的问题是:用户对所做的更改有权限我需要一种方法来检查信息的完整性