TSKaigi 2024 ref: https://tskaigi.org/talks/tockn
![Prisma ORMを2年運用して培ったノウハウを共有する](https://cdn-ak-scissors.b.st-hatena.com/image/square/e01e01d37d8382a10d67c94078a00e06a8c428f6/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F7c6c5ab6613343eeb15a2124bba68e3a%2Fslide_0.jpg%3F30043160)
PGDSAT is a security assessment tool that checks around 70 PostgreSQL security controls of your PostgreSQL clusters including all recommendations from the CIS compliance benchmark but not only. This tool is a single command that must be run on the PostgreSQL server to collect all necessaries system and PostgreSQL information to compute a security assessment report. A report consist in a summary of
文脈、背景や問題点の説明 マルチテナントを実装するうえで企業情報(以下company)単位で最小限の情報を扱うようにしたいがcompany単位にTableを作ったりDatabaseを作るのはALTERなどの運用が大変。 そこでRLSを採用するために実際の技術検証をした上での注意点と実際の運用について必要な情報をまとめる。 PostgreSQL 14を前提としている 公式ドキュメント CREATE POLICY 必ず一読はすること。 困ったとき、わからないときはまずは公式ドキュメントを都度見ること。 このドキュメントのゴール RLSの概要をつかめる RLSの最低限の注意点を理解し、実装時に罠を踏まない 自分たちでRLSのポリシー自体をメンテナンスすることができ、デバッグできる テーブル構成 create table if not exists company ( id uuid defaul
今回の記事は、パフォーマンスチューニングの観点と仕組みを理解することに主眼を置いています。具体的な対処方法についてはシステムによって異なるため、マニュアルの確認や、各種チューニングサービスのご利用をご検討ください。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。 本記事の構成 本記事「パフォーマンスチューニング9つの技」は以下4つの記事から構成されています。他の記事も併せてご覧ください。 パフォーマンスチューニング9つの技 ~はじめに~ パフォーマンスチューニング9つの技 ~「書き」について~ パフォーマンスチューニング9つの技 ~「探し」について~(本記事) パフォーマンスチューニング9つの技 ~「基盤」について~ 1. パフォーマンスチューニングの「探し」とは PostgreSQLは、SQLが発行されると、アクセス先のデータの特性を示す『統計情報』を参照
今回の記事は、パフォーマンスチューニングの観点と仕組みを理解することに主眼を置いています。具体的な対処方法についてはシステムによって異なるため、マニュアルの確認や、各種チューニングサービスのご利用をご検討ください。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。 本記事の構成 本記事「パフォーマンスチューニング9つの技」は以下4つの記事から構成されています。他の記事も併せてご覧ください。 パフォーマンスチューニング9つの技 ~はじめに~ パフォーマンスチューニング9つの技 ~「書き」について~(本記事) パフォーマンスチューニング9つの技 ~「探し」について~ パフォーマンスチューニング9つの技 ~「基盤」について~ 1. パフォーマンスチューニングの「書き」とは 一般的にデータベースは、大量データを扱い、大量の問い合わせや更新を高速に処理し、さらに障害発生
Performance Insights は、SQL 呼び出しごとおよびクエリが実行中の 1 秒ごとに SQL 統計を収集します。RDS for PostgreSQL は SQL 統計をダイジェストレベルでのみ収集します。ステートメントレベルでは、統計は表示されません。 RDS for PostgreSQL のダイジェストレベルの統計の詳細については、以下を参照してください。 RDS PostgreSQL でのダイジェスト統計 SQL ダイジェストの統計を表示するには、RDS PostgreSQL が pg_stat_statements ライブラリをロードする必要があります。PostgreSQL 11以降と互換性のある PostgreSQL DB インスタンスでは、このライブラリはデフォルトでロードされます。PostgreSQL 10以前と互換性のある PostgreSQL DB インス
NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが
はじめに 今回はPostgreSQLの統計情報収集ツールであるPoWA(PostgreSQL Workload Analyzer)で提供されているインデックスアドバイザ(pg_qualstats)が独立した機能として提供されるという情報を知ったので、どんなものかさっそく試してみようと思います。 pg_qualstatsは、これまでは大本のPoWAでインデックスの最適化をするための情報収集用のEXTENSIONとして使われていたものです。機能としては、Query情報のWHEREステートメントとJOIN句で見つかった述語の統計情報を保持して、その収集した情報をもとに最適なINDEXの条件を出すそうです。 ちなみにバージョン2からが独立版としての正式リリースみたいです。なので、今回試した時点では正式リリース版ではないのでご注意ください。(現在は、2.0.0dev版となっていました。リリース版は1
概要 クラウドサービスから新たなストレージエンジンのサービスが出た時に実際の性能評価やちょっとした検証をある程度作り込まれたデータベースでやりたくなる人も多いのではないでしょうか。 今回そんな時に使えるサンプルのデータがあったのでちょっと紹介します。 PostgreSQL Tutorial PostgreSQL Tutorial にサンプルのデータを用意してくれているので、そちらを利用します。 例えばローカル環境上に構築するとして、一旦コンテナで検証してみます。 > docker run -d --name=postgres -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres
こんにちは、清水(@_smzst)です。直近の業務でマルチテナントな DB でアプリケーションでのスイッチロール機能を実現するために Amazon Cognito や表題にある Row Level Security について技術検証や設計検討を行っていました。 今回はこの Row Level Security について PostgreSQL での例を挙げて挙動を確認しながら、実際に導入するにあたって必要な知識や注意点までを網羅します。本記事が安全で堅牢なアプリケーション構築の一助となれば幸いです。 1. マルチテナントとは 2. Row Level Security とは 3. 実際に試してみる 3-1. 実現するための SQL 3-2. RLS 有効化前 3-3. RLS 有効化後 4. 補足 4-1. クエリのパフォーマンスについて 4-2. ユーザーとロールの管理について 4-3.
マルチテナントなECサイトの注文データをイメージしています。tenant_nameのカラムにテナント名が入り、このカラムとDBユーザーの一致を行セキュリティポリシーよってチェックするようなイメージです。 テストデータ等の準備 それでは検証環境を準備していきましょう。今回の検証にはPostgreSQLバージョン11.11を利用しています。 まずはテーブルを作成 CREATE TABLE orders ( id SERIAL PRIMARY KEY, tenant_name text, product_code text, order_date timestamp ); CREATE TABLE 続いてマルチテナント用のDBユーザーを作成 CREATE ROLE user01 LOGIN; CREATE ROLE CREATE SCHEMA "saas"; CREATE SCHEMA GRAN
はじめに 最近GoでマルチテナントSaaSの開発をやっておりまして、PostgreSQLのRLSの実装をはじめてやって見ましたので、その内容について共有したいと思います。 RLSとは テーブルレベルで行う設定でSELECT、UPDATE、INSERT、DELETEで影響を受ける行を制限する仕組みです。データベースエンジンが管理する自動化したWHERE句と考えることができます。 簡単な例で見てみましょう。 -- テナントテーブル作成及び、初期データ導入 CREATE TABLE IF NOT EXISTS tenants ( id serial PRIMARY KEY, name varchar(100) NOT NULL UNIQUE ); INSERT INTO tenants (name) values ('tenant1'); INSERT INTO tenants (name) v
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く