$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SQL SECURITY特性の扱いと作ったパッチ
Search
tom--bo
August 27, 2024
1
81
SQL SECURITY特性の扱いと作ったパッチ
tom--bo
August 27, 2024
Tweet
Share
More Decks by tom--bo
See All by tom--bo
DDLが取得するMDLの調査(私的)まとめ
tombo
3
140
安全なDDLの実行を目指して 〜(その1)取得するMDLの把握〜
tombo
0
140
MyRaft論文紹介
tombo
3
930
2PC between Binlog and InnoDB
tombo
1
320
WIP: 2PC between binlog and InnoDB
tombo
1
240
Dive into InnoDB from redo logs
tombo
3
1.6k
MySQLアンカンファレンス01_mysqlredo
tombo
1
930
MySQLアンカンファレンス 開催概要
tombo
0
310
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
62
Done Done
chrislema
186
16k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Invisible Side of Design
smashingmag
302
51k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
60
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Agile that works and the tools we love
rasmusluckow
331
21k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Cult of Friendly URLs
andyhume
79
6.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
91k
Transcript
SQL SECURITY特性の扱い と 作ったパッチ MySQLアンカンファレンス 第6回 @tom__bo
SQL SECURITY句とは • VIEW, STORED FUNCTION/PROCEDUREなどを作成するときに 設定できるセキュリティコンテキスト • ex) CREATE
SQL SECURITY INVOKER VIEW V1 AS SELECT * FROM t1; • 設定できる値 • “DEFINER “ : オブジェクトの定義者のアカウント権限で実行 • “INVOKER “ : オブジェクトの呼び出し元のアカウント権限で実行 • デフォルトは”DEFINER”
ありがちなオペレーションミス • ユーザu1でVIEW作成 • 管理者ユーザでu1の削除 (SUPER or SET_USER_ID権限を持つ)
ありがちなオペレーションミス • VIEWを参照するとエラー • (補足: SET_USER_ID権限がないユーザからは消せない(8.0.22以降))
考えられる対策例 1. SET_USER_ID権限を適切に管理する • ユーザ削除にSUPER or SET_USER_ID権限をもつユーザを使わない 2. ユーザの削除前にDEFINERに指定されていないか確認 3.
DEFINERを絶対削除しない固定ユーザにする 4. 常にSQL SECURITY INVOKER で定義する SQL SECURITYのデフォルトを INVOKERにする設定とか作れない? 見てみますー (変数追加と数行の追加でできた)
作ったパッチ • default_sql_security_invoker = ONにするとデフォルトでSQL SECURITY INVOKERでオブジェクトが作成される
DEFAULTをINVOKERにするパッチ(プロトタイプ) • システム変数の定義(set sessionも可能な定義方法)
DEFAULTをINVOKERにするパッチ(プロトタイプ) • 作成時の条件分岐追加
疑問と感想 • 運用上SQL SECURITY 特性をどう管理されてます? • 1変数を追加するほどのことではない? • ちゃんと権限管理してないのが悪い気が... •
trigger, eventにはsql security特性がない DEFINER相当になるので、同じ方法は取れない
None