首页 > 解决方案 > 让一列 ID 只是一个整数(自动增量)是否安全?

问题描述

我有一个表,其中包含一个 id(唯一)和诸如姓名、电子邮件、角色等信息。我打算让我的 id 只是一个自动递增的整数。该 ID 将被放入会话中,并用于获得某些访问权限并查询与所述 ID 相关的某些内容。这样做是否安全,或者我应该让我的 id 更加随机?

我担心有人可能会弄乱会话并更改 ID(因为 ID 是一个自动递增的整数,所以很容易调整)并可以访问其他人的数据。这甚至可能吗?

标签: sqldatabaserdbms

解决方案


您可以选择 ID 作为 UUID - 通用唯一标识符。许多数据库都支持它,您也可以使用标准 Java 库生成它。它是一个字符串而不是一个数字,而且随机性足以让人难以猜到。稍后,如果您需要合并 2 个表,架构您将不会看到任何冲突。

唯一的缺点是索引效率会降低一些,因为它是一个大字符串,但我会选择它,因为它还有其他好处。


推荐阅读