Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
第3回SEMAT勉強会 SEMATエッセンス解説
Hironori Washizaki
30分で分かる!OSの作り方 ver.2
uchan_nos
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
GlusterFS Masakari Talks
Keisuke Takahashi
構築者に知っておいてもらいたい運用設計者が語るAWS @Developers.IO 2015
Kazuki Ueki
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
【ログ分析勉強会】セッションアクティビティログは使えるのか
Hibino Hisashi
Quick Overview of Upcoming Spark 3.0 + α
Takeshi Yamamuro
1
of
24
Top clipped slide
Sfdgr19 apex 20190730
Jul. 30, 2019
•
0 likes
0 likes
×
Be the first to like this
Show More
•
2,965 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Business
ApexのCRUDとFLS
Ikou Sanuki
Follow
Advertisement
Advertisement
Advertisement
Recommended
Cisco ios textpart01
UmeNishi
26 views
•
3 slides
OS development beginner with breadboard version 20161126
Langur
661 views
•
21 slides
OSを手作りするという趣味と仕事
uchan_nos
938 views
•
25 slides
現場で使えるSqlの極意
俊政 村上
837 views
•
21 slides
クラウドについて
YUKI OSAWA
146 views
•
18 slides
マニアックス5Sql azure
貴仁 大和屋
616 views
•
29 slides
More Related Content
Similar to Sfdgr19 apex 20190730
(20)
第3回SEMAT勉強会 SEMATエッセンス解説
Hironori Washizaki
•
4.3K views
30分で分かる!OSの作り方 ver.2
uchan_nos
•
4.7K views
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
•
132.4K views
GlusterFS Masakari Talks
Keisuke Takahashi
•
4.6K views
構築者に知っておいてもらいたい運用設計者が語るAWS @Developers.IO 2015
Kazuki Ueki
•
4.1K views
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
•
1.9K views
【ログ分析勉強会】セッションアクティビティログは使えるのか
Hibino Hisashi
•
2.4K views
Quick Overview of Upcoming Spark 3.0 + α
Takeshi Yamamuro
•
706 views
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Rescale Japan株式会社
•
793 views
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
Hideki Takase
•
1.4K views
PlaySQLAlchemyORM2017.key
泰 増田
•
1.8K views
Cell/B.E. プログラミング事始め
You&I
•
567 views
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Makoto SAKAI
•
24.2K views
Past and Future of PowerShell
Kazuki Takai
•
628 views
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
•
2K views
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
Kenichi Hoshi
•
1.2K views
正式リリースされた.Net coreに少し触れ合ってみる
Tsukasa Kato
•
147 views
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
Insight Technology, Inc.
•
3.7K views
FSLogix アプリケーションマスク機能実験結果
Dai Iwai
•
192 views
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
•
8K views
More from Ikou Sanuki
(16)
Archtect meetup sharing_territory_20190801
Ikou Sanuki
•
589 views
Sfdg spring19 flow_20190306
Ikou Sanuki
•
779 views
Japan Dreamin2019 Salesforce Developer Group Rookies
Ikou Sanuki
•
582 views
Sfdgr 12 20180906_answer_v1.0
Ikou Sanuki
•
192 views
SFDGR#04
Ikou Sanuki
•
228 views
Sfdgr04 グループ課題 v2
Ikou Sanuki
•
217 views
SWTT2016 Salesforce × Azure machine learning
Ikou Sanuki
•
339 views
Tsdg meetup#12 summer16 lightning_experience
Ikou Sanuki
•
434 views
Swtt2015 lt isanuki
Ikou Sanuki
•
1K views
Salesforce DUG meetup09 summer15
Ikou Sanuki
•
1K views
EventLogView 20150128
Ikou Sanuki
•
1.6K views
Salesforce dug meetup6_summer14apex
Ikou Sanuki
•
1.5K views
Dev maxcrows3 02
Ikou Sanuki
•
443 views
Salesforce developer conference tokyo2013
Ikou Sanuki
•
684 views
Cloudforce2012 dev zone JFDG LT
Ikou Sanuki
•
632 views
Jfdg meetup第3回 dreamforce12について
Ikou Sanuki
•
587 views
Advertisement
Recently uploaded
(20)
#国外留学文凭购买U Dundee假毕业证书
fc2c0f2b1mymailol
•
2 views
238-金门大学.pdf
fdhrtf
•
3 views
HMS vision.pptx
ssuser6c5c0a
•
16 views
57德保罗大学.pdf
LorettaPrice2
•
3 views
#国外留学文凭购买Plymouth假毕业证书
fc2c0f2b1mymailol
•
2 views
資料抜粋.pdf
ssuser5d3ed2
•
78 views
70卡莫森学院.pdf
dsadasd17
•
4 views
16南伊利诺伊大学.pdf
LorettaPrice2
•
2 views
本支店会計
noukai
•
22 views
DMMジオブースト提案資料.pdf
FujiiHyuma
•
34 views
DMMジオブースト提案資料.pdf
FujiiHyuma
•
31 views
16.考文垂大学.pdf
dsadasd17
•
2 views
rakuraku_groupsampling_ 20220909.pdf
YukiA6
•
10 views
21邦德大学.pdf
dsadasd17
•
18 views
4西安大略大学.pdf
fdhrtf
•
2 views
『7つの転職力の磨き方』
Aya Kaino
•
60 views
173-天普大学.pdf
fdhrtf
•
3 views
30西三一大学.pdf
fdhrtf
•
2 views
抜粋製品概要.pdf
ssuser5d3ed2
•
30 views
66汉博学院.pdf
dsadasd17
•
2 views
Sfdgr19 apex 20190730
~2周年記念LT大会~ ApexのCRUDとFLS 2019/07/30(火) Sanuki Ikou @i_sanuki
自己紹介 2 讃岐 行(Sanuki Ikou) 株式会社テラスカイ Tw:@i_sanuki FB:isanuki 【コミュニティ】 •
SFDG ルーキー会 • 新機能照らす会 【好きな標準系機能】 • 数式 【好きな開発系機能】 • __Share
言葉の説明① • ユーザコンテキスト(モード) – 現在のユーザの権限、項目レベルセキュリティ、および共有 ルールに従う •
システムコンテキスト(モード) – 現在のユーザの権限、項目レベルセキュリティ、および共有 ルールに従わず、全部アクセス可 3
言葉の説明② 4 CRUD FLS(項目レベルセキュリティ)
突然ですが・・ 5 Apexはシステムコンテキストで動作します ※exececuteAnonymousからの実行は除く
SOQL 6 List<Account> accounts = [SELECT
Phone FROM Account]; for(Account acc : accounts){ System.debug(acc.Phone); } 結果→問題なし Object 参照 作成 更新 削除 取引先 ✔ 項目 参照アクセス権 編集アクセス権 電話 CRUD FLS ポイント
SOQL 7 List<Account> accounts = [SELECT
Phone FROM Account]; for(Account acc : accounts){ System.debug(acc.Phone); } 結果→問題なし Object 参照 作成 更新 削除 取引先 項目 参照アクセス権 編集アクセス権 電話 CRUD FLS ポイント ポイント
DML 8 結果→登録可 Object 参照 作成
更新 削除 取引先 ✔ ✔ 項目 参照アクセス権 編集アクセス権 電話 CRUD FLS Account acc = new Account(Name ='株式会社テラスカイ', Phone='03-5255-3410'); insert acc; ポイント
DML 9 結果→登録可 Object 参照 作成
更新 削除 取引先 ✔ 項目 参照アクセス権 編集アクセス権 電話 CRUD FLS ポイント ポイント Account acc = new Account(Name ='株式会社テラスカイ', Phone='03-5255-3410'); insert acc;
10
対策方法 「データ漏洩の防止」→「CRUDおよびFLS違反の防止」 11
対策方法 • DescribeSObjectResultクラスに実行ユーザの権限確認用 メソッドが用意されている 12 // オブジェクトや項目に参照権限があるか Schema.sObjectType.Account.isAccessible(); Schema.sObjectType.Account.fields.Phone.isAccessible(); //
オブジェクトや項目に作成権限があるか Schema.sObjectType.Account.isCreateable(); Schema.sObjectType.Account.fields.Phone.isCreateable(); これらを使いながら動的にSOQLを組み立てたりDMLを実 行したりエラーにしたりする
13
14
新機能のご紹介① • WITH SECURITY_ENFORCED(ベータ) –
SOQLで実行ユーザのCRUDおよびFLSを遵守してくれる 15 SOQL https://developer.salesforce.com/docs/atlas.ja- jp.apexcode.meta/apexcode/apex_classes_with_security_enforced.htm
やってみる 16 List<Account> accounts = [SELECT
Phone FROM Account WITH SECURITY_ENFORCED];
17
新機能のご紹介② • Security.stripInaccessible(パイロット) – SObjectから実行ユーザの権限に従って項目を取り除くなど –
つまりFLSを遵守できる 18 (主に)DML https://releasenotes.docs.salesforce.com/ja-jp/summer19/release- notes/rn_apex_Security_stripInaccessible.htm
やってみる 19 Object 参照 作成
更新 削除 取引先 ✔ ✔ 項目 参照アクセス権 編集アクセス権 電話 CRUD FLS コードは次ページ↓ 電話への権限無し
やってみる 20 List<Account> accounts =
new List<Account>{ new Account(Name='hoge1'), new Account(Name='hoge2', Phone='03-1111-2222') }; SObjectAccessDecision decision = Security.stripInaccessible( AccessType.CREATABLE, accounts); for(SObject sobj : decision.getRecords()){ // 権限のない項目は除外されている確認 System.debug(sobj); } insert decision.getRecords();
結果 21 USER_DEBUG|[13]|DEBUG|Account:{Name=hoge1} USER_DEBUG|[13]|DEBUG|Account:{Name=hoge2} SObjectから電話が取り除かれている 電話なしで作成されている
22
まとめ • Apexはシステムコンテキストで動作する • Describeを使って頑張ることも可能 •
新機能に期待 23
24
Advertisement