2

私は、SQL Sever の NEWID() を使用して API キーを生成する小さな部分に取り組んでいます。キーは、Web アプリの特定の部分にアクセスするために使用され、URL を介して渡されます。キーは、新しい API コンシューマーが (Stored Proc で) 作成されるときに生成されます。キーは各コンシューマーに固有です。初期の消費者数は比較的少ないと予想されますが、時間の経過とともに増加しますが、頻度は比較的低くなります。

制約の一部は次のとおりです。

  • キーは挿入レベルで生成する必要があります
  • コンシューマごとに一意である必要があります
  • いつものように、パフォーマンスは重要です


セキュリティ、パフォーマンスなど、このアプローチに問題はありますか? 同じ結果を達成するためのより良い方法はありますか?

4

2 に答える 2

1

これで問題はないはずです。 NEWID()システム上で一意であることが保証されている GUID を生成します。

hereに記載されているように、 NEWSEQUENTIALID() は簡単に推測できるため、使用しないでください。ただし、 NEWID() のドキュメントには警告が表示されないため、同じ問題はないと思います。これは、セキュリティ上の問題があってはならないことを意味します。

パフォーマンスに関しては、キーの初期生成に他の方法よりも時間がかかる場合がありますが、保証された一意性がそれを補います。列にインデックスを付けると、検索も高速になります。

于 2010-10-22T20:17:42.950 に答える
0

私はこれを問題なく実行しました。INSERTは比較的コストのかかる操作であり、のオーバーヘッドNEWID()は比較的些細なものです。

于 2010-10-22T20:20:14.847 に答える