タグ

DBとSQLに関するmasa1001のブックマーク (3)

  • IPA、PDF資料「安全なSQLの呼び出し方」を公開 SQLインジェクション攻撃への具体的な対策書

    IPA(独立行政法人情報処理推進機構)は18日、Webアプリケーションの安全な実装方法を解説した資料「安全なSQLの呼び出し方」(PDF)を公開した。全5章(計40ページ)および付録からなり、冊子「安全なウェブサイトの作り方」(PDF)の別冊として、公式サイトより入手できる。 「安全なSQLの呼び出し方」では、SQLインジェクション攻撃にどのような対策を取れば安全であるかの要件を検討し、安全なSQL呼び出しを実現する考え方を製品によって整理しながら、具体的なケースの調査結果を示している。 特に第5章では、5種類のプログラミング言語とデータベースの組み合わせ(JavaOraclePHPとPostgreSQLPerlJavaMySQLASP.NETSQL Server)における安全な実装方法とソースコードの書き方を解説しているほか、付録には、文字コードに関する問題など特定のデータ

    IPA、PDF資料「安全なSQLの呼び出し方」を公開 SQLインジェクション攻撃への具体的な対策書
  • NoSQL登場の背景、CAP定理、データモデルの分類

    その例としてBeck氏自身が過去に取り組んできた生命保険会社のアプリケーションを例に挙げます。そのアプリケーションでは毎日のようにスキーマが変化するため、SQLORM(Object-Relational Mapping)では対応できず、オブジェクトデータベースのGemstoneを利用することで対応できたと述べています。 こうしたSQLだけでは満たせないさまざまな要件、上記の図にあるようにスキーマの可塑性、スケーラブルなデータ読み込み、書き込み、処理の柔軟性などを満たすために、リレーショナルデータベース以外のNoSQLな製品が開発された。これがNoSQLの登場の背景にあるとBeck氏は解説します。一方で、こうしたさまざまなNoSQLを、NoSQLという言葉で表すのは適当ではないという憂慮も示しています。 Here is where the futility of defining NoSQ

    NoSQL登場の背景、CAP定理、データモデルの分類
  • MySQL や PostgreSQL でトリガーベースの実体化ビューを後から追加する方法 (もしくは無停止での CREATE INDEX) - kazuhoのメモ置き場

    読み込み>書き込みなデータベースだと、実体化ビュー (materialized view) を使って読み込み速度を上げるってのは有効な手法 ちなみに MySQL や PostgreSQL だと実体化ビューはトリガーを使って書く *1 では、トリガーベースの実体化ビューを後から追加した場合に、どうやって既存データを新しいビューに反映させるのか。 UPDATE トリガを、ビューの側に対応するデータがない場合は INSERT トリガと同様の動作をするように実装すればいい (典型的には REPLACE INTO 文を使う)。ビューの初期データ充填は UPDATE src_table SET id=id; MySQL だと CREATE INDEX CONCURRENTLY がないから副インデックス作成はスレーブでやったりする*2けど、上の UPDATE を LIMIT つきで回すことで、ビューをイ

    MySQL や PostgreSQL でトリガーベースの実体化ビューを後から追加する方法 (もしくは無停止での CREATE INDEX) - kazuhoのメモ置き場
  • 1