O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

私とmysqlとROLE

403 visualizações

Publicada em

MySQL Casual Talks vol.12

Publicada em: Tecnologia
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... (Unlimited)
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Seja a primeira pessoa a gostar disto

私とmysqlとROLE

  1. 1. 私とMySQLとROLE MySQL Casual Talks vol.12 @lhfukamachi 1
  2. 2. 自己紹介 $ cat /etc/lhfukamachi/lhfukamachi-auto.cnf | jq { "Version": 0.0.5, "lhfukamachi": { "Metadata": { "BirthDay" : 622134000, "attribute" : "渋谷で働く見習いDBA", "Twitter" : "@lhfukamachi" } } 2
  3. 3. MySQLは8.0.2からROLEが 使える様になりました! 3
  4. 4. ROLE? 4
  5. 5. みなさんは、こんな経験ないですか? 5
  6. 6. A:「すみません、新しいサーバーが追加された のでここから接続できるようにしてください」 6
  7. 7. 私:「了解です。少々お待ち下さい…」 7
  8. 8. GRANT文一発でいけるかな mysql> SELECT @@version; +-----------+ | @@version | +-----------+ | 8.0.17 | +-----------+ 1 row in set (0.00 sec) おっ… 8
  9. 9. これはもしや… ですよね…: mysql> SELECT * FROM role_edges; +-----------+---------------+---------------+------------+------ | FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ +-----------+---------------+---------------+------------+------ | % | ro_role | % | rw_role | N | % | rw_role | % | app_user | N +-----------+---------------+---------------+------------+------ 2 rows in set (0.01 sec) 9
  10. 10. 「ROLEだ!!!」 10
  11. 11. 私:「すみません。ROLE付与の依頼が来たようで す。あとは、よろしくおねがいします。」 隣のDBA:「了解です」 11
  12. 12. 当時、ROLEのことはほとんど 知らなかった。 12
  13. 13. 実はROLE全然怖くない 13
  14. 14. ROLEとは ROLEは名前のついた権限の集合 従来のユーザーアカウントのように,ROLEには権 限を与えたり,剥奪したりすることが可能 付与しただけではデフォルト有効にならない SET構文で使用するROLEを選択する 14
  15. 15. 管理編 15
  16. 16. 管理編 追加と削除 CREATE ROLE <ROLE_NAME> DROP ROLE <ROLE_NAME> カンマ区切りで複数同時作成/削除ができる。 mysql> CREATE ROLE role1, role2, role3; Query OK, 0 rows affected (0.01 sec) mysql> DROP ROLE role1, role2, role3; Query OK, 0 rows affected (0.16 sec) ちなみに権限があればDROP ROLEでユーザー削除できるし、 DROP USERでROLEを削除できてしまう。 16
  17. 17. 管理編 権限付与と剥奪 作ったROLEはGRANT文で権限を付与する。 付与した権限はREVOKE文で剥奪できる。 GRANT <権限> on d1.* TO <ROLE_NAME>; ROVOKE <権限> on d1.* FROM <ROLE_NAME>; 17
  18. 18. 管理編 ROLEの権限の確認 ユーザーの権限確認と同じようにSHOW GRANTS構 文 '%' がない場合は勝手に付与される mysql> SHOW GRANTS FOR ro_role; +-----------------------------------------+ | Grants for ro_role@% | +-----------------------------------------+ | GRANT USAGE ON *.* TO `ro_role`@`%` | | GRANT SELECT ON `d1`.* TO `ro_role`@`%` | +-----------------------------------------+ 18
  19. 19. 運用編 19
  20. 20. 運用編 ROLEの有効化 SET ROLE <ROLE名> 付与しただけでは利用できない。SET ROLE構文で有効化する必 要あり。 SET ROLE DEFAULT SET ROLE ALL SET ROLE ALL EXCEPT <ROLE_NAME> SET ROLE NONE; <ROLE_NAME>はカンマ区切りで複数指定可能 20
  21. 21. 運用編 SET DEFAULT ROLE <ROLE名> TO user@host; デフォルトで有効化するROLEを指定できる。 デフォルトとはサーバーに接続,認証した時,SET ROLE DEFAUL構文 SET DEFAULT ROLE NONE TO user@host; SET DEFAULT ROLE ALL TO user@host; ROLEもユーザーもカンマ区切りで複数指定可能。 21
  22. 22. ※それにしてもSET ROLE DEFAULTとSET DEFAULT ROLEがややこしい… 22
  23. 23. 運用編 CURRENT_ROLE() ログインしているユーザーの現在のROLEを確認す る > SELECT current_role(); +----------------+ | current_role() | +----------------+ | `ro_role`@`%` | +----------------+ 1 row in set (0.02 sec) 23
  24. 24. 運用編 mandatory_roles 全ユーザーに付与されるROLE my.cnfに記述するか、SET GLOBAL/PERSISTで付与 できる mandadory_rolesに設定されているROLEは削除でき ない。 mysql> DROP ROLE ro_role; ERROR 3628 (HY000): The role `ro_role`@`%` is a mandatory role and can't be revoked or dropped. The restriction can be lifted by excluding the role identifier from the global variable mandatory_roles. 24
  25. 25. 運用編 activate_all_roles_on_login ユーザーがログインしたときに付与されているROLE をすべて自動で有効にするオプション。 デフォルトはOFF my.cnfに記述するか、SET GLOBAL/PERSISTで付与 できる。 デフォルトROLEをNONEにしててもこちらが有効な ときはROLEが有効になっている。 25
  26. 26. 運用編 利用しているROLEの一覧をみたい mysqlスキーマのROLE_EDGESを確認。誰がどの ROLEを付与しているか確認できる。 mysql.userテーブルにもROLEは入っているが、通常のユーザーも混じ っている。 > SELECT concat(from_user,'@',from_host) as USER > ,concat(to_user,'@',to_host) as ROLE > ,with_admin_option FROM mysql.role_edges; +------------------+---------------+-------------------+ | USER | ROLE | with_admin_option | +------------------+---------------+-------------------+ | app_developer@% | dev1@localhost| N | +------------------+---------------+-------------------+ 26
  27. 27. 運用編 defaultのROLEを確認したい mysql.default_rolesを確認する mysql> SELECT concat(user,'@',host) as USER , > concat(default_role_user,'@',default_role_host) > as ROLE FROM mysql.default_roles; +-------------------------+-----------+ | USER | ROLE | +-------------------------+-----------+ | test_user@% | rw_role@% | | test_user@192.168.198.1 | rw_role@% | | test_user@localhost | ro_role@% | | test_user@localhost | rw_role@% | +-------------------------+-----------+ 27
  28. 28. 発展編?? 28
  29. 29. 発展編?? 新たなユーザーへのROLEの付与 5.7ではCREATE USERしてGRANT文で権限付与し ていた。 8.0でROLEを利用している場合はDEFAULT ROLE を付与して1文でユーザー作成と権限付与ができ る。 mysql> CREATE USER test_user@'%' IDENTIFIED BY 'test_user' > DEFAULT ROLE rw_role; Query OK, 0 rows affected (0.00 sec) 29
  30. 30. 発展編?? ROLEの継承について ROLEに別のROLEを付与することでROLEの継承を行 うことができる。 これを利用することでスキーマ単位や読み書き単位で ROLEを作成し、組み合わせて利用することが可能。 ※ただし細かく分けすぎるとわかりにくくなるので注意 30
  31. 31. まとめ ROLEは 権限の名前付き集合体であり、 SET ROLEで有効化し、 有効化が面倒なときはDEFAULT ROLEにしてしまって、 継承とかもできちゃう 便利な機能です。 31
  32. 32. ね、怖くないでしょ? 32
  33. 33. ご清聴 ありがとうございました 33

×