web-dev-qa-db-ja.com

従来のIDよりもUUIDメソッドを使用する理由

次の引用は、アプリケーションを構築するための演習と一緒に、ずっと前の私の教師からのものです:

ガイドラインに従うには、IDではなくUUIDを使用します。

もちろん、質問IDが従来のIDより安全/優れている理由が出てきました。

UUIDは、ログインを含むユーザーのデータベーステーブルで使用されることになっていますが、電話番号、実名、住所などの個人情報も含まれています。

私が知っていることから、それは大企業がプライバシー機密情報を扱うときにUUIDを利用するためのいくつかの企業ガイドラインに書かれていますプライバシー機密情報以外の他の情報にUUIDを適用することも習慣ですか?

2
Lighty

WoJはセキュリティの側面に対処しました。UUIDをIDとして使用するのが悪い考えである理由を追加します。

UUIDをテーブルのPKとして使用すると、いくつかの落とし穴があります。

  • UUIDはintよりも多くのスペースを使用します
  • UUIDはintよりも結合に時間がかかります

テーブルのクラスタリングキーがUUIDであることにも問題があります-この質問で受け入れられた回答を確認して、適切な説明を確認してください。 https://stackoverflow.com/questions/11938044/what-are-the-best-practices-for-using-a-guid-as-a-primary-key-specifically-rega

1
Jay

[〜#〜] uuid [〜#〜] をデータベースのIDとして使用しても、特定のセキュリティは追加されません。その主な役割は、(合理的に)一意であることです。

データベースのセキュリティをIDのランダム性に基づいている(おそらく、IDがインクリメンタルIDよりも推測が難しいためと考えられます)は、適切なセキュリティ対策ではありません。確かに害はありませんが、 基本的なメカニズム を最初に適用する必要があります。何よりも重要なのは、このデータベースからデータを要求するアプリケーションのセキュリティです(SQLインジェクションが最大の懸念事項の1つです)。

3
WoJ