From 61913364a1fa78e62ce8500dc37a24868c6b671a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 03:17:27 +0000 Subject: [PATCH] deploy: 1bd8575c1e3d52a7ec2d2d726741cf7949c35473 --- 404.html | 4 ++-- ...cookie-3de138137cc35af02c830fa0277a00d0.png | Bin 0 -> 334425 bytes ...cookie-47b314915384f520d957ab3de1c77d10.png | Bin 160395 -> 0 bytes ...review-89dd21637e6bf79a7b79cd895f29f8ad.png | Bin 0 -> 310941 bytes ...review-cdd2c3cb139e438493ab22e5fcbbd147.png | Bin 149134 -> 0 bytes ...e0803c.8fb3e0be.js => 19e0803c.621b29b9.js} | 2 +- ...b65a46.fd64a5d2.js => 7eb65a46.b77c41a6.js} | 2 +- assets/js/82ad92c6.7302dd79.js | 1 + assets/js/82ad92c6.d2bf5fc3.js | 1 - ...5f2afb.7d9f2d5a.js => 935f2afb.ba453fe0.js} | 2 +- ...in.631a4954.js => runtime~main.213be372.js} | 2 +- docs/FAQ/intro/index.html | 4 ++-- docs/FAQ/whichdatabase/index.html | 6 +++--- docs/SUMMARY/index.html | 4 ++-- docs/deploy-manual/Docker/index.html | 4 ++-- docs/deploy-manual/DockerCompose/index.html | 4 ++-- docs/deploy-manual/config/index.html | 4 ++-- docs/deploy-manual/intro/index.html | 4 ++-- docs/deploy-manual/rpm/index.html | 4 ++-- docs/deploy-manual/source/index.html | 4 ++-- docs/dev-manual/OpenAPI/dmstoken/index.html | 12 ++++++------ docs/dev-manual/intro/index.html | 4 ++-- docs/dev-manual/plugins/howtodev/index.html | 6 +++--- docs/dev-manual/plugins/howtouse/index.html | 4 ++-- docs/dev-manual/plugins/intro/index.html | 4 ++-- docs/guide/index.html | 4 ++-- docs/intro/index.html | 4 ++-- docs/online-demo/index.html | 4 ++-- docs/quick-usage/index.html | 4 ++-- docs/support/commercial-support/index.html | 4 ++-- docs/support/community-support/index.html | 4 ++-- docs/support/compare/index.html | 4 ++-- docs/user-manual/customrule/index.html | 4 ++-- docs/user-manual/intro/index.html | 4 ++-- docs/user-manual/jetbrains/index.html | 4 ++-- docs/user-manual/knowledgebase/index.html | 4 ++-- docs/user-manual/project/analysis/index.html | 4 ++-- .../audit_task/SQLfile_audit/index.html | 4 ++-- .../project/audit_task/baiduyunrds/index.html | 4 ++-- .../project/audit_task/huaweiyunrds/index.html | 4 ++-- .../project/audit_task/intro/index.html | 4 ++-- .../audit_task/java_agent_audit/index.html | 4 ++-- .../java_application_audit/index.html | 4 ++-- .../audit_task/metadata_audit/index.html | 4 ++-- .../project/audit_task/mybatis/index.html | 4 ++-- .../audit_task/processlist_audit/index.html | 4 ++-- .../audit_task/slowlog_audit/index.html | 4 ++-- .../project/audit_task/topsql/index.html | 4 ++-- .../authorization_list/index.html | 4 ++-- .../data_access_control/intro/index.html | 4 ++-- .../permission_template/index.html | 4 ++-- .../project/group_member/index.html | 4 ++-- .../project/instance-manager/index.html | 4 ++-- .../project/instance_syn/index.html | 4 ++-- docs/user-manual/project/intro/index.html | 4 ++-- .../project/operation_records/index.html | 4 ++-- .../project/project_create/index.html | 4 ++-- .../user-manual/project/quick_audit/index.html | 4 ++-- .../project/rule-template-manager/index.html | 4 ++-- docs/user-manual/project/sqlmanage/index.html | 4 ++-- .../project/whitelist-manager/index.html | 4 ++-- .../workflow-template-manager/index.html | 4 ++-- .../project/workflow/audit-workflow/index.html | 4 ++-- .../workflow/create-workflow/index.html | 4 ++-- .../project/workflow/exec-workflow/index.html | 4 ++-- .../project/workflow/intro/index.html | 4 ++-- .../sql-workbench/how-to-configure/index.html | 4 ++-- .../how-to-quick-deploy/index.html | 4 ++-- .../sql-workbench/how-to-use/index.html | 4 ++-- .../sql-workbench/introduction/index.html | 4 ++-- .../sys-configuration/configuration/index.html | 4 ++-- .../sys-configuration/customize/index.html | 4 ++-- .../sys-configuration/intro/index.html | 4 ++-- .../sys-configuration/login_syn/index.html | 4 ++-- .../sys-configuration/message_syn/index.html | 4 ++-- .../sys-configuration/process_syn/index.html | 4 ++-- .../sys-configuration/webhook/index.html | 4 ++-- docs/user-manual/user-manager/intro/index.html | 4 ++-- docs/user-manual/user-manager/role/index.html | 4 ++-- docs/user-manual/user-manager/user/index.html | 4 ++-- docs/v2/FAQ/intro/index.html | 4 ++-- docs/v2/FAQ/whichdatabase/index.html | 4 ++-- docs/v2/SUMMARY/index.html | 4 ++-- docs/v2/deploy-manual/cluster/index.html | 4 ++-- docs/v2/deploy-manual/config/index.html | 4 ++-- .../v2/deploy-manual/docker-compose/index.html | 4 ++-- docs/v2/deploy-manual/docker/index.html | 4 ++-- docs/v2/deploy-manual/intro/index.html | 4 ++-- docs/v2/deploy-manual/rpm/index.html | 4 ++-- docs/v2/deploy-manual/source/index.html | 4 ++-- docs/v2/dev-manual/intro/index.html | 4 ++-- docs/v2/dev-manual/plugins/howtodev/index.html | 4 ++-- docs/v2/dev-manual/plugins/howtouse/index.html | 4 ++-- docs/v2/dev-manual/plugins/intro/index.html | 4 ++-- docs/v2/guide/index.html | 4 ++-- docs/v2/intro/index.html | 4 ++-- docs/v2/online-demo/index.html | 4 ++-- docs/v2/quick-usage/index.html | 4 ++-- docs/v2/support/commercial-support/index.html | 4 ++-- docs/v2/support/community-support/index.html | 4 ++-- docs/v2/support/compare/index.html | 4 ++-- docs/v2/user-manual/customrule/index.html | 4 ++-- docs/v2/user-manual/intro/index.html | 4 ++-- docs/v2/user-manual/jetbrains/index.html | 4 ++-- .../user-manual/operation_records/index.html | 4 ++-- .../v2/user-manual/project/analysis/index.html | 4 ++-- .../audit_task/SQLfile_audit/index.html | 4 ++-- .../project/audit_task/baiduyunrds/index.html | 4 ++-- .../project/audit_task/intro/index.html | 4 ++-- .../audit_task/java_agent_audit/index.html | 4 ++-- .../java_application_audit/index.html | 4 ++-- .../audit_task/metadata_audit/index.html | 4 ++-- .../project/audit_task/mybatis/index.html | 4 ++-- .../audit_task/processlist_audit/index.html | 4 ++-- .../audit_task/slowlog_audit/index.html | 4 ++-- .../project/audit_task/topsql/index.html | 4 ++-- .../project/group_member/index.html | 4 ++-- .../project/instance-manager/index.html | 4 ++-- docs/v2/user-manual/project/intro/index.html | 4 ++-- .../project/project_create/index.html | 4 ++-- .../project/rule-template-manager/index.html | 4 ++-- .../project/whitelist-manager/index.html | 4 ++-- .../workflow-template-manager/index.html | 4 ++-- .../project/workflow/audit-workflow/index.html | 4 ++-- .../workflow/create-workflow/index.html | 4 ++-- .../project/workflow/exec-workflow/index.html | 4 ++-- .../project/workflow/intro/index.html | 4 ++-- .../sql-workbench/how-to-configure/index.html | 4 ++-- .../how-to-quick-deploy/index.html | 4 ++-- .../sql-workbench/how-to-use/index.html | 4 ++-- .../sql-workbench/introduction/index.html | 4 ++-- .../sys-configuration/configuration/index.html | 4 ++-- .../sys-configuration/customize/index.html | 4 ++-- .../sys-configuration/instance_syn/index.html | 4 ++-- .../sys-configuration/intro/index.html | 4 ++-- .../sys-configuration/login_syn/index.html | 4 ++-- .../sys-configuration/message_syn/index.html | 4 ++-- .../sys-configuration/process_syn/index.html | 4 ++-- .../sys-configuration/webhook/index.html | 4 ++-- .../user-manual/user-manager/intro/index.html | 4 ++-- .../user-manual/user-manager/role/index.html | 4 ++-- .../user-manager/user-group/index.html | 4 ++-- .../user-manual/user-manager/user/index.html | 4 ++-- index.html | 4 ++-- markdown-page/index.html | 4 ++-- search/index.html | 4 ++-- 146 files changed, 283 insertions(+), 283 deletions(-) create mode 100644 assets/images/igcookie-3de138137cc35af02c830fa0277a00d0.png delete mode 100644 assets/images/igcookie-47b314915384f520d957ab3de1c77d10.png create mode 100644 assets/images/igpreview-89dd21637e6bf79a7b79cd895f29f8ad.png delete mode 100644 assets/images/igpreview-cdd2c3cb139e438493ab22e5fcbbd147.png rename assets/js/{19e0803c.8fb3e0be.js => 19e0803c.621b29b9.js} (99%) rename assets/js/{7eb65a46.fd64a5d2.js => 7eb65a46.b77c41a6.js} (98%) create mode 100644 assets/js/82ad92c6.7302dd79.js delete mode 100644 assets/js/82ad92c6.d2bf5fc3.js rename assets/js/{935f2afb.7d9f2d5a.js => 935f2afb.ba453fe0.js} (99%) rename assets/js/{runtime~main.631a4954.js => runtime~main.213be372.js} (97%) diff --git a/404.html b/404.html index 5e493f47..984cda64 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ 找不到页面 | SQLE 文档 - +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

- + \ No newline at end of file diff --git a/assets/images/igcookie-3de138137cc35af02c830fa0277a00d0.png b/assets/images/igcookie-3de138137cc35af02c830fa0277a00d0.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c85fbc8337585bebb4276bc726c266218e8da9 GIT binary patch literal 334425 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
-~Px#haH@HuuDe7*7 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
sz;Ow~dDoV4<}OpFY?-)(JqHgjTehtJ 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 KCRZhE6!;&1928*y literal 0 HcmV?d00001 diff --git a/assets/images/igcookie-47b314915384f520d957ab3de1c77d10.png b/assets/images/igcookie-47b314915384f520d957ab3de1c77d10.png deleted file mode 100644 index 444903f4af1674a6fd0f9f6cece0f9f5851e2b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160395 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

i@YR3l!G)}I%H#%kzkT=nkC?}vNP?K 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%0A7j3`f3xc*aVd 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 diff --git a/assets/images/igpreview-89dd21637e6bf79a7b79cd895f29f8ad.png b/assets/images/igpreview-89dd21637e6bf79a7b79cd895f29f8ad.png new file mode 100644 index 0000000000000000000000000000000000000000..19ef778c3318af4b9c14a62a450853faf62a3c83 GIT binary patch literal 310941 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

    )1*meFT#wv>&|@ix6#g%!IA}d6Ol9$RzOE9 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%0A++O^!oW=?RMN9(N=&v<#rd6~zv{4$$FI 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

      uGhRCmWGU+Ii9{9Z%`|mS zGf(N92bRGF!OZ503O=aJn>|)Ggwxq!MgwYo65T&je2K6?u0n)hB1^M+za7%|qT1H3; z38qgQqLcnq`%(}Z9n8_}vYQNQ)lQfd&h^p_w>HLWuq?Te|BYn+2hBN-Al7?ZZ^Cjg z7W;;nFFR7GX=a6mYtWe=b{lLssr74<1Z_Z3gG7&D!&zPSR-8Zft$(>c+fvG!N zOjKv~cyEWy(~A20n_Ho6zPl5}Xm88WRMc_FH9@ZDybVaz=R9KTf*r(k|o~f+nRVJsR2+O$>~sL#E>bA5d1mo4s>9XMA2 zhSMnt!i#6k%|S0uGSw`qn`bK4&&LMoqwg`om}|$VXfC9s8>~C4as=Gbp{_F$DL26f z=U=NpN&AvU?wi%7A3N3Cd0h^X=jA0OQK-g$NXbQDs6y`IXJhs?VJ4DW>-*ed+uNvO zaO2n8co`n!mO#Yj;K}xglYPe07_XcJO1YT%qr}1EhaA9^*8GYfs}y5K;cCNx#X}!- z5P_3!dw?8_B*{Z@W-%&C`D7a+eR7Hv5>(q!i;m{b;;HVecRQqOg`N#L)hcVND3|8D zE#PU&=oU}RO%U*0!iV5rZ@CAl+y2pZ*r>^VEk_KGFj`-D9@Sqmi~bYhRC8%=g$e6o zs$@8?$+1D#j8eFtaN9#wTJbEG-fjHmv1(px3yc4lQyHgEL8IEDm_A$o;o)I2iyGzZ zz{%NJb_uFkj6GdsB_bD8hWn0Kqnix}=aD}nppqxFqL@Q7d6s(-gNmv zmVLD+ptvwKgm0o`VSN(6#;-R|yobPsxj8A$&ec3Yw0&N8i6jSs9eErdw{tz_o#&`V zjH!UBw3AtPE3JdL#>y)Lx1F@gW6-nt4~PUC{hVCd?#9yBA#~-jCaW8B8N}I0g2o!k zpAudj(*bPs{W!qB$HtGcc~5^ZeIw}{`uasc&LhL8-`0foDopplI;KRC|9t{pUL8$a zj|7i#ogvSot2tkox;wi)jn!44G}s0D4{61y-YQ#g4KB!?-7C>HJw$A2O4ob(y?D{r z+1ALanJ4OVbkNplw-Ai_CfTz$r7g`sp@Ps`{)K3HH;h1DX^}tZL_<|PVq%3a0sDS=8~_)QVx+h* zP<+3>EmSGv4H2ucJ?Iv&#a_YT=tlJZQUwRie~pr25mpmIw0H`Qrq+rhy=MBA2s%-H zzz~l$eX#pjm`L0ciEh7y>M|)i5=FD}h%#nk*^v3&8(U-9sOgp%YW;Zz6_3 zGF}i?X|I9YPoU?<-R=e;TOOjm2=wQs$O`Tr0ja2{Zy_HqEP!vOf#B})I_PN-Ca2C`_90mZ)FkN4Yu2=N z^u32-T!k^pXc7x~W7FD&Oi7y+79vy9LH-bGZGyhr7(tlU>R4G#()p~+&z&xGUmqD8 z>(Bb2vfrmiyPl^}SGnwY(}FxvM|ZzvYtx;#JFjBeayB=`^(4tst$5s@-jYa07q4Qk7tAKcucRxGZ@SfDKj`fkqc#ij4J$`QT zM&G>Ec|ImReP(MYT}ZgA#p2u3^5ih-{5>|THl;Av)24{8hv=Vx~2v~xi~jBwKQ?ngGG{qh);=L6)O9B zdU;}gw}&Uw$uUShDtddHFN12d%Q?13eVQDYTCAkCp9HDVv*;a1y)V%Zinc5!3M4`?!)p$ ziY?_~$n-k`%1)x?b`sLmyueURc=37(QLW5ZYjjxhHtOrCjK}AOLFVt>D-VjzlUAZ5 zTkP@z-S@sa9BNlH!OdJ2G6rYk>2ryg*we%8?%Ft-teDb*_5EFpS~XZw=q2=6E~}D8 zzsm0v8pyq_NGke5_A_9AqemjMz-0Syx;mvAEUK~H*+$h*X#PFu}M_1mAhNi-gbcwuz;oVSq{j{?3%BLijF7#cTUi+*6<(} zycL_mUbVy8CVT_mrfylWr8o&pP|@VzB7N3MtI}&uCCG0Wdmxh35WSsE4h$NLoaMwTPfY zSSpz;nZirw2Gq3TlpoI{(-#w1M-e!^_{L1b$p>g zTOV7<$sJ!uwz^X1%C*_AYd_dEo;9n09VCZ6`%-H3QcCBDO49eYSL^c82X|3G9kDF$ zqG79YdCCZBCDqc!?yaR@0F0bk@U)~PuM#*VWsU=on_k+_mk*i*u zYcJJDl;!}lK$FIE3FLwq%uLPE!zYw+8gHh3D5%{MPzgpku5^OB4elm4%aI)m^9qgg z=dAfNr@yx!wpjECCgXgy9*lPSHCyYgpPJ6SsIPl#vy0&O`H>T5C|7&PLL@ROLF_P6 zogcqScvmMLS$*0#xDHL|6*TAm_C63+a=9BK$jP6|N4K=;qaMeALDw7&4ZO@BJk;sG z-6iNdH4RM+C7yc9}2pdW?jy1w{X<0wZb2Bn~W8_ zq^`qYcua_qoQQjm#X%`%>fmDvJY#9vMn^NRj(WxkbF6HLg8Vrbhndn#s@))ulOtti z*P~eLCk`dH_y0&9-Na3+=Fa0FNUOwdZu`#1vIt43XN`H=cIU1TBI4R#x zptPHv&UX;@^pk#|dHZQLUtx6Cw#n01X)Gdcyj;prZw&V2#{u`8p`E)ciz{cx68;Pz_xnDt+@AG`b~gC#tkw>Bh*6*lf=G=XobRdf)W0(k zKYvCfEWz|`)xv;nc%6m!ePvK-sxiuc$YWHhwZ4JH=V~hc`1NPv6hZt%TV6wIXkgbD zM2}o#X8aSxW#HD<)~j2^h$;^y;Nkn*;hVEosPjtwkgG3wIu=9>>;Z#V6i!GmLs;qT=1oehE(U0bcoxHypG!^f_m$#$^MglGWtsI9a-~=N`Z$vrj-E8jhqL9?gGk(pk{d)Z}}|S$+7dDriy?JM?)OGrsKQ zajAI%8c8Lh{~Xa35PfRqdR5!jg-NP>ai;L;akB$R)N_;6RgxAEN=mob@u4`v!eaBQ zs<_v|#f|`Q#qZkX@=^yvH&si%csz-tgDHF>e;+1^)w8AcP}biF-qf@*KmTZ(3}S53 zKDAK}LGxko`z0HFlTg+kV*A>wFqATpQ;9F^#d3S~82WC5pc_b7YYc_t<%CnNgpa5O z@Lt+Cofi#}6Ja_d^z$k6skqCi{%pAOQuk0glda70hu&a}7kn;p%2Xh~@!zpe?o)7+ zjme-h3D>H~=vsu{^m?LjuS!bJ4;PVLk@p{z)w2?66KNC9@eI-CStCK9Hi>fy{k{ax2!9e?5 zNJMW~>0=NV4~LnSb_4p*;AN3mWrR$syiwL;J~~^uw`0 z&jYHdEzLwJ-7-S1yGcTSKqAI*DlNaYC)rEc&_d;JL$8MjgQtZNP&__?T4mB_*)RF`MB|BzR;dz`pck7(B$fI#FYpD>#BUrWpyrmnmo=hHE zcKW8)u(4#=RIX>LGhjGQZCR2B>22rUfu3)iQo1LfpnL*Z>g+O`r=<4J)n;;Se!q#fQP$-tVAl4s|}X`zqw81 zVN=IX(FR-Cet!3T3H3Y3%`NE*PHEN#qBDHf*x*18lRCD2lp;tRHB`$(D=l5^^eg>v z@vX^n;o|p&;*vVzpWiRO;?Q%=cXsVHxLGZ*w3>G~Xy!`?9c(@t8<|<`&?cKyR+dLj z*Dil;>&tXV;&Z|3NKdMu_L)t+7WY#57|KGlk!}p%pO)})Tp=O|Ol$_*FXo1$+9 zoZ9XX(AoAlvEzNI=nrLS5By!a0W`$SfkcdF_HlA79U;z`i#ZkT;yt6($3-2!n$(os zXJQzBHI_5qsG^dBpfvg$3!uWu!LejRj?E;Nq8LZb$DScGB4_**(@*jVnp)8#C={Kw zM}>hW1owV%h!Iq*ggc?9po4P;#C7Xe7Ch_bA<5v1mYfo zWWF;>8x&15Ji&>SGkubiCKkB!=)X=fzsZudV=6=zFE(``PB91{}`#$=M>n;Ih@Y`B6z| zqs}u197^jlhOoqce^ zre{@t*ei|fK!pwi6?EsuKJy9?Vwk$^FkyQp^G0lp&TgA1YrVJ13-Zy-%=6lv8wZ)J zCuYUbc)LJ7VashIYVFcN79k3I1Tg{qOx1 zt`?hJ1a{FEKP-0zAdi-F#l0LU=zYFCJAeG|-}7m874t*WGwm7cE; z11)+V`Lr)6NI0W*v+tBc-{0niM@DK242%0S6x3Ph85zOH#7o3w*aI*bhGVx64)#q3 zU9h$()gw_Q^y)H}U28kzAhY10y6Q|-6AM6E7Z9HoScL*Q}X!gqYEHx zySzeNE9hb)InCTkFZjN%q|hS| z*LUK%kvN)B6e>dS)cLupPbVpyt1mQin6)HJpadX8L&tINPth` z+Hut}0ah@XNxIka5&ID~<#i=-mg>ahq-O8)kQ?Ws-d-5fJwV&HV-cQnv~VFH$QRO# z8_?FP}(5uKgv^I{?alG8Ymqg${%#b+nwN!wIxY=M@_8QkdSHB#F4*)&{6 z3;KJW6=ig}j0E)C#8HYInAB;q{W1*l9~e-?Ib1W)RY09i;b%MIVqpVnt{t}4DWHKO zWbXFfQvmED%yRcG#Rur@vsn=p4VsqAQ+1hSbfc>sM5ax{H6UE5!JG#Fa4_ za35m?7tRCa3ECP#GN-2J)G#_?se#+<}H_gI*5~#Pb~L^k9Vd+nK3x0A3rZCs*< z#6MgEwj+B5M&I4l5;~(qtNjEbc#yu5gx}O&x(}Bn74p9-irz(h_NJuF73)M>B@;TP zyfCWCXN+UElS#m2RfysXo2{nnCq|9%9p;ekwLQ*$iAPonbt75f(K3deOWXxFcvrdt zb}nu=mbfs2rk&rkC2@(EFTXRl=j9_ke~y(X>xBF)gf2nM*SJH@n?s1iLr%LU5rt%B zbjd7Gk6Eln^SHRU4x4ow^2(6hzC)ta3_ps{yy z1?z<7Jb>61wuD`lmY2nTiHxkEh`^Qjk(rn#=B}))Y-l(?2$vAZsbT8zq#)VM63JA; zVAyFU&)}P|&rqRew8ecgZ>OAzcYgL?1G{u@R<3=PQ?iqj?XjHWNK}-^0C0@a zHRTlg!`uZFT;Rx)4KU0T*KW4l0ri|z53Qh+I9;<-O>RGx4B7dqME4-(DeX9nxXohf zw^z1^u5ZP8$3ihfhLKqpw9)!<7M2&XmNER910XCrk%Q$mytpc0Er@NAPELLV4PL4D zd#>aOUoI`F*b66l%P9K^}~6@*G8qWh1S(qxSVLU&z|9C}CiQVq`ycre0)z z?XI0_3glHS3}q5n@jXiecAH=)Q!6;83VQ8%($MRa-POM;@!4B4efWW>PNPWR4P6YA zkjq#b?!C8GH(%W-i0CRlvPsPmJ$tAl zrCQy@dvNZ7A&91~SsGK`(&}s!N;Vwiy3j;bPGz?^SJ}H-FiZ02-~k`%cFx$~-^z^~ zJ{rP%$iBNV9*kLEU%y#eYHE_Ea_B;4{05;@Uw8(k`Mv2*!i;zedG_Py=z5yG?P0SYNiqQYU9Q5<12v`^XT zWyk!UZkqFCUCg%1r#OXsX~}xv8#-jSZ@OumVw{1!`e+;Fa6eAPzW3N3c7UlR1)JxZ zd(^d>_ZM`y`Vi8Jju{(6yNqk^N12^MI_QgtXeskaeVQP(b<(a&bJn0rv;jEKiEA*2 z-Tcvh2}h2CR@5H{;3=!}B3q(W>!YXWR}H?@ii(Q%_WTl!<+rc8;`WJWRO-4MW`j#P z5cl4{=K%%k>UsfW&%I`GDeye~5?~e@khtM6WsKEh+Mh%De61FG0`~&ezgL1%xup$l z-efc2YuJTNX1>`i=jJe5)i~s2$c1cH4X+K<(pIrk{q{7{ZdlqVPbNJ=2)&=tP|45E z-I_?QRY!Y0kMTmMw_E}2HJf2!rP?{i0Dgg2cCbxf$!YXdiKi0cBD2De2M+}H=dpZ* zvg&4$TntfklTK_k@?*6Jvc)$+J>I=NCwj?2`V*w7dARJ0C-U*&R^xU@W~mrutEl$r znw-J7j{Z34c8j;{D^#EF=}$5GCva~Nz|WcLQ!8Nw~*in@bF zpC+`9C@{WK6ni#k`6*s2eAd=cP`?e=m z>xaiPg*sc`Kb{-(k zI!{}6IMJ5tN{Pv(RAE0B_Qu8^o-SKyc!Z`Z{np`%|_s;|VEo)JMoa0>E~e5jO5=$nK0JWS~? zzdPd#lkG?#pDdZv2dw?Bf9=->k%+xw3`_u!@XL0s4*S&gV zp~S**nE$RbaB1L|$oc8&l7}WSMx)|O*|5-H^yA^6$J?>*!rDGAn!YycW?`&uz3dO_ z6o;Ow(~1V#k6*(Tm|0@mJ-Or~_YE+m!L@g@2rrO>HTFY{J|d1Ai;ay@6`zAsN&dr+ zlwq|kch&1itCR(Ex3lkX8S^=bvnqi}T$b+x7bN=K=i7^u^nupDFK-LOIkYc4ou$*# zENIR$ZD*c6WHW3aBW17ge!h=j9=Z>c&d$pd4mf{=9Sfm7vpw#3`9{wyNoenjB3;`@ zaOZqG#{BPT#Kc6ybCDJ4v)-q>Dk%?0xeN8Y{DMXw)Rg`FV_;)5##rK zv%Z?gn-RN{rB-;3My0E$<&}DD7kZU2LfMNpGbUuP9#-uz$@k4RFh9tY9#}|6086^h zZMz=Y_1Ibwm6&1_)L~2t-h1os%B_?|jzRv+Hl1g9GNM}Vdjf>^a%}UXHv`u>X)xh- zbNT7fGAnm|b@;wgsmr213u}u6>;QwqkgIe1E z)V*SfZy%aFRj{bP!Nqj){!z^O!+HTeGuZ|P#)H_%yIb=>T~tjKm*4eywZaKXm*?%C zLg4m?Bt~4jjAe2{9NY)u-n&nh*$4Yq`iR2pbw~5;&i81YO8wWPu<#s5Y_U(!`Mwbd zWB3)j_A51X?x#YMEsmD{OeeCNMSRjQ%ar!shLu_eYYk3;un-yc@9h@(N7bl9n0XH- zDZb>eCyrv#vh-m$-eLW53-6DdOkGOhuA_O-b_im`JJ&*1w}2oylsmILQ+9OwkP)!! zOur05hCkSJf)?~(% zqxU!wz)DNQ!JHzKMTQIGMTQ-X{4()9*5? z>NSPXbBqAmvw_DvW;s)5!}kYFLV0aQ-YAnUrH2+=6TLvzUfp%@JO;H7iChRV7V8W= zr7#ntr%Z&}tlWYIgU9k`~0PEuX zOaK_eAg`jVQ!TT_?gPAe$e_!1K5l3w;jQs8Y?OBsq#ArUQM?#&FXWl;Q>T#I&+C0@ z9q%gmUbtpvW_V&srl#26&^e=_64*OA(z1hsb zx-4Xk?(YasLQ6s+cwTa`xpD~tf%wIdaAP_$O(>b6t>^DA-k6j(V>eayNz(|HeXhuB z>8Yo8VJeGVD!?b=le(e}ft>N0}>^w!0}s+lFCX{WqPAdBHP zQ>JM8f%U=GvydaF@asdyiIegMy2m&}b8w+-3NUDq|uLea|$LMdeYV22O<{9ZOUfIs7- z=v(N@vU$)M)lUY8onEubemh%RX+gg)y|{B7KG)lE9g@-y{Jw6lg3N+|z!e`O)RUYrO2gtIAue`Oul1)7jvF67 ztn-4hwJ6Aioe!4Vt%kNu)6m=(ZLcPeg4?Z66@;~^602&BTjk_v4&yU&t z)V7~Xlv`ZU@&F2^5d8#@6`>2-->0b{nSC-@?gV=|p!^zS#HU2@aw72dIfs!b*!QW3 z3LZbBln@%?0@!TrpPZByi>7RkhCJUX&o$t^K4u}RCnFRXN#8+o=@9!lwj3>`1v}`e zO(q9UZOUX6zm>Rkdw3nW?~?1c#JM>enja5#{KyaN4BQJM$&sk5#4H=b z=ris@4Tjn2={n!5Zu2v}9Dq{$|CmD#d{_dQWYH!XYOdqiLOp2{##&aX+m`)yCSo1_>{upDwQcIA?0u{PhT$~qA5 zV*K;5a>UVL3MFx!Vp|pebTDD2zR*f;aiQPpCXW0H&87L?%+0ENeTT5hktFE?`J>dcnB@7 z;5}*4Tn!yn$?@B}jT|P2mB6cx<)c+Q6?c{)=tz;bcrI(P6Du*s59!UD&+ydF)5%}- z5K56b{Fe;O7NJ`u&5Pb}nbT4U#s2xeXRz(Ud}f11t+ka-KblW-X+x@@S`+cJn#KNv z_TPC+lFPN1kzejV2!5ZH+#U+v%Rtrp!FMBV8eb^mzoh8YyNx0?>1W@*dY8{M^KZsG+KOn6bzwtIjXa7@eeBz@dBWG0> zTjn?Vm~9OIPAOVE0MfW^L0$B9!AI$6PGfS)KHF3Xt0yWDnY-Rh?j-mF(rc@f_W2%$^g+$=IXBeP{D8AjV;}g_-}#E>T%RulFL$gocY0Zh z-cWwi0zafhDaGtjQKJxOY@@{`TakEjDgP;U~_>uV1VlZmc7-HbSVStp6L- z*m8-`?}ktGGowaJ$)>}^QvIBM$dw8_j5ia2#Ry$|be12=y+ zj*d#$iXMGEiV`NS1JCS7@0xt+q4;)ZWtI=1-g9!=CzQCcu*DB2%U1u`u&DF^og$6G zAo}$7Wb4`7GvL>)8GCZ#pR$gU00x#87f+Mk?w~Z8+7*8br_1<}{d2zx;VLLLew=d` z9d)fuFjWA zu)M0|EeL=~BS)b#&TSGQ{U4HE^v-soKEm?QSXGYQ{Y8nwLpi>#_<>}Lp?38;Ih1I!&izp^GxNX37LxS?(RD< zM2r^zzoB5YJhsW~S_ zgYn9-AXItXHz!{xqKO8ToN3koZzwHzMC?ywjJA~y{MQoY){+kUD^+H@&03o5;AY00 z3ATh!$mnLz+e*!~gkos|o;D}9YL2~+$_n>-9p)0n1mLoS)*1oyhfz=r*sRel(&pl0X^d2nr6L z5*O-cuuPH0C{L-j17(`FvnVbc;E_BzNBI=qNvAx)8f!GkG4A{uhwo)X zM2HFRng~-f9x8S22ew#TfzdZZ-6mpJh{_n5%hUBWSpMiQbl7sRqBg%r(eg?OI_!#; z&&7G7Zm{1FpCi!w@b}5d%8kXebR+w>x%!|XV_;YD)2z=6#WkENT^|IMnw9ApgtSNZ zCW-?h1AoEG408#Sn#^0hJGo;wB74qiM_-x zZTykKer;PAK5govc8;K+E+<1STGf+KN%N?S+p$t7cOO<^Y55i$QxAogS zE^ZhjjrDKol|sj02OigiqBKNaY5TKBjm##gLM-Xjv{i0(+W${iUl|ogx227{1`<42 zf@>NlIKkargS$J8Lm;@jLvVL#oZ#*j+#$GkfBnwPz2BW#tA6zARaISm);YWO+4~Wv zzX(L`_ZLE1kOK=LjCKmuaAt<~iIA}dIquAu4R8Oyy*><{4~v|8W>4$?!U8-fWAlUv9m(n|$S<0V=%+G^36xHvf1 zw&qECMHAjy`3i1?1De>e)0iou@OtuQ|3E}+xW2aV{E7_S)Y*f7_62E|{@{a<<5nu2 z1X$~N?57rOhPI}a6Qz|t4Am=A{n)03brp}eKd(9{aNFH{pZwoC#TaGtm z9fFTq(T;NM^oK_meyoBJUpc+`X-bPVUH^CNd3YGTD#rb<)_Qd(Ey0p^KfC=tfKUCX z+HHLoQ{4E^f>08OnwpwaP&TI3;;<0q&_t5&aJ{RlPlefjD-r@%_DzQjPQ*e+W%TcI z)`_s)PEvA!klSW7#!8Z+p%o$>H$A;^3B}}+KwIY9%OYG2Gd;LCgnC{=oJ#bgcjccb zp(zFjT~LTTF&amM9%_&Q@A&#rWlhA|Wv9jUxku1X2Vi*`?_pJ&;?(I3JztO?u7r9= zQL_yfd4gaZb*ruvEN002tyHo~&e@lHuZLZ1>EfC6-DcZmE4)B+8yg!p5#06?Tp|@j z7!!UUH((Vd=VzYBcdg&oi_^7D-|#V|H&43eECk=JF#C-*zO2#-Cc9nzP9veNDe@i(2(1?c}`Z3>79ak{~H11@3pYv!eMy?e5m8 zX2%%pC)yU9d}VXtAQW5S>(nSg?b|04`GJsEUGLi?_c?j)&?2woCNiIUzt-EA8B+-l zX{%CUJPdfQns+NzvIIT&rA>tk$Oitq=NA_D9VWgdXlx-<7GEK;UdhSH?Kpmb=V*}c zx(6tUx_j*Bi+RZaRV5SZ+SWfFo39)G&-32$+zjYG!gk;X~6{X#)V5U6tVwucu0EuWvH2IVIcUGp%y(Z zPQ}J^KUq`o>H3tP_Ar*z>m#B<_)Mpe(PNX_{za=h{TtG~gj5*S`=Z-3x0K79g_nCZ zcbh|Nt~Kgu-FGlzCs<-MEgt$#3(KB8o4y1v98#Cf=Pw2?XWZGgNO__mSm_}V(M|9= zdafaHI^t?-atKr+48f>4JEK>rL(Q`Fbu^g1wU*M(38#JNQ@GO+(6KHTf>>9LX7rTd zLpyKpU_*RncoNsl%(1W$Ju^fC#?p^QNn`$?y|d)N=S7Sd%6W~?Oc^ZeYUwxCr+|V6 z-BMFKHtgqmWk{E}Qvp`~Gnp{se0B4UxLMCv4(W+Uoa9-SZ1gWv0Z^PWT{?75!2O=g zp@6&Bl5(OMXZAFa0sDPabSpmWNqQx6QG|EvenR*$UC_gt;gv`In1yI``}>IVB4K-w z+&^gs(%B0?1@p`Nu$$npYqd;rYbMn&=)lnQoh8g1f39EVG_Reo_tw)Ts5G&k#c@g> z=yTrImt&DuH=%K8%pURyHUZ6dvyc;=0LX7NV1{b9Mi)l2O<{EK6U6rk*z8n1<*`?i zby`ey<_%Bbi{G!Le!sG8V^Nb!#d|PrB-$Ps!Q~zl{oaJSKtXwBIFgts$}$d~3ze=C zUS~>BKqJ}Sh6hc?)~g2$b;EV_?e4T<*lHz6fTJw@h?~1SY2JU5yfx`{+v|;6h^{U* zp=9fZ&+9!OioFR=rRhMKcfu5elVVfLF2ZT=6GRjYvleEjMHRI?&pyYhc1AC};=^IH zJrnSqe*w>`6A{GP;Sm(pvlQzuvzeZd;kG+mrKk&T#jn}7eQ7*FTAG>O&%nw2pm0gMS<+_#sk$QS8p+a^f>u-JcIS=EoX;2Nq5)^#FLj#RGkc~2YHtw-*~&;E`G*wS!6no z%>Oi*TjW%FNYt5U@B1*=WCd@uwD}esx7yAc27~a4oX_!hK3~E++wCfL z06Pu|0RfS&U!{SC@Q&kMKFa4>8eGnc+`#2#CtP;qlTL|UDtb3aW=$7Zex*dZWsBS7 z_6cDbhOMOtM8`ItP0~UpV5IkUXhVfjLsSl1H0lqEFv3N?kNo@ATtFK~X%j1|uAMAT ziib~CyEVC5$ETmbqY#5a4s1v<_+6*(dY=8feAZXp^~_5}hUVL@AS(krS>GS8s3BHF zsP+FlJ%dY)owMCIbGgVQ;FLD&Xnyc}X9qE7^yK5$w*gz=MWGgsihG zh`z!mHHRzO1nVand;(^KU%xyl@tkS6%5M}bcCv=npWq>v2b0L6QKEXh+oR;8?q30? z`LyUCqiyis&N>UkFq42|^3rxO*sOpe$gsMQf8BLQr%y@aj~~j#Ect}O&MNC-z}#bl zx3SnQzX_$Z5E$v&vK|$qKArw;@9LYU^iNtZ&zZ?29+zEr_al*1>IoQ}e^ID`a(d&u zhdDm|d&kN%b-4BRH}@MYiasZS>DbsZmsS?6L}0{AV59$oazi8+JU-nqR;`FF-83&D zIRzjK9TQF=RrVwkOYNf|fE~Ptadow+G5}K-ha^p=vUKvwN6#gUh#w|;qVKVVcWGTy zZx~$vcg!pdM{cK;3tk94tPiOt%+XSXp%M>6I*u(koKH(aQc`RQOJjj|DgvvS5_O1s z%fHKNs++{2OP{i=HmMe#V)6YWm1zM|j-UG^*%S1cv8vbF{iZgs$0u_AA-rV*=j+1t z+g(7vb|;4_ePK32>)-gXMs$^UuE7-WGbqwVL0FV}=c+~B#Y4Nti<4Hz*Z+ykqm7;( zqlcxR{8S1kvvu?GdKvbu1?Myl zk0X4drJ))4$AMWf)gXPO;D^?FkU-aWs(MaFLXz4)lrZic`i_4Rc>Lw_*cs=|RWrts zl#-x`?6+F?m)NbE_M-yIcy>0qAEYobjF-PF1Ncf@JB@BzE%Vc7J3pa>Nkr0+R=d}M zJn%&{G%MSlSFs;KP>u-HMM$eRrJJ)AH^bUCz;9|3Lcmht&H zAHtI^{U}*71CY=l%49AVMTFnjXLxVH1Fl_m`Q3Fpyr!}fOS9KNnclvXdMQSJ50hls z-nWFl+c8VqMd>@fuXuqJ?-%W+qfNsPCw<(FhVsPx zZ(ZBe$k^~HsoL+(Hu7y~!*7o(YqXjoi#3f4n}XO7`iC%8BHs&X=y`6g;Hre~O&bLv z8Yxt%BMvR&M*K zp4sIW4k$3CIvXE|Id%BWo>y!2yFU^RN4A6}f2nr0YaEBdrzNLrMXSwkEk(pH8{>+< zf$=}fVNBrg5KvZo7Akc8r0YMfp9S@`AvUP!!H$_yp#c@`*F#W*uhuTv2G)bLtGdM# z;poo!vf};Lszy-lCXY_aug^5Kka6PNGt12r{Ap*@h3P6Kj=xvb2(1eis2&_uZbCUp zXUlC%=^GQPKVT~ioU<1A7bv@zo9fPj3=Rq2zwdhXANgYp%*gTZNeW8L99&OOb%(<1 zO7`{@Z`2l#SlzK7y_E50Pr^SdORNuQFlc z?{m;Z-_6JQwFmZ?+`qy9oVA1XYpH6h`K&M0o^M!!^ResYYet0)!0RKA_hZC^mYi)8 z1B|GvZIY$~+mh{z`6JVB~i|=Dk)3%i;f3bT5^V+Q!B3Ut)<;3_9 zGorirJ;*79V?&6VCnPFQ&dJZ4S_cOlZA&^#Fm25Vunm|eE}Kk-7ag(zc$vm zMguo`rn{QLt;@5>Ry{7c*-HJ|^hD%ftxGf5oL3{3lb*sbFNB^rBj;rRclW=KL`fGtHZgTGfRKfWn=a=zQD9 z_2bhyzf_fNF5%ypsr?)!7W>=BQ(iA2Uw zS#&I)X%$DI{h_gaxak^0(5@m3JQN3&qFxCb7oS6%BP&}~P5@^;psuNZx4;^DgZA-~ z;N%N36SpWQ#bSTIE;cjS5g zkA-a|SRrjhQT5FH4`f%Hju&|mLtQw*t{(~;BuLzb4PFmzrrzxTH8-Gq+f8rP*PbrhlrmwC1XbuIT zLsu7$u+>QYnS_gQbrHFRl1-=$9bKl1v0VAZd4 zJG|Ry=S9q`|EkyY@(-cKZ{s|XMm~Zsekm)UvEicZo>b8Ld-$PJc=crZRA;MCKT?YK zQj7x0r+7``yRj5s+|0Bh8F}hDE6qEiY(14<0hX`S5?|=Wr9O(y_^m%$n2*vL>T@rSDt6vx* za!hZ;iw>u(3L{mzIz2%Z+9_AClX4YOA`g_X!2m z4i03_?SyJK;4=_Pp5PF{<0J)OQG{%8-Db^u2-07b+f}E#E@3YHj7G{MdwdP{*feaq zi{4q%kEfN)fN(#@rf&<<`-n=9s39{QwB)EW=K2 zV?=Cgct2TV(Qm+ugf>56|*(SJT257fq%L3KTLF`~Y4h*m^aZOic4OG$^8? z>T|h3MS@BOU=n#>1;uJ~Kdo0{#R?|u{A_|n!w|k$KZkk>nZ34dLp17e$4SQgyRQ>$ zsJ{m@yyg3PQH7=>!sGw_H2r%qPaF!8+9fb|wYgP7)4u!SJB(GcR{Kx^#ThT${ak^h z(PDsD5c2SzIONlPFHHr!@4GFo)T%_;j z2ZPM`qPz?A?+}_xa2S2vTVmY;l4&@6c$RsME-|257O^-VRWhL=q?v>rh&!)0%2I^R6P# zmdnQQ8Z5YTyoc(Gx00%Wd@t=nz}FQEKcDP$m$xQ&>yMY}M#ttx1GdfNNE=!wxNLM0eo3@;eyqVK@kNAprFgF z3?}|LM5y*1@7o|I;`{)iDM!ZXwL}9+i}*KFIcI{)i3#;j)wrJ}$Ob+u&-g@tDKsf~ z_bs{s29EE`c-DpYrcilDDU`TqF^SPYIs{dN$UTsATToTh)YOEOKSO28zgR<5f3k8d zEz)be#O9^}tmSC?ZpY_{iwv zw@X^M?4SQUKHXsRJI=mUXe>Ca@R>Z~SjzvrjyIhR5u9#z*X{JSL6SJ*e_pkz_89rX zj{tL0)uuhmTI`Ocn5lIL>xpUpO;tQ5Tmhyc>lcqcyCnBZtnFn2U_AAd+*Z)>~n z?YOM+t2ii>zqH?|pZNT|&ABv@CTMnGoNSZhxz~1RuuY z`VK(^=f94l!I0ftH8l(a|GDT`O@S_x!AQpHNBeJsn-fbu_`Moe-VDCa$-|by*ZF{!yHRx z<+eFsU@T?PZEyYKj4##OmxUKgq9?c)X83w>ubT?FUd)xx;1Nugp@VjVzpA~Kl>SxCLoyHH^r z-|bLM(&X2byCv?5Bw6d@1b|AhG`ciQ06g7r6BA>+RMGRDx;T-|4KGUHoEYvDDo?HR zZ2f18&8D3k+VY&rYX1cY&Cm;@S&4aGwf*Tt%d3gs9SKYdv;J4V)d8wm&Ns)2(2c%t zb<-}JS?PCocOF$*L{}i(^?p^A5*6|Vhc>gPs?&-saolHe;TEZz1IoOBM_xTZsq20H z9MyJf5D2S+(Df#I$o1LbT-=1)y-fH?^$MR8GJ`=_aR-061-@a9RgiO7B%mmKv%uQ)= z7@tMtZn&-;0R0^|LsM_brxoiI99@Eh)*795`zvxEf4PrkI&@{)8^`S?I15(!?RCGP z98>yWrhV~yUam6@#~`+>1DNeBLoN7(+D~G`{k;~G*v0fzF1uSk8{e&Y$w2V$BtOLO>Do|0`RdP-Vzc*#IZj8Zu{GvzKQu~1eSs<0^*EF? zTbisV<`^|9IY3Oh?L4xtXSm}bS%=%t&lCNxWueR2u;ojj6pyG07TS7ncED4E1+13S zL+cBrCJYQ|rnI<-+GRB4aFW;jWPSvSrw*Yd!iMr$atZHN*5$(Gm<_Q*#}Yf zc3$`j2RX<-V-T$gWhcSMOAo!V-%XjAs`1&L8D8qXoAi+@S3EYb$nrl3!iynSLo!TT zRBHSaf_M{?ez%-asSgvdHDutRz+RnF?b~3?a%rQ^4yPaM@-bP!v7IK^y2Q9MNgyVCZ zmVahezZ_55x7!`>s49NlpEo_6*z$O!h>DY<$pwO+6y2LGWfaQ3I^HfjQA?ilTR;Bw zd)R0xVoI*xi;S4A7Savz}Tls zK2oj!3$^IAfBNonKDza0-;);@4m2x)i(uc43K#hMr=NM$+}+Ne#$0nHlF)X^ezV)} zP$AXmLpk2Op<&rm>s8_|L3X$6G0{c!(7q6;ySjN%*)b`@wHXvri1!zt>JEfsqyiZ{7nUJkFgBpkjr{7a)h-7dKjF z0m$tf0X_I^S`4fE{^XJsGU(9Vel{K&rH})qYW&^~CSr(}>ipY>o_j9Wz>v;kH~Nd+ zR5FH?*ZHwFo?7z$T+>|pdmR#ca71QRLbpY>%RR{w_+atW-*rEkAa>Ov*8*~RmjJsj z_OQv{`_9tfzq214g#5L?a9&fH{5H?G$4z&b(4%IdQ(09X)97eAU$s=Bx-x6EJ+k4? z#{2Yi6bU_3^Qt>m`?jY0Hz0?0N+EvU53(q|Fd3!eY{*s3hf*=aC&pB^r$5I_uSdug z8dct>m%uHD69TB$_-doo-0+1Em04g9#Pek$oZQ>-e6^IUhyh#RI&wkS^ zbGijSKj%J9QT)K1Wq3360(tdZs!OC<{#Ld|_a}0UB}2exQJ?XmthyR0iKeo~e?nZ4 zg33Gx@Q}tkJZ`Hz< zuCfx%UrtVKZ?wG#YI7kNpUQqm!KCLq)Hi6+`W?`tB>sWvB?uklw)qXR<9&Qb25}?N zA&|&?-7tQ+aJd>J(3eXw*9{N)q6(W)LF3!(qA5Qi=~Fh8w06c!Vz#u#PDmUe>LSB! zSH8CDO$>;jk29OF*Dnj=iV~WaNKGV#jaZRfsScF^{-!+mdo|s zCGFkz02txq)YROjGYlYYFjw=?Ig;G>w8+S=Qz_Ey7_Ko!-4H~K9G9<&!2z1>I&g-EQcxxUHvYHwC;jD+80?)I-;JZ(z#zcQkkSb zG-EQsLphw(!Zz7bS}A5;lzwUwhsmaV!-+W?DJ8nqAgI3267a1)cRY);0lOo`p1lHw zgPvqU+F}?Qs!qcfyLs$)8dY@dJYTxb?IAYRUG76gxYAv7RLDxKom#41e*#Am5E^e* z4GqtARk(cjB4+)~&O8b;U}(^f1>3JSq8)$_l1nXl2qS^3_5OFK`|zU)&F(LJ6U=v) z`mRsvl38veXNWF~LRaCSO8uLiFnQ=e$ff&Eu8d(33iX-{(?}k31VS}KuGY5R9x_UE z?DA(}gOPyeHnK51XHn5>g6D>dHAO|@FD@+Rp8^+4^A3TTb04nAHLIS_A(hL=zs%KV zi$=|-a{P{4CKZ%*nk2JX>FMd&ivK6OK?#aOKFDJ2Pl_KmB+n=d9~hyQpI$TcyGnL2 zeCepD>DZsX>St~l`CKd@|Lx@x)Qm*$_=zyI`IljCLhPvxGS>1K1O3&V;YMfG{YkFD z&2<>Ij@ro|BIN8Q*Oh^*LMGul*&?B;inq;&?v|^59nHIqVp-%feg7BGX1xcHU!8Of z%DUUkJw0t%T;x{M)a2%{g=KR)*&7`lHO{B_)P`!MR0Zc+gt3HIujOR!p3ZwpA;C^9 zh7-$JH=P8o4rk-948j*Xc6_$%N9Trrzqk#vr^|E7WqKIH$lB_;@xi`c#m}vurNr?ZX2UnUkFWTgjtAvcLw?%&_fj@tAk&O;cok?NiryjJukPzE* zx|iQx=+&)zood`H9QSUZv<;S(km7P3)w?~NLO1{*zU_TyBo>K||2VtkA(*LfEus$c zqrB8X$Di@VsewB1N8d53_me!g+QC|WyDW!?)#(^kL>z2go))cO7a^t{&o_ zxGHnf=TM?>(&wxDshl?ucenH2cK%_yvs&M0{<66PvHZeAa*x|O+An>9#+~N`gv8S! zuKmqJE-c-AWpnwW$%Ra*zfHJNixTen9UQ(o&FrMRe27_bsJ)Knpzm#W6$V}EfwKXr zEN#HM#3o&LQtwCHlxWKR;PIh3qOG`rJmG-QHd@k-soLwU*ZWQGtt~$L*~f3CEcNJf z`yM1_aOW!{d+{y@sjL-fC+GiE&uvRVII_i_)`pnj*3gsU^su^h<&%_ z3`v;Lh-He^XO%}yxTU357l%9`PV0S%pf4}2Z}%kC9PhF;&H|(oRVtA&jyzUA6EGWe zK4JsCo88Bn#jyDMWN45s^$U71TGX{HfS|xdSvVN1&uQ7v44dD?a}c!k)UzeH{N*A5 z6KRex^jo0wR}lAb2gz0L;W zB8_PROHpexPYk`cTUdVSv~2%wLuX`=(R~kJ-?LuhJADonF8yn&9xLz$VjiJ9%z;cq zf}6>xH3?A7b3`$#2=$cNJ-x-XY%OZ9vwn6u4Gj3i3J;4~l}R(WiJ{*2nZ zo8JkY%TKENX4a}7yXpW!{^;40pLD8Q<;yPk$c>|`ufiAq+s-((04G^>94Q^T|7rGI zsUN(%BVU^DG*G?q_VW`6h>VQ9zNS3LBus2axtrjHdb;aqx0wu%wm(nw#txvtWYUqr z{BzPuLu|(4dHdJb2@022RG6@2Y=dUot4>~*6XIqyb#-<%F+V?jef`JGPpp0|L>vB* zRtvt^xc9ME765DO{C`=?4IAZ7{1u%0uyej61U&9deY>d!%NG z8>?oT&c8zhw|(_+(y_B`d5qXrL`n-x%W2nXp0 zsT%posivym{CoOji;tHtY)r(>1(p*Gf<CLMsS@<7l4Hf<&?n97^orMeokp&X9w69r z4CCLLxiKnPX1E(QnJ; zJB@6?8(*BTk1_89#&8rB9pKUP=-yInPK|H)ahqBWe;e?Vt6FZ7UW;v}D#c@Gpw(Al z%JPXLo3qx}D+Ns6aT@B(cz;-R5sFqO2rJLt6Yiq?%)%G6VC z2?mEGhScExtB6R4WJ1M*>{`r~VCtp)YoOIx-F8$UJWIKOU-UO3*{y^~>EPQ5Jqhrx7#E}kP z!=wI&gW&p5{*=~M6XU0|AkPMfcPGuRZD1P5&8PpO*-w@uJw_64({kXCZg6ZUg_E;> zG(9=*PZKKtktfF7d~sD_`J9hE2*f1NY0zzVU8C~gA%tzmur_2$3sxpJ7$et&^5979 zW`>@hDZnZn2j3#CGbI1LvuMGAfDM+>wJfUfSzeQCs*<)J7OM^3($53+1eJMX&_@8| zWd7<{2ET6(a4aO;_ma+jt`a41Gn$##lhP39Q$YHr6;Se31Mm5*5+vCEyZtbasD zM@Q7jmhWJ&T8Gon*1#TbclqAGre|E_;VP$Hv+N!I3Uy$z5ox0)Y%GmcUC=dh_ExcO;wq${*(lVT)ctc*yBBK$X1!5Jyq@40~t*qyKbF!lAhF{4( zS^5YDYaM~r|KFSO(3ddN?SfD)N9(V_v-TdYQkquG-wt&Kw=_6_6pPD0Wh)AREOgy) zqQjx$<#fJ-uG?qTItz1Ed{IsmqO(qBqZH>iKxsl7%B3C{a z3=K&P&#a)fPv>CeF2{Rb3TZb&;NS&pV3^zYKxe|?y4i{QA-Z^9au zuppQ0h}k`}wx+D_R1B0GfI5%WtyJToG$V0>;O#z!Kk1cXKj8$Nmi(ZLm(oJpgO5Mx z_=q<=)O;>ZH8a=zziuna3XLkUwdCU_#=}lYDmpexZe)_BbH|OlIJogYddXsz7X*|S zypgYzmmA%o>T$(MX4)zH^w%=<=2*y@xcc3UC|sIxP_3AM=ef`i)0ogl#f?9RZ}Z)B zOHU_TTF?oH5c4Y25$*#$1B8P#Wwd2rSDVj`iaVLo|6|TUqg(z1<*YAb-HGpG4?i@ZcCKdDsft@*Iu7XlV zY|3r%pQj5C&8|#%CTS=dDQsVn*Oh79I_cGb)#J0x9aKq6-F30ei5r)+&5o8 z1SA__dDVL>@km(kAKA=5<1`(GVAEjTCl9(XsyTX;4$NoV@=rm-lxu z7Gp8hODfvAXs0HMz$O^+zy4%95fKD>fv;dZ*bpaV3R@(Ww&Gwd@8-1-)^$Tq>JpuL zd90ioML+r&!P`)i0wr{g`WzVBdVG&U{a`uJFB)5W$kiFK-=P|>;L(?Jx}fE)?FL;# zk+8=)p$e3iQuikd6+WwJQ`qf~LaKCJ-(5B?L|&QBehf6PVR0M?G`?Ntn|siIk@?__ zX5}O5LG{l_1WmJ``8p&VM%5zEWQJ{ViS=$p2SAH$8g;{eG_;>?5_9n314?|4`@Igv z4C%FCIP{=zJ*$J}a}j(qZ@Iy7(n-}`lY^}0{VE6KIgb@~4%~RI3-+bDUvSJ zGaVE#@ufO`h`2R>ohl-dJM!{b&D<1XHvcIpj=`Omw68W^hO?R-QlZ4 zwoG>+eU=@Gmp|``Y;?yvfQwENLkAB9ZRDT*s&CUDej*8fXLm8j4>{WnItnvJ#e>0- zjO8Ruy5fgHq6P@O0LLe3<>F{@%~F#Y{aDuej;*l0Y)0JZZ&$5e z$kD}@R^p}q9N~@syOMBg&;>xSU_{bnjY-7YYu3P4VJGnWrpwljQ{Zp$Q|4?xh2S7@pjl|&~|ota$l2VQYG?z zwf0-{VurMC${-6N#h}h7GCC%T#ImdoOI)J|C|JUr%{r*q6UoC#lH5{$(NcinNQDT{ecR35%spaQa(V_64TOjYs~` z1E$WZ9{tp6kkY9VXjdsdNZx*^R9{%v_SfrFot3-}% z)$iB$)m-$(^sTF}r*E7|ATwfqP4i`n6)a&N8Iw%nYAEtD1z7*-in79m z@D%bAF7-0Lg&pFP^LK)TNb8W?!or6p>-=I)^$oaZ-eNl&)AEzz3z)sW(Bnfu<(2ez z+g$-`JIeq+tP zm|FqtFNOWm8%M}tw2jOctAan&=mM6OehNhc$J64nDIkB2<-V6pzWMeEqDIpKo)gD8 zWaw*Wb%I?TN!J94ru|W+YuZ}Tc-D7%ib6^E`W_O|0V;xAu7kJqOt@-L z^B=ad-he}o!yMQy{AmQ3iW{(034Tc|#E_71_N!gs8r)8?7gdmXF}~`M4<0T(4#0*D zz=(s}R+`?Z+i9bLVkilT3f(iNkO=(7^kKn0A%py>lfV-Q~-Vt>D-sGFcuk!d|z_U%hH`DR|CMsHb_{P64V z_dLfR#z6B9#?^_Zr|@&*ZyyTC^jZy!EmRhjD5ikalc;MSu2hOzg0=>tf4>)Gmpik| z@`D<9OjVn@FF30++&dqZyS27f+dz8JCC;=rw!rW{dbOcx_m@+2URo51JPDwu?Dy;q zxO|*}5mG*%Gkkh~z6<&~ksI{&$8WfAAF)fA<_`30RYr^0pLA;*7g^RTH7vp!#>c@< zw=t8unqM*)X-Bixp`BnG1r>-Fe3-wUa;ZkIy;vB(K|G*+Cj&-{DS$nmL z`{PB7)_b4ugZi(UFW7oyYv5pZks|j4k3{1~ajpaeK-vh13&GO-y$6}RH&Q3TH=(Yl zjfD)fQwZ;D;P*EL@U3w*%kM^rBl@jv824@LSBkiF_51f6R(&-q+oJu>NcBim=T?v^ zmv@7UU>CCl{X#AD{>=-mmskPDRQ8o~21W9ZuGjHlz4_YVM#S{K_5+Vn4XB3rLb|Fl zQdGBSU+kLPMrqe*w@v2`_fQul#dY{aa=b|2$7!d?if;=tpG`IEP=tT2p#tsMLpEDk z<{{xV{x-}%?IM$j9${+%Lf!O5Z{ZG`dZ}M#D?+gA(IfFwHvq#QXm=sYV4C1(kKxGpkVzG9iN?LArA z3~1j<(`(fc_6=mCt-+QvI%jp}4{<0O${~U1j@u4Bk)1<=lSC?-8{K_{v<`X)z%M~F z)xqBBHe^I4&x2-Cjp9k?+(Oap{g_NiV4>8q_$ZR6(~Db3uP42)u2mH?z{SB{fC|Q* zO^oO(1xzB1v;J?qeX(;|oAg3yBYZIkga#AF&^&Z-96#Z%sjQ24F-8TgG4dW#1e-?BfhM1hpqe}`2cCt6F%UeM?eExaTx8(r%E*qbSsV6M$Fr)=d61Ju zH@s5P@AQ@1&~H>w4+E8;eWPG|AP(Prm>3axp%{&5g`r-}Xx`qRTLn+JaoF{Yg*Vn= z=JU7Q(M*gA@z6B9&Ody2hhWbEEbbs|Hf>4JpC8TDP($+v)|0#eUCZ=Z$x$qlAv{YP z1UPmOCsZolkQ;3L`;Ak`+8daJi^6+m_iS9<+a0lC<74;tl2!<|(tAs&3{?lgKkk6i M-xS2FMU8^~A8(6QN&o-= literal 0 HcmV?d00001 diff --git a/assets/images/igpreview-cdd2c3cb139e438493ab22e5fcbbd147.png b/assets/images/igpreview-cdd2c3cb139e438493ab22e5fcbbd147.png deleted file mode 100644 index 013cf85ceb91f861424d09634bc32f0f78a5020f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149134 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 l^m3l1)N<8c{n.d(t,{Zo:()=>d,kt:()=>k});var r=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=p(n),m=l,k=s["".concat(u,".").concat(m)]||s[m]||c[m]||a;return n?r.createElement(k,i(i({ref:t},d),{},{components:n})):r.createElement(k,i({ref:t},d))}));function k(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,i=new Array(a);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[s]="string"==typeof e?e:l,i[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var r=n(7462),l=(n(7294),n(3905));const a={title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1"},i=void 0,o={unversionedId:"dev-manual/plugins/howtodev",id:"dev-manual/plugins/howtodev",title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1",description:"\u5728\u672c\u7bc7\u6587\u6863\u4e2d\uff0c\u4f1a\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\uff0c\u5206\u4e3a\u5feb\u901f\u5f00\u59cb\u90e8\u5206\u548c\u8be6\u7ec6\u90e8\u5206\u3002",source:"@site/docs/dev-manual/plugins/howtodev.md",sourceDirName:"dev-manual/plugins",slug:"/dev-manual/plugins/howtodev",permalink:"/sqle-docs/docs/dev-manual/plugins/howtodev",draft:!1,editUrl:"https://github.com/actiontech/sqle-docs/tree/main/docs/dev-manual/plugins/howtodev.md",tags:[],version:"current",frontMatter:{title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1"},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528",permalink:"/sqle-docs/docs/dev-manual/plugins/howtouse"},next:{title:"SQLE\u5982\u4f55\u9274\u6743",permalink:"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken"}},u={},p=[{value:"\u5feb\u901f\u5f00\u59cb",id:"\u5feb\u901f\u5f00\u59cb",level:2},{value:"\u524d\u7f6e",id:"\u524d\u7f6e",level:3},{value:"1. \u8bed\u6cd5",id:"1-\u8bed\u6cd5",level:4},{value:"2. \u5305\u7ba1\u7406",id:"2-\u5305\u7ba1\u7406",level:4},{value:"3. Go\u8bed\u8a00\u9879\u76ee\u6784\u5efa",id:"3-go\u8bed\u8a00\u9879\u76ee\u6784\u5efa",level:4},{value:"\u7f16\u5199\u63d2\u4ef6",id:"\u7f16\u5199\u63d2\u4ef6",level:3},{value:"1. \u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd",id:"1-\u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd",level:4},{value:"2. \u9009\u62e9\u63d2\u4ef6",id:"2-\u9009\u62e9\u63d2\u4ef6",level:4},{value:"3. \u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570",id:"3-\u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570",level:4},{value:"4. \u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6",id:"4-\u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6",level:4},{value:"\u81ea\u5b9a\u4e49\u90e8\u5206",id:"\u81ea\u5b9a\u4e49\u90e8\u5206",level:3},{value:"1.\u81ea\u5b9a\u4e49SQL\u89e3\u6790\u5668",id:"1\u81ea\u5b9a\u4e49sql\u89e3\u6790\u5668",level:4},{value:"2.\u81ea\u5b9a\u4e49\u63d2\u4ef6",id:"2\u81ea\u5b9a\u4e49\u63d2\u4ef6",level:4},{value:"\u8be6\u7ec6",id:"\u8be6\u7ec6",level:2},{value:"SQLE\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe",id:"sqle\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe",level:3},{value:"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e",id:"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e",level:3},{value:"1.\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e",id:"1\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e",level:4},{value:"2.\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e",id:"2\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e",level:4},{value:"3.\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e",id:"3\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e",level:4},{value:"4.\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e",id:"4\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e",level:4}],d={toc:p};function s(e){let{components:t,...a}=e;return(0,l.kt)("wrapper",(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"\u5728\u672c\u7bc7\u6587\u6863\u4e2d\uff0c\u4f1a\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\uff0c\u5206\u4e3a\u5feb\u901f\u5f00\u59cb\u90e8\u5206\u548c\u8be6\u7ec6\u90e8\u5206\u3002"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u5982\u679c\u4f60\u662f\u4e00\u4e2a\u5bf9 Go \u8bed\u8a00\u4e0d\u592a\u4e86\u89e3\u7684\u4eba\uff0c\u53ef\u4ee5\u5148\u901a\u8fc7",(0,l.kt)("a",{parentName:"li",href:"#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B"},"\u5feb\u901f\u5f00\u59cb"),"\u90e8\u5206\u7684\u6587\u6863\uff0c\u5b9e\u73b0\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5f53\u4f60\u5bf9\u63d2\u4ef6\u5f00\u53d1\u6709\u4e86\u4e00\u5b9a\u7684\u4e86\u89e3\u4e4b\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7",(0,l.kt)("a",{parentName:"li",href:"#%E4%BA%8C%E8%AF%A6%E7%BB%86%E9%83%A8%E5%88%86"},"\u8be6\u7ec6"),"\u90e8\u5206\u7684\u6587\u6863\uff0c\u901a\u8fc7\u66f4\u591a\u81ea\u5b9a\u4e49\u7684\u65b9\u5f0f\uff0c\u5b9e\u73b0\u66f4\u52a0\u590d\u6742\u7684\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u3002")),(0,l.kt)("h2",{id:"\u5feb\u901f\u5f00\u59cb"},"\u5feb\u901f\u5f00\u59cb"),(0,l.kt)("h3",{id:"\u524d\u7f6e"},"\u524d\u7f6e"),(0,l.kt)("h4",{id:"1-\u8bed\u6cd5"},"1. \u8bed\u6cd5"),(0,l.kt)("p",null,"\u7531\u4e8e SQLE \u662f\u4e00\u4e2a\u7528 Go \u8bed\u8a00\u5f00\u53d1\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u5982\u679c\u4f60\u5bf9 Go \u8bed\u8a00\u5b8c\u5168\u4e0d\u4e86\u89e3\uff0c\u9700\u8981\u5148\u4e86\u89e3 Go \u8bed\u8a00\u7684\u57fa\u7840\u8bed\u6cd5\uff0c\u5efa\u8bae\u4f7f\u7528\u5b98\u65b9\u7684 Go \u8bed\u8a00\u5feb\u901f\u5f00\u59cb\u6587\u6863\uff08Go Tour \u6216\u8005 Go \u8bed\u8a00\u4e4b\u65c5\uff09\uff0c\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 Go \u8bed\u8a00\u7684\u57fa\u7840\u8bed\u6cd5\uff0c\u53ef\u4ee5\u76f4\u63a5\u8df3\u8fc7\u672c\u90e8\u5206\u3002"),(0,l.kt)("h4",{id:"2-\u5305\u7ba1\u7406"},"2. \u5305\u7ba1\u7406"),(0,l.kt)("p",null,"SQLE \u63d2\u4ef6\u662f\u4e00\u4e2a\u72ec\u7acb\u4e8e SQLE \u7684\u8fdb\u7a0b\uff0c\u6240\u4ee5\u7f16\u5199\u63d2\u4ef6\u7684\u65b9\u5f0f\u4e0e\u5f00\u53d1\u4e00\u4e2a\u65b0\u7684 Go \u8bed\u8a00\u9879\u76ee\u5e76\u6ca1\u6709\u4ec0\u4e48\u5dee\u5f02\u3002Go \u8bed\u8a00\u9879\u76ee\u4f7f\u7528 Go Modules \u6765\u7ba1\u7406\u5305\uff0c\u6240\u4ee5\u5728\u5f00\u59cb\u4e4b\u524d\u4f60\u9700\u8981\u5148\u4e86\u89e3\u4e00\u4e0b Go Modules \u7684\u4f7f\u7528\u65b9\u6cd5\u3002\u5efa\u8bae\u53c2\u8003\u8fd9\u7bc7\u6587\u6863\uff0c\u6587\u6863\u4e2d\u5927\u81f4\u4ecb\u7ecd\u4e86\u5982\u679c\u5f00\u59cb\u4e00\u4e2a\u65b0\u7684 Go \u8bed\u8a00\u9879\u76ee\uff0c\u5e76\u901a\u8fc7 Go Modules \u7684\u65b9\u5f0f\u6765\u8c03\u7528\u5176\u4ed6\u9879\u76ee\u7684\u5305\uff0c\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 Go Modules \u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u53ef\u4ee5\u76f4\u63a5\u8df3\u8fc7\u672c\u90e8\u5206\u3002"),(0,l.kt)("h4",{id:"3-go\u8bed\u8a00\u9879\u76ee\u6784\u5efa"},"3. Go\u8bed\u8a00\u9879\u76ee\u6784\u5efa"),(0,l.kt)("h3",{id:"\u7f16\u5199\u63d2\u4ef6"},"\u7f16\u5199\u63d2\u4ef6"),(0,l.kt)("p",null,"\u8fd9\u4e00\u5c0f\u8282\u4f1a\u5047\u8bbe\u4f60\u5df2\u7ecf\u521b\u5efa\u4e86\u4e00\u4e2a\u7531 Go Modules \u7ba1\u7406\u7684\u5ba1\u6838\u63d2\u4ef6\u9879\u76ee\u3002\u4e0b\u9762\u5f00\u59cb\u4ecb\u7ecd\u63d2\u4ef6\u6838\u5fc3\u4ee3\u7801\u7684\u5f00\u53d1\u3002"),(0,l.kt)("h4",{id:"1-\u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd"},"1. \u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd"),(0,l.kt)("p",null,"SQLE \u4e3a\u4e86\u65b9\u4fbf\u63d2\u4ef6\u7684\u5f00\u53d1\uff0c\u5728\u81ea\u8eab\u7684\u63d2\u4ef6\u5c42\u4e4b\u4e0a\u505a\u4e86\u4e00\u5c42\u5c01\u88c5\uff08Adaptor\uff09\uff0c\u63d2\u4ef6\u5f00\u53d1\u8005\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u5c01\u88c5\u5e93\u6765\u5feb\u901f\u7684\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u3002"),(0,l.kt)("p",null,"\u5728\u5f00\u53d1\u4e4b\u524d\uff0c\u4f60\u9700\u8981\u5148\u5f15\u5165 SQLE\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"go get github.com/actiontech/sqle@v2.2305.0-pre2 # \u6b64\u7248\u672c\u4e3a\u8be5\u6587\u6863\u7f16\u8f91\u65f6\u7684\u6700\u65b0\u7248\u672c\n")),(0,l.kt)("p",null,"\u9009\u62e9 SQLE \u4e2d\u4e24\u4e2a\u5e93\u63d2\u4ef6\u76f8\u5173\u7684\u5e93\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"github.com/actiontech/sqle/sqle/driver"),(0,l.kt)("li",{parentName:"ul"},"github.com/actiontech/sqle/sqle/pkg/driver")),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u7b2c\u4e00\u4e2a\u5e93\u5b9a\u4e49\u4e86\u63d2\u4ef6\u89c4\u5219\u7684\u7ed3\u6784\u4f53\uff0c\u5728\u4f60\u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u65f6\u9700\u8981\u7528\u5230\u8fd9\u4e2a\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u7b2c\u4e8c\u4e2a\u5e93\u4e2d\u5b9e\u73b0\u4e86\u4e00\u4e9b\u9ed8\u8ba4\u7684\u63d2\u4ef6\uff0c\u5728\u5f15\u5165\u8fd9\u4e2a\u5e93\u540e\uff0c\u53ea\u9700\u8981\u5b9e\u73b0\u76f8\u5e94\u7684\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570\u5373\u53ef\u3002\u5176\u4e2d\u4e09\u4e2a\u9ed8\u8ba4\u7684\u63d2\u4ef6\u4e3a\uff1a",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"PostgreSQL"),(0,l.kt)("li",{parentName:"ul"},"Oracle"),(0,l.kt)("li",{parentName:"ul"},"SQL Server"))),(0,l.kt)("li",{parentName:"ul"},"\u5982\u679c\u8fd9\u4e09\u4e2a\u9ed8\u8ba4\u7684\u63d2\u4ef6\u4e0d\u80fd\u6ee1\u8db3\u9700\u6c42\uff0c\u53ef\u4ee5\u81ea\u5df1\u5b9e\u73b0\u4e00\u4e2a\u63d2\u4ef6\uff0c\u53c2\u8003\u672c\u7bc7\u6587\u6863",(0,l.kt)("a",{parentName:"li",href:"#2%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8F%92%E4%BB%B6"},"\u81ea\u5b9a\u4e49\u63d2\u4ef6"),"\u5c0f\u8282\u3002"))),(0,l.kt)("h4",{id:"2-\u9009\u62e9\u63d2\u4ef6"},"2. \u9009\u62e9\u63d2\u4ef6"),(0,l.kt)("p",null,"\u4e0b\u9762\u5047\u8bbe\u4f60\u60f3\u8981\u5b9e\u73b0\u4e00\u4e2a SQL Server \u7684\u5ba1\u6838\u63d2\u4ef6\u3002\u5728 main \u51fd\u6570\u4e2d\u521b\u5efa\u4e00\u4e2a\u7a7a\u7684 SQL Server \u5ba1\u6838\u63d2\u4ef6\uff0c\u8fd9\u65f6\u4f60\u7684 main \u6587\u4ef6\u5e94\u8be5\u662f\u8fd9\u6837\u7684\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'package main\n\nimport (\n "github.com/actiontech/sqle/sqle/driver"\n adaptor "github.com/actiontech/sqle/sqle/pkg/driver"\n)\n\nfunc main() {\n plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})\n}\n')),(0,l.kt)("h4",{id:"3-\u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570"},"3. \u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570"),(0,l.kt)("p",null,"\u5047\u8bbe\u4f60\u9700\u8981\u5b9e\u73b0\u4e00\u4e2a\u89c4\u5219\uff0c\u8be5\u89c4\u5219\u68c0\u67e5 SQL \u662f\u5426\u4f7f\u7528\u4e86 select *\u3002\u5b9a\u4e49\u89c4\u5219\u5982\u4e0b\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'Rule{\n Name: "aviod_select_all_column", # \u89c4\u5219ID\uff0c\u8be5\u503c\u4f1a\u4e0e\u63d2\u4ef6\u7c7b\u578b\u4e00\u8d77\u4f5c\u4e3a\u8fd9\u6761\u89c4\u5219\u5728 SQLE \u7684\u552f\u4e00\u6807\u8bc6\n Desc: "\u907f\u514d\u67e5\u8be2\u6240\u6709\u7684\u5217", # \u89c4\u5219\u63cf\u8ff0\n Category: "DQL\u89c4\u8303", # \u89c4\u5219\u5206\u7c7b\uff0c\u7528\u4e8e\u5206\u7ec4\uff0c\u76f8\u540c\u7c7b\u578b\u7684\u89c4\u5219\u4f1a\u5728 SQLE \u7684\u9875\u9762\u4e0a\u5c55\u793a\u5728\u4e00\u8d77\n Level: driver.RuleLevelError, # \u89c4\u5219\u7b49\u7ea7\uff0c\u8868\u793a\u8be5\u89c4\u5219\u7684\u4e25\u91cd\u7a0b\u5ea6\u3002\u5728\u63d2\u4ef6\u6ce8\u518c\u9636\u6bb5\uff0c\u4f1a\u4f7f\u7528\u6240\u6709 RuleLevelError \u7ea7\u522b\u7684\u89c4\u5219\u521b\u5efa\u4e00\u4e2a\u9ed8\u8ba4\u7684\u89c4\u5219\u6a21\u677f\u3002\n}\n')),(0,l.kt)("p",null,"\u89c4\u5219\u7684\u5904\u7406\u51fd\u6570\u5982\u4e0b\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {\n if strings.Contains(sql, "select *") {\n return rule.Desc, nil\n }\n return "", nil\n}\n')),(0,l.kt)("p",null,"\u8fd9\u91cc\u4e3a\u4e86\u6f14\u793a\uff0c\u8fd9\u4e2a\u5904\u7406\u51fd\u6570\u53ea\u662f\u7b80\u5355\u7684\u4f7f\u7528\u4e86\u5b57\u7b26\u4e32\u5339\u914d\u7684\u65b9\u5f0f\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528\u6b63\u5219\u6216\u8005 AST \u8bed\u6cd5\u6811\u7684\u65b9\u5f0f\u6765\u68c0\u67e5 SQL \u8bed\u53e5\uff08AST \u7684\u65b9\u5f0f\u4f1a\u5728",(0,l.kt)("a",{parentName:"p",href:"#1%E8%87%AA%E5%AE%9A%E4%B9%89sql%E8%A7%A3%E6%9E%90%E5%99%A8"},"\u81ea\u5b9a\u4e49SQL\u89e3\u6790\u5668"),"\u4e00\u5c0f\u8282\u4e2d\u4ecb\u7ecd\uff09\u3002"),(0,l.kt)("p",null,"\u6700\u540e\u5c06\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570\u901a\u8fc7 ",(0,l.kt)("inlineCode",{parentName:"p"},"plugin.AddRule()"),"\u51fd\u6570\u6ce8\u518c\u5230 SQLE \u4e2d\uff0c\u6ce8\u518c\u5b8c\u6210\u540e\uff0c\u4f60\u7684 main \u6587\u4ef6\u5e94\u8be5\u662f\u8fd9\u6837\u7684\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'package main\n\nimport (\n "github.com/actiontech/sqle/sqle/driver"\n adaptor "github.com/actiontech/sqle/sqle/pkg/driver"\n)\n\nfunc main() {\n plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})\n aviodSelectAllColumn := &driver.Rule{\n Name: "aviod_select_all_column",\n Desc: "\u907f\u514d\u67e5\u8be2\u6240\u6709\u7684\u5217",\n Category: "DQL\u89c4\u8303",\n Level: driver.RuleLevelError,\n }\n aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {\n if strings.Contains(sql, "select *") {\n return rule.Desc, nil\n }\n return "", nil\n }\n plugin.AddRule(aviodSelectAllColumn, aviodSelectAllColumnHandler)\n\n ////////////////////////////////////////////\n // ... \u7f16\u5199\u66f4\u591a\u89c4\u5219\u5e76\u901a\u8fc7 AddRule \u6ce8\u518c\u5230 SQLE \u4e2d\n ////////////////////////////////////////////\n\n // \u6700\u540e\u5173\u952e\u4e00\u6b65\uff0c\u8c03\u7528 `plugin.Serve()` \u542f\u52a8\u63d2\u4ef6\uff1a\n plugin.Serve() \n}\n')),(0,l.kt)("h4",{id:"4-\u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6"},"4. \u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6"),(0,l.kt)("p",null,"\u548c\u901a\u5e38\u7684\u7a0b\u5e8f\u7f16\u5199\u6d41\u7a0b\u4e00\u6837\uff0c\u7f16\u5199\u5b8c\u63d2\u4ef6\u4ee3\u7801\u540e\uff0c\u9700\u8981\u5c06\u5176\u6784\u5efa\u6210\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u7136\u540e\u624d\u80fd\u5c06\u5176\u6ce8\u518c\u5230 SQLE \u4e2d\u3002\u6267\u884c ",(0,l.kt)("inlineCode",{parentName:"p"},"go build -o ${\u4e8c\u8fdb\u5236\u540d} main.go")," \u5c06\u63d2\u4ef6\u4ee3\u7801\u6784\u5efa\u6210\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002\u6700\u540e\u53c2\u8003\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528 \u6765\u4f7f\u7528\u4f60\u7684\u81ea\u5b9a\u4e49\u63d2\u4ef6\u3002"),(0,l.kt)("h3",{id:"\u81ea\u5b9a\u4e49\u90e8\u5206"},"\u81ea\u5b9a\u4e49\u90e8\u5206"),(0,l.kt)("h4",{id:"1\u81ea\u5b9a\u4e49sql\u89e3\u6790\u5668"},"1.\u81ea\u5b9a\u4e49SQL\u89e3\u6790\u5668"),(0,l.kt)("p",null,"\u524d\u9762\u4ecb\u7ecd\u7684\u5ba1\u6838\u89c4\u5219\u90fd\u662f\u901a\u8fc7\u5b57\u7b26\u4e32\u5339\u914d\u7684\u65b9\u5f0f\u6765\u89e3\u6790 SQL \u7684\u5185\u5bb9\u3002\u8fd9\u79cd\u65b9\u5f0f\u9002\u5408\u89c4\u5219\u8f83\u5c11\u4e14 SQL \u7b80\u5355\u7684\u60c5\u51b5\u4e0b\u4f7f\u7528\u3002"),(0,l.kt)("p",null,"\u5982\u679c\u9700\u8981\u5bf9 SQL \u8fdb\u884c\u66f4\u590d\u6742\u7684\u89e3\u6790\u5339\u914d\uff0c\u6070\u597d\u4f60\u9009\u62e9\u7684\u6570\u636e\u5e93\u63d2\u4ef6\u53c8\u6709\u76f8\u5e94\u7684 SQL \u89e3\u6790\u5668\uff0c\u8fd9\u65f6\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u4e49 SQL \u89e3\u6790\u5668\u7684\u65b9\u5f0f\u6765\u7f16\u5199\u63d2\u4ef6\u3002"),(0,l.kt)("p",null,"\u9996\u5148\u901a\u8fc7\u8c03\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"WithSQLParser()")," \u6ce8\u518c\u81ea\u5df1\u7684 SQL \u89e3\u6790\u5668\u3002\u5728\u6dfb\u52a0\u89c4\u5219\u65f6\u5219\u4f7f\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"plugin.AddRuleWithSQLParser()")," \u6dfb\u52a0\u5e26\u6709\u89e3\u6790\u5668\u7684\u5904\u7406\u51fd\u6570\u3002\u5728\u5904\u7406\u51fd\u6570\u4e2d\uff0c\u5c06 interface{} \u65ad\u8a00\u6210\u5177\u4f53\u7684 AST \u8bed\u6cd5\u6811\uff0c\u901a\u8fc7\u8bed\u6cd5\u6811\u7ea7\u522b\u7684\u64cd\u4f5c\u6765\u66f4\u52a0\u7cbe\u7ec6\u7684\u5904\u7406 SQL\u3002PostgreSQL \u63d0\u4f9b\u4e86\u57fa\u4e8e cgo \u8c03\u7528\u7684\u89e3\u6790\u5668\uff08\u89c1\uff1aPostgreSQL SQL \u89e3\u6790\u5668\uff09\uff0c\u4e0b\u9762\u7684\u4ee3\u7801\u5c55\u793a\u4e86\u5982\u4f55\u5199\u4e00\u4e2a SQL \u89e3\u6790\u5668\u7684\u63d2\u4ef6\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'func main() {\n plugin := adaptor.NewAdaptor(&adaptor.PostgresDialector{})\n\n // \u4f9d\u7136\u662f\u5b9a\u4e49\u89c4\u5219\n aviodSelectAllColumn := &driver.Rule{\n Name: "aviod_select_all_column",\n Desc: "\u907f\u514d\u67e5\u8be2\u6240\u6709\u7684\u5217",\n Category: "DQL\u89c4\u8303",\n Level: driver.RuleLevelError,\n }\n\n // \u4f9d\u7136\u662f\u5b9a\u4e49\u5904\u7406\u51fd\u6570\uff0c\u8fd9\u65f6\u5904\u7406\u51fd\u6570\u7684\u53c2\u6570\u662f interface{} \u7c7b\u578b\uff0c\u9700\u8981\u5c06\u5176\u65ad\u8a00\u6210 AST \u8bed\u6cd5\u6811\u3002\n aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, ast interface{}) (string, error) {\n node, ok := ast.(*parser.RawStmt)\n if !ok {\n return "", errors.New("ast is not *parser.RawStmt")\n }\n\n switch stmt := node.GetStmt().GetNode().(type) {\n case *parser.Node_SelectStmt:\n for _, target := range stmt.SelectStmt.GetTargetList() {\n column, ok := target.GetResTarget().GetVal().GetNode().(*parser.Node_ColumnRef)\n if !ok {\n continue\n }\n for _, filed := range column.ColumnRef.GetFields() {\n _, ok = filed.GetNode().(*parser.Node_AStar)\n if ok {\n return rule.Desc, nil\n }\n }\n }\n }\n return "", nil\n }\n\n // \u4f9d\u7136\u662f\u6ce8\u518c\u89c4\u5219\uff0c\u4e0e\u524d\u9762\u7684\u4f8b\u5b50\u4e0d\u540c\u7684\u662f\uff0c\u8fd9\u65f6\u4f7f\u7528\u7684\u662f `plugin.AddRuleWithSQLParser()` \u3002\n plugin.AddRuleWithSQLParser(aviodSelectAllColumn, aviodSelectAllColumnHandler)\n\n // \u4f9d\u7136\u662f\u542f\u52a8\u63d2\u4ef6\uff0c\u4e0e\u524d\u9762\u7684\u4f8b\u5b50\u4e0d\u540c\u7684\u662f\uff0c\u9700\u8981\u5c06 SQL \u89e3\u6790\u7684\u65b9\u6cd5\u6ce8\u518c\u5230\u63d2\u4ef6\u4e2d\u3002\n plugin.Serve(adaptor.WithSQLParser(func(sql string) (ast interface{}, err error) {\n // parser.Parse \u4f7f\u7528 PostgreSQL \u7684\u89e3\u6790\u5668\uff0c\u5c06 sql \u89e3\u6790\u6210 AST \u8bed\u6cd5\u6811\u3002\n result, err := parser.Parse(sql)\n if err != nil {\n return nil, errors.Wrap(err, "parse sql error")\n }\n if len(result.Stmts) != 1 {\n return nil, fmt.Errorf("unexpected statement count: %d", len(result.Stmts))\n }\n\n // \u5c06 SQL \u7684\u8bed\u6cd5\u6811\u8fd4\u56de\u3002\n return result.Stmts[0], nil\n }))\n}\n')),(0,l.kt)("h4",{id:"2\u81ea\u5b9a\u4e49\u63d2\u4ef6"},"2.\u81ea\u5b9a\u4e49\u63d2\u4ef6"),(0,l.kt)("p",null,"\u5982\u679c driver \u5305\u4e2d\u9ed8\u8ba4\u7684 PostgreSQL\u3001Oracle \u4e0e SQL Server \u63d2\u4ef6\u4e0d\u80fd\u6ee1\u8db3\u4f60\u7684\u9700\u6c42\u7684\u8bdd\uff0c\u4f60\u4e5f\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4e00\u4e2a\u6570\u636e\u5e93\u63d2\u4ef6\u3002\u65b9\u6cd5\u5c31\u662f\u5b9e\u73b0\u4e00\u4e2a\u63a5\u53e3\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Dialector interface {\n Dialect(dsn *driver.DSN) (driverName string, dsnDetail string)\n ShowDatabaseSQL() string\n String() string\n}\n")),(0,l.kt)("p",null,"\u5728\u5b9e\u73b0\u8fd9\u4e2a\u63a5\u53e3\u524d\uff0c\u4f60\u9700\u8981\u5148\u4e86\u89e3\u4e00\u4e0b Go \u8bed\u8a00\u539f\u751f Driver \u7684\u6982\u5ff5\uff08\u4ee5 MySQL Driver \u4e3a\u4f8b\uff09\u3002"),(0,l.kt)("p",null,"\u4e0b\u9762\u4ecb\u7ecd Dialector \u63a5\u53e3\u7684\u542b\u4e49\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Dialect"),"\uff1a\u5b9e\u73b0\u8be5\u65b9\u6cd5\uff0c\u901a\u8fc7 DSN \u63d0\u4f9b\u7684 Host Port User Password Database \u4fe1\u606f\u548c\u4f60\u9009\u62e9\u7684\u6570\u636e\u5e93 driver\uff0c\u6784\u9020\u51fa driverName \u4e0e dsnDetail\u3002driverName \u662f\u4f60\u5f15\u5165\u7684\u6570\u636e\u5e93 driver \u540d\u79f0\uff1bdsnDetail \u662f\u8fde\u63a5\u6570\u636e\u5e93\u9a71\u52a8\u7684\u5fc5\u8981\u4fe1\u606f\u3002\u8fd9\u4e24\u4e2a\u53c2\u6570\u6700\u7ec8\u4f1a\u901a\u8fc7 ",(0,l.kt)("inlineCode",{parentName:"li"},"sql.Open()")," \u6765\u521b\u5efa\u4e00\u4e2a\u6570\u636e\u5e93\u8fde\u63a5\u3002"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"ShowDatabaseSQL"),"\uff1a\u5b9e\u73b0\u8be5\u65b9\u6cd5\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4f60\u6570\u636e\u6e90\u4e2d\u9ed8\u8ba4\u5c55\u793a\u7684\u6570\u636e\u5e93\u5217\u8868\uff0c\u8be5\u6570\u636e\u5e93\u5217\u8868\u6700\u7ec8\u4f1a\u5c55\u793a\u5728\u5de5\u5355\u5ba1\u6838\u5217\u8868\u7684\u6570\u636e\u5e93\u4e0b\u62c9\u6846\u4e2d\uff0c\u5982\u4e0b\u56fe\uff1a\n",(0,l.kt)("img",{alt:"pluginworkflow",src:n(37).Z,width:"1391",height:"875"})),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"String"),"\uff1a\u5b9e\u73b0\u8be5\u65b9\u6cd5\uff0c\u8be5\u65b9\u6cd5\u7684\u8fd4\u56de\u503c\u4f1a\u4f5c\u4e3a\u4f60\u5b9e\u73b0\u7684\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u540d\u5c55\u793a\u5728 SQLE \u7684\u76f8\u5173\u4e0b\u62c9\u6846\u4e2d\uff0c\u5982\u4e0b\u56fe\uff1a\n",(0,l.kt)("img",{alt:"plugintype",src:n(5186).Z,width:"1470",height:"712"}))),(0,l.kt)("p",null,"\u5c06\u4f60\u7684\u5b9e\u73b0\u4f5c\u4e3a NewAdaptor \u7684\u53c2\u6570\u4f20\u5165\u5373\u53ef\uff0c\u540e\u7eed\u7684\u6b65\u9aa4\u4e0e\u524d\u9762\u89c4\u5219\u76f8\u5173\u7684\u4ecb\u7ecd\u4e00\u81f4\u3002"),(0,l.kt)("h2",{id:"\u8be6\u7ec6"},"\u8be6\u7ec6"),(0,l.kt)("h3",{id:"sqle\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe"},"SQLE\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe"),(0,l.kt)("p",null,(0,l.kt)("img",{alt:"sqleplugin",src:n(7286).Z,width:"647",height:"802"})),(0,l.kt)("h3",{id:"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e"},"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e"),(0,l.kt)("h4",{id:"1\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e"},"1.\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e"),(0,l.kt)("p",null,"\u8be5\u63a5\u53e3\u5b9a\u4e49\u4e86\u8be5\u63d2\u4ef6\u7684\u540d\u79f0\u548c\u5b9e\u73b0\u7684\u89c4\u5219\uff0cSQLE\u542f\u52a8\u7684\u65f6\u5019\u4f1a\u8c03\u7528\u8be5\u63a5\u53e3\u83b7\u53d6\u63d2\u4ef6\u540d\u79f0\u548c\u8be5\u63d2\u4ef6\u652f\u6301\u7684\u89c4\u5219\u5217\u8868\u3002"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Registerer interface {\n Name() string\n Rules() []*model.Rule\n}\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Name"),": \u63d2\u4ef6\u540d\uff0c\u6700\u7ec8\u4f1a\u5c55\u793a\u5728 SQLE \u9875\u9762\u7684\u6570\u636e\u6e90\u7c7b\u578b\u7684\u4e0b\u62c9\u6846\u4e2d\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Rules"),": \u63d2\u4ef6\u652f\u6301\u7684\u89c4\u5219\uff0c\u5728\u542f\u52a8 SQLE \u65f6\uff0c\u4f1a\u8c03\u7528\u63d2\u4ef6\u83b7\u53d6\u8fd9\u4e9b\u89c4\u5219\uff0c\u4f60\u5c06\u5728\u89c4\u5219\u6a21\u677f\u5185\u770b\u5230\u5b83\u4eec\u3002")),(0,l.kt)("h4",{id:"2\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e"},"2.\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e"),(0,l.kt)("p",null,"\u8be5\u63a5\u53e3\u5b9a\u4e49\u4e86SQLE\u8fdb\u884c\u5ba1\u6838\u65f6\uff0c\u7531\u63d2\u4ef6\u5b8c\u6210\u7684\u548c\u5177\u4f53\u6570\u636e\u5e93\u5e95\u5c42\u4ea4\u4e92\u7684\u64cd\u4f5c"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Driver interface {\n Close(ctx context.Context)\n Ping(ctx context.Context) error\n Exec(ctx context.Context, query string) (driver.Result, error)\n Tx(ctx context.Context, queries ...string) ([]driver.Result, error)\n Schemas(ctx context.Context) ([]string, error)\n Parse(ctx context.Context, sqlText string) ([]Node, error)\n Audit(ctx context.Context, sql string) (*AuditResult, error)\n GenRollbackSQL(ctx context.Context, sql string) (string, string, error)\n}\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Close"),": \u5173\u95ed\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528\u7684\u76f8\u5173\u8d44\u6e90\uff0c\u901a\u5e38\u662f\u5b8c\u6210\u4e00\u6b21\u5ba1\u6838\u540e\uff0c\u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5\u7b49\u8d44\u6e90;"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Ping"),": \u68c0\u6d4b\u6570\u636e\u5e93\u7684\u8fde\u63a5\u6027,\u901a\u5e38\u5728\u6dfb\u52a0\u6570\u636e\u6e90\u65f6\uff0c\u4e3a\u4e86\u68c0\u6d4b\u586b\u5199\u7684\u6570\u636e\u662f\u5426\u6b63\u786e\uff0c\u4f1a\u8c03\u7528\u6b64\u65b9\u6cd5;"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Exec"),": \u6267\u884c SQL \u4e0a\u7ebf\u65f6\u6267\u884c\u6b64\u65b9\u6cd5\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Tx"),": \u6267\u884c SQL \u4e0a\u7ebf\u65f6\u6267\u884c\u6b64\u65b9\u6cd5\uff0c\u4e00\u822c\u5f53SQL\u662fDML\u65f6\u4e14\u9700\u8981\u4e8b\u52a1\u6267\u884c\u65f6\u4f1a\u6279\u91cf\u6267\u884cSQL\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Schemas"),": \u8fd4\u56de\u5ba1\u6838\u63d2\u4ef6\u5c55\u793a\u7ed9\u7528\u6237\u7684 Schema \u5217\u8868\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Parse"),": \u89e3\u6790\u5ba1\u6838\u63d2\u4ef6\u652f\u6301\u7684 SQL \u683c\u5f0f\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Audit"),": \u6839\u636e\u6307\u5b9a\u7684SQL\u8bed\u53e5\u751f\u6210\u5ba1\u6838\u5efa\u8bae\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"GenRollbackSQL"),": \u751f\u6210 SQL \u7684\u56de\u6eda\u8bed\u53e5\u3002")),(0,l.kt)("h4",{id:"3\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e"},"3.\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Config struct {\n DSN *DSN\n Rules []*Rule\n}\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"DSN"),": \u6570\u636e\u6e90\u4fe1\u606f, \u5f85\u5ba1\u6838\u7684\u6570\u636e\u5e93\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Rules"),": \u672c\u6b21\u5ba1\u6838\u5236\u5b9a\u7684\u89c4\u5219\u5217\u8868\u3002")),(0,l.kt)("h4",{id:"4\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e"},"4.\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e"),(0,l.kt)("p",null,"\u63d2\u4ef6\u7684\u4e3b\u8fdb\u7a0b\u5165\u53e3\uff0c\u7531\u63d2\u4ef6\u7684 main \u51fd\u6570\u8c03\u7528\u5373\u53ef\u5b9e\u73b0\u63d2\u4ef6"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"func ServePlugin(r Registerer, newDriver func(cfg *Config) Driver)\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"r"),": \u4f20\u5165 Registerer \u7684\u63a5\u53e3\u5b9e\u73b0, \u7531\u63d2\u4ef6\u4fa7\u5b9e\u73b0\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"newDriver"),": \u4f20\u5165 Driver \u7684\u521d\u59cb\u5316\u51fd\u6570\uff0c\u8be5\u51fd\u6570\u7684\u5165\u53c2\u662f Config \u662f\u7531 SQLE \u5411\u63d2\u4ef6\u4f20\u9012\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u51fd\u6570\u7684\u51fa\u53c2\u662f Driver \u7684\u63a5\u53e3\u5b9e\u73b0\uff0c\u7531\u63d2\u4ef6\u4fa7\u5b9e\u73b0\u3002")))}s.isMDXComponent=!0},5186:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/plugintype-c0d954f432393faa0e667c5d76b2dd59.png"},37:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pluginworkflow-b1cdf157e0b1e154f8d93a57e64dd73d.png"},7286:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/sqleplugins-0de7de396be00110adb6667da80d4a2c.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[1003],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>k});var r=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),s=p(n),m=l,k=s["".concat(u,".").concat(m)]||s[m]||c[m]||a;return n?r.createElement(k,i(i({ref:t},d),{},{components:n})):r.createElement(k,i({ref:t},d))}));function k(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,i=new Array(a);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[s]="string"==typeof e?e:l,i[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var r=n(7462),l=(n(7294),n(3905));const a={title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1"},i=void 0,o={unversionedId:"dev-manual/plugins/howtodev",id:"dev-manual/plugins/howtodev",title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1",description:"\u5728\u672c\u7bc7\u6587\u6863\u4e2d\uff0c\u4f1a\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\uff0c\u5206\u4e3a\u5feb\u901f\u5f00\u59cb\u90e8\u5206\u548c\u8be6\u7ec6\u90e8\u5206\u3002",source:"@site/docs/dev-manual/plugins/howtodev.md",sourceDirName:"dev-manual/plugins",slug:"/dev-manual/plugins/howtodev",permalink:"/sqle-docs/docs/dev-manual/plugins/howtodev",draft:!1,editUrl:"https://github.com/actiontech/sqle-docs/tree/main/docs/dev-manual/plugins/howtodev.md",tags:[],version:"current",frontMatter:{title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1"},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528",permalink:"/sqle-docs/docs/dev-manual/plugins/howtouse"},next:{title:"\u5982\u4f55\u5bf9\u63a5SQLE",permalink:"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken"}},u={},p=[{value:"\u5feb\u901f\u5f00\u59cb",id:"\u5feb\u901f\u5f00\u59cb",level:2},{value:"\u524d\u7f6e",id:"\u524d\u7f6e",level:3},{value:"1. \u8bed\u6cd5",id:"1-\u8bed\u6cd5",level:4},{value:"2. \u5305\u7ba1\u7406",id:"2-\u5305\u7ba1\u7406",level:4},{value:"3. Go\u8bed\u8a00\u9879\u76ee\u6784\u5efa",id:"3-go\u8bed\u8a00\u9879\u76ee\u6784\u5efa",level:4},{value:"\u7f16\u5199\u63d2\u4ef6",id:"\u7f16\u5199\u63d2\u4ef6",level:3},{value:"1. \u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd",id:"1-\u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd",level:4},{value:"2. \u9009\u62e9\u63d2\u4ef6",id:"2-\u9009\u62e9\u63d2\u4ef6",level:4},{value:"3. \u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570",id:"3-\u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570",level:4},{value:"4. \u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6",id:"4-\u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6",level:4},{value:"\u81ea\u5b9a\u4e49\u90e8\u5206",id:"\u81ea\u5b9a\u4e49\u90e8\u5206",level:3},{value:"1.\u81ea\u5b9a\u4e49SQL\u89e3\u6790\u5668",id:"1\u81ea\u5b9a\u4e49sql\u89e3\u6790\u5668",level:4},{value:"2.\u81ea\u5b9a\u4e49\u63d2\u4ef6",id:"2\u81ea\u5b9a\u4e49\u63d2\u4ef6",level:4},{value:"\u8be6\u7ec6",id:"\u8be6\u7ec6",level:2},{value:"SQLE\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe",id:"sqle\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe",level:3},{value:"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e",id:"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e",level:3},{value:"1.\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e",id:"1\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e",level:4},{value:"2.\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e",id:"2\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e",level:4},{value:"3.\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e",id:"3\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e",level:4},{value:"4.\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e",id:"4\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e",level:4}],d={toc:p};function s(e){let{components:t,...a}=e;return(0,l.kt)("wrapper",(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"\u5728\u672c\u7bc7\u6587\u6863\u4e2d\uff0c\u4f1a\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\uff0c\u5206\u4e3a\u5feb\u901f\u5f00\u59cb\u90e8\u5206\u548c\u8be6\u7ec6\u90e8\u5206\u3002"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u5982\u679c\u4f60\u662f\u4e00\u4e2a\u5bf9 Go \u8bed\u8a00\u4e0d\u592a\u4e86\u89e3\u7684\u4eba\uff0c\u53ef\u4ee5\u5148\u901a\u8fc7",(0,l.kt)("a",{parentName:"li",href:"#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B"},"\u5feb\u901f\u5f00\u59cb"),"\u90e8\u5206\u7684\u6587\u6863\uff0c\u5b9e\u73b0\u4e00\u4e2a\u7b80\u5355\u7684\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5f53\u4f60\u5bf9\u63d2\u4ef6\u5f00\u53d1\u6709\u4e86\u4e00\u5b9a\u7684\u4e86\u89e3\u4e4b\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7",(0,l.kt)("a",{parentName:"li",href:"#%E4%BA%8C%E8%AF%A6%E7%BB%86%E9%83%A8%E5%88%86"},"\u8be6\u7ec6"),"\u90e8\u5206\u7684\u6587\u6863\uff0c\u901a\u8fc7\u66f4\u591a\u81ea\u5b9a\u4e49\u7684\u65b9\u5f0f\uff0c\u5b9e\u73b0\u66f4\u52a0\u590d\u6742\u7684\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u3002")),(0,l.kt)("h2",{id:"\u5feb\u901f\u5f00\u59cb"},"\u5feb\u901f\u5f00\u59cb"),(0,l.kt)("h3",{id:"\u524d\u7f6e"},"\u524d\u7f6e"),(0,l.kt)("h4",{id:"1-\u8bed\u6cd5"},"1. \u8bed\u6cd5"),(0,l.kt)("p",null,"\u7531\u4e8e SQLE \u662f\u4e00\u4e2a\u7528 Go \u8bed\u8a00\u5f00\u53d1\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u5982\u679c\u4f60\u5bf9 Go \u8bed\u8a00\u5b8c\u5168\u4e0d\u4e86\u89e3\uff0c\u9700\u8981\u5148\u4e86\u89e3 Go \u8bed\u8a00\u7684\u57fa\u7840\u8bed\u6cd5\uff0c\u5efa\u8bae\u4f7f\u7528\u5b98\u65b9\u7684 Go \u8bed\u8a00\u5feb\u901f\u5f00\u59cb\u6587\u6863\uff08Go Tour \u6216\u8005 Go \u8bed\u8a00\u4e4b\u65c5\uff09\uff0c\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 Go \u8bed\u8a00\u7684\u57fa\u7840\u8bed\u6cd5\uff0c\u53ef\u4ee5\u76f4\u63a5\u8df3\u8fc7\u672c\u90e8\u5206\u3002"),(0,l.kt)("h4",{id:"2-\u5305\u7ba1\u7406"},"2. \u5305\u7ba1\u7406"),(0,l.kt)("p",null,"SQLE \u63d2\u4ef6\u662f\u4e00\u4e2a\u72ec\u7acb\u4e8e SQLE \u7684\u8fdb\u7a0b\uff0c\u6240\u4ee5\u7f16\u5199\u63d2\u4ef6\u7684\u65b9\u5f0f\u4e0e\u5f00\u53d1\u4e00\u4e2a\u65b0\u7684 Go \u8bed\u8a00\u9879\u76ee\u5e76\u6ca1\u6709\u4ec0\u4e48\u5dee\u5f02\u3002Go \u8bed\u8a00\u9879\u76ee\u4f7f\u7528 Go Modules \u6765\u7ba1\u7406\u5305\uff0c\u6240\u4ee5\u5728\u5f00\u59cb\u4e4b\u524d\u4f60\u9700\u8981\u5148\u4e86\u89e3\u4e00\u4e0b Go Modules \u7684\u4f7f\u7528\u65b9\u6cd5\u3002\u5efa\u8bae\u53c2\u8003\u8fd9\u7bc7\u6587\u6863\uff0c\u6587\u6863\u4e2d\u5927\u81f4\u4ecb\u7ecd\u4e86\u5982\u679c\u5f00\u59cb\u4e00\u4e2a\u65b0\u7684 Go \u8bed\u8a00\u9879\u76ee\uff0c\u5e76\u901a\u8fc7 Go Modules \u7684\u65b9\u5f0f\u6765\u8c03\u7528\u5176\u4ed6\u9879\u76ee\u7684\u5305\uff0c\u5982\u679c\u4f60\u5df2\u7ecf\u4e86\u89e3\u4e86 Go Modules \u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u53ef\u4ee5\u76f4\u63a5\u8df3\u8fc7\u672c\u90e8\u5206\u3002"),(0,l.kt)("h4",{id:"3-go\u8bed\u8a00\u9879\u76ee\u6784\u5efa"},"3. Go\u8bed\u8a00\u9879\u76ee\u6784\u5efa"),(0,l.kt)("h3",{id:"\u7f16\u5199\u63d2\u4ef6"},"\u7f16\u5199\u63d2\u4ef6"),(0,l.kt)("p",null,"\u8fd9\u4e00\u5c0f\u8282\u4f1a\u5047\u8bbe\u4f60\u5df2\u7ecf\u521b\u5efa\u4e86\u4e00\u4e2a\u7531 Go Modules \u7ba1\u7406\u7684\u5ba1\u6838\u63d2\u4ef6\u9879\u76ee\u3002\u4e0b\u9762\u5f00\u59cb\u4ecb\u7ecd\u63d2\u4ef6\u6838\u5fc3\u4ee3\u7801\u7684\u5f00\u53d1\u3002"),(0,l.kt)("h4",{id:"1-\u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd"},"1. \u6570\u636e\u5e93\u63d2\u4ef6\u4ecb\u7ecd"),(0,l.kt)("p",null,"SQLE \u4e3a\u4e86\u65b9\u4fbf\u63d2\u4ef6\u7684\u5f00\u53d1\uff0c\u5728\u81ea\u8eab\u7684\u63d2\u4ef6\u5c42\u4e4b\u4e0a\u505a\u4e86\u4e00\u5c42\u5c01\u88c5\uff08Adaptor\uff09\uff0c\u63d2\u4ef6\u5f00\u53d1\u8005\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u5c01\u88c5\u5e93\u6765\u5feb\u901f\u7684\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u3002"),(0,l.kt)("p",null,"\u5728\u5f00\u53d1\u4e4b\u524d\uff0c\u4f60\u9700\u8981\u5148\u5f15\u5165 SQLE\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"go get github.com/actiontech/sqle@v2.2305.0-pre2 # \u6b64\u7248\u672c\u4e3a\u8be5\u6587\u6863\u7f16\u8f91\u65f6\u7684\u6700\u65b0\u7248\u672c\n")),(0,l.kt)("p",null,"\u9009\u62e9 SQLE \u4e2d\u4e24\u4e2a\u5e93\u63d2\u4ef6\u76f8\u5173\u7684\u5e93\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"github.com/actiontech/sqle/sqle/driver"),(0,l.kt)("li",{parentName:"ul"},"github.com/actiontech/sqle/sqle/pkg/driver")),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u7b2c\u4e00\u4e2a\u5e93\u5b9a\u4e49\u4e86\u63d2\u4ef6\u89c4\u5219\u7684\u7ed3\u6784\u4f53\uff0c\u5728\u4f60\u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u65f6\u9700\u8981\u7528\u5230\u8fd9\u4e2a\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u7b2c\u4e8c\u4e2a\u5e93\u4e2d\u5b9e\u73b0\u4e86\u4e00\u4e9b\u9ed8\u8ba4\u7684\u63d2\u4ef6\uff0c\u5728\u5f15\u5165\u8fd9\u4e2a\u5e93\u540e\uff0c\u53ea\u9700\u8981\u5b9e\u73b0\u76f8\u5e94\u7684\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570\u5373\u53ef\u3002\u5176\u4e2d\u4e09\u4e2a\u9ed8\u8ba4\u7684\u63d2\u4ef6\u4e3a\uff1a",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"PostgreSQL"),(0,l.kt)("li",{parentName:"ul"},"Oracle"),(0,l.kt)("li",{parentName:"ul"},"SQL Server"))),(0,l.kt)("li",{parentName:"ul"},"\u5982\u679c\u8fd9\u4e09\u4e2a\u9ed8\u8ba4\u7684\u63d2\u4ef6\u4e0d\u80fd\u6ee1\u8db3\u9700\u6c42\uff0c\u53ef\u4ee5\u81ea\u5df1\u5b9e\u73b0\u4e00\u4e2a\u63d2\u4ef6\uff0c\u53c2\u8003\u672c\u7bc7\u6587\u6863",(0,l.kt)("a",{parentName:"li",href:"#2%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8F%92%E4%BB%B6"},"\u81ea\u5b9a\u4e49\u63d2\u4ef6"),"\u5c0f\u8282\u3002"))),(0,l.kt)("h4",{id:"2-\u9009\u62e9\u63d2\u4ef6"},"2. \u9009\u62e9\u63d2\u4ef6"),(0,l.kt)("p",null,"\u4e0b\u9762\u5047\u8bbe\u4f60\u60f3\u8981\u5b9e\u73b0\u4e00\u4e2a SQL Server \u7684\u5ba1\u6838\u63d2\u4ef6\u3002\u5728 main \u51fd\u6570\u4e2d\u521b\u5efa\u4e00\u4e2a\u7a7a\u7684 SQL Server \u5ba1\u6838\u63d2\u4ef6\uff0c\u8fd9\u65f6\u4f60\u7684 main \u6587\u4ef6\u5e94\u8be5\u662f\u8fd9\u6837\u7684\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'package main\n\nimport (\n "github.com/actiontech/sqle/sqle/driver"\n adaptor "github.com/actiontech/sqle/sqle/pkg/driver"\n)\n\nfunc main() {\n plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})\n}\n')),(0,l.kt)("h4",{id:"3-\u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570"},"3. \u7f16\u5199\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570"),(0,l.kt)("p",null,"\u5047\u8bbe\u4f60\u9700\u8981\u5b9e\u73b0\u4e00\u4e2a\u89c4\u5219\uff0c\u8be5\u89c4\u5219\u68c0\u67e5 SQL \u662f\u5426\u4f7f\u7528\u4e86 select *\u3002\u5b9a\u4e49\u89c4\u5219\u5982\u4e0b\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'Rule{\n Name: "aviod_select_all_column", # \u89c4\u5219ID\uff0c\u8be5\u503c\u4f1a\u4e0e\u63d2\u4ef6\u7c7b\u578b\u4e00\u8d77\u4f5c\u4e3a\u8fd9\u6761\u89c4\u5219\u5728 SQLE \u7684\u552f\u4e00\u6807\u8bc6\n Desc: "\u907f\u514d\u67e5\u8be2\u6240\u6709\u7684\u5217", # \u89c4\u5219\u63cf\u8ff0\n Category: "DQL\u89c4\u8303", # \u89c4\u5219\u5206\u7c7b\uff0c\u7528\u4e8e\u5206\u7ec4\uff0c\u76f8\u540c\u7c7b\u578b\u7684\u89c4\u5219\u4f1a\u5728 SQLE \u7684\u9875\u9762\u4e0a\u5c55\u793a\u5728\u4e00\u8d77\n Level: driver.RuleLevelError, # \u89c4\u5219\u7b49\u7ea7\uff0c\u8868\u793a\u8be5\u89c4\u5219\u7684\u4e25\u91cd\u7a0b\u5ea6\u3002\u5728\u63d2\u4ef6\u6ce8\u518c\u9636\u6bb5\uff0c\u4f1a\u4f7f\u7528\u6240\u6709 RuleLevelError \u7ea7\u522b\u7684\u89c4\u5219\u521b\u5efa\u4e00\u4e2a\u9ed8\u8ba4\u7684\u89c4\u5219\u6a21\u677f\u3002\n}\n')),(0,l.kt)("p",null,"\u89c4\u5219\u7684\u5904\u7406\u51fd\u6570\u5982\u4e0b\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {\n if strings.Contains(sql, "select *") {\n return rule.Desc, nil\n }\n return "", nil\n}\n')),(0,l.kt)("p",null,"\u8fd9\u91cc\u4e3a\u4e86\u6f14\u793a\uff0c\u8fd9\u4e2a\u5904\u7406\u51fd\u6570\u53ea\u662f\u7b80\u5355\u7684\u4f7f\u7528\u4e86\u5b57\u7b26\u4e32\u5339\u914d\u7684\u65b9\u5f0f\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528\u6b63\u5219\u6216\u8005 AST \u8bed\u6cd5\u6811\u7684\u65b9\u5f0f\u6765\u68c0\u67e5 SQL \u8bed\u53e5\uff08AST \u7684\u65b9\u5f0f\u4f1a\u5728",(0,l.kt)("a",{parentName:"p",href:"#1%E8%87%AA%E5%AE%9A%E4%B9%89sql%E8%A7%A3%E6%9E%90%E5%99%A8"},"\u81ea\u5b9a\u4e49SQL\u89e3\u6790\u5668"),"\u4e00\u5c0f\u8282\u4e2d\u4ecb\u7ecd\uff09\u3002"),(0,l.kt)("p",null,"\u6700\u540e\u5c06\u63d2\u4ef6\u89c4\u5219\u4e0e\u89c4\u5219\u5904\u7406\u51fd\u6570\u901a\u8fc7 ",(0,l.kt)("inlineCode",{parentName:"p"},"plugin.AddRule()"),"\u51fd\u6570\u6ce8\u518c\u5230 SQLE \u4e2d\uff0c\u6ce8\u518c\u5b8c\u6210\u540e\uff0c\u4f60\u7684 main \u6587\u4ef6\u5e94\u8be5\u662f\u8fd9\u6837\u7684\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'package main\n\nimport (\n "github.com/actiontech/sqle/sqle/driver"\n adaptor "github.com/actiontech/sqle/sqle/pkg/driver"\n)\n\nfunc main() {\n plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})\n aviodSelectAllColumn := &driver.Rule{\n Name: "aviod_select_all_column",\n Desc: "\u907f\u514d\u67e5\u8be2\u6240\u6709\u7684\u5217",\n Category: "DQL\u89c4\u8303",\n Level: driver.RuleLevelError,\n }\n aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {\n if strings.Contains(sql, "select *") {\n return rule.Desc, nil\n }\n return "", nil\n }\n plugin.AddRule(aviodSelectAllColumn, aviodSelectAllColumnHandler)\n\n ////////////////////////////////////////////\n // ... \u7f16\u5199\u66f4\u591a\u89c4\u5219\u5e76\u901a\u8fc7 AddRule \u6ce8\u518c\u5230 SQLE \u4e2d\n ////////////////////////////////////////////\n\n // \u6700\u540e\u5173\u952e\u4e00\u6b65\uff0c\u8c03\u7528 `plugin.Serve()` \u542f\u52a8\u63d2\u4ef6\uff1a\n plugin.Serve() \n}\n')),(0,l.kt)("h4",{id:"4-\u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6"},"4. \u6784\u5efa\u5e76\u4f7f\u7528\u63d2\u4ef6"),(0,l.kt)("p",null,"\u548c\u901a\u5e38\u7684\u7a0b\u5e8f\u7f16\u5199\u6d41\u7a0b\u4e00\u6837\uff0c\u7f16\u5199\u5b8c\u63d2\u4ef6\u4ee3\u7801\u540e\uff0c\u9700\u8981\u5c06\u5176\u6784\u5efa\u6210\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u7136\u540e\u624d\u80fd\u5c06\u5176\u6ce8\u518c\u5230 SQLE \u4e2d\u3002\u6267\u884c ",(0,l.kt)("inlineCode",{parentName:"p"},"go build -o ${\u4e8c\u8fdb\u5236\u540d} main.go")," \u5c06\u63d2\u4ef6\u4ee3\u7801\u6784\u5efa\u6210\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002\u6700\u540e\u53c2\u8003\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528 \u6765\u4f7f\u7528\u4f60\u7684\u81ea\u5b9a\u4e49\u63d2\u4ef6\u3002"),(0,l.kt)("h3",{id:"\u81ea\u5b9a\u4e49\u90e8\u5206"},"\u81ea\u5b9a\u4e49\u90e8\u5206"),(0,l.kt)("h4",{id:"1\u81ea\u5b9a\u4e49sql\u89e3\u6790\u5668"},"1.\u81ea\u5b9a\u4e49SQL\u89e3\u6790\u5668"),(0,l.kt)("p",null,"\u524d\u9762\u4ecb\u7ecd\u7684\u5ba1\u6838\u89c4\u5219\u90fd\u662f\u901a\u8fc7\u5b57\u7b26\u4e32\u5339\u914d\u7684\u65b9\u5f0f\u6765\u89e3\u6790 SQL \u7684\u5185\u5bb9\u3002\u8fd9\u79cd\u65b9\u5f0f\u9002\u5408\u89c4\u5219\u8f83\u5c11\u4e14 SQL \u7b80\u5355\u7684\u60c5\u51b5\u4e0b\u4f7f\u7528\u3002"),(0,l.kt)("p",null,"\u5982\u679c\u9700\u8981\u5bf9 SQL \u8fdb\u884c\u66f4\u590d\u6742\u7684\u89e3\u6790\u5339\u914d\uff0c\u6070\u597d\u4f60\u9009\u62e9\u7684\u6570\u636e\u5e93\u63d2\u4ef6\u53c8\u6709\u76f8\u5e94\u7684 SQL \u89e3\u6790\u5668\uff0c\u8fd9\u65f6\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u4e49 SQL \u89e3\u6790\u5668\u7684\u65b9\u5f0f\u6765\u7f16\u5199\u63d2\u4ef6\u3002"),(0,l.kt)("p",null,"\u9996\u5148\u901a\u8fc7\u8c03\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"WithSQLParser()")," \u6ce8\u518c\u81ea\u5df1\u7684 SQL \u89e3\u6790\u5668\u3002\u5728\u6dfb\u52a0\u89c4\u5219\u65f6\u5219\u4f7f\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"plugin.AddRuleWithSQLParser()")," \u6dfb\u52a0\u5e26\u6709\u89e3\u6790\u5668\u7684\u5904\u7406\u51fd\u6570\u3002\u5728\u5904\u7406\u51fd\u6570\u4e2d\uff0c\u5c06 interface{} \u65ad\u8a00\u6210\u5177\u4f53\u7684 AST \u8bed\u6cd5\u6811\uff0c\u901a\u8fc7\u8bed\u6cd5\u6811\u7ea7\u522b\u7684\u64cd\u4f5c\u6765\u66f4\u52a0\u7cbe\u7ec6\u7684\u5904\u7406 SQL\u3002PostgreSQL \u63d0\u4f9b\u4e86\u57fa\u4e8e cgo \u8c03\u7528\u7684\u89e3\u6790\u5668\uff08\u89c1\uff1aPostgreSQL SQL \u89e3\u6790\u5668\uff09\uff0c\u4e0b\u9762\u7684\u4ee3\u7801\u5c55\u793a\u4e86\u5982\u4f55\u5199\u4e00\u4e2a SQL \u89e3\u6790\u5668\u7684\u63d2\u4ef6\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},'func main() {\n plugin := adaptor.NewAdaptor(&adaptor.PostgresDialector{})\n\n // \u4f9d\u7136\u662f\u5b9a\u4e49\u89c4\u5219\n aviodSelectAllColumn := &driver.Rule{\n Name: "aviod_select_all_column",\n Desc: "\u907f\u514d\u67e5\u8be2\u6240\u6709\u7684\u5217",\n Category: "DQL\u89c4\u8303",\n Level: driver.RuleLevelError,\n }\n\n // \u4f9d\u7136\u662f\u5b9a\u4e49\u5904\u7406\u51fd\u6570\uff0c\u8fd9\u65f6\u5904\u7406\u51fd\u6570\u7684\u53c2\u6570\u662f interface{} \u7c7b\u578b\uff0c\u9700\u8981\u5c06\u5176\u65ad\u8a00\u6210 AST \u8bed\u6cd5\u6811\u3002\n aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, ast interface{}) (string, error) {\n node, ok := ast.(*parser.RawStmt)\n if !ok {\n return "", errors.New("ast is not *parser.RawStmt")\n }\n\n switch stmt := node.GetStmt().GetNode().(type) {\n case *parser.Node_SelectStmt:\n for _, target := range stmt.SelectStmt.GetTargetList() {\n column, ok := target.GetResTarget().GetVal().GetNode().(*parser.Node_ColumnRef)\n if !ok {\n continue\n }\n for _, filed := range column.ColumnRef.GetFields() {\n _, ok = filed.GetNode().(*parser.Node_AStar)\n if ok {\n return rule.Desc, nil\n }\n }\n }\n }\n return "", nil\n }\n\n // \u4f9d\u7136\u662f\u6ce8\u518c\u89c4\u5219\uff0c\u4e0e\u524d\u9762\u7684\u4f8b\u5b50\u4e0d\u540c\u7684\u662f\uff0c\u8fd9\u65f6\u4f7f\u7528\u7684\u662f `plugin.AddRuleWithSQLParser()` \u3002\n plugin.AddRuleWithSQLParser(aviodSelectAllColumn, aviodSelectAllColumnHandler)\n\n // \u4f9d\u7136\u662f\u542f\u52a8\u63d2\u4ef6\uff0c\u4e0e\u524d\u9762\u7684\u4f8b\u5b50\u4e0d\u540c\u7684\u662f\uff0c\u9700\u8981\u5c06 SQL \u89e3\u6790\u7684\u65b9\u6cd5\u6ce8\u518c\u5230\u63d2\u4ef6\u4e2d\u3002\n plugin.Serve(adaptor.WithSQLParser(func(sql string) (ast interface{}, err error) {\n // parser.Parse \u4f7f\u7528 PostgreSQL \u7684\u89e3\u6790\u5668\uff0c\u5c06 sql \u89e3\u6790\u6210 AST \u8bed\u6cd5\u6811\u3002\n result, err := parser.Parse(sql)\n if err != nil {\n return nil, errors.Wrap(err, "parse sql error")\n }\n if len(result.Stmts) != 1 {\n return nil, fmt.Errorf("unexpected statement count: %d", len(result.Stmts))\n }\n\n // \u5c06 SQL \u7684\u8bed\u6cd5\u6811\u8fd4\u56de\u3002\n return result.Stmts[0], nil\n }))\n}\n')),(0,l.kt)("h4",{id:"2\u81ea\u5b9a\u4e49\u63d2\u4ef6"},"2.\u81ea\u5b9a\u4e49\u63d2\u4ef6"),(0,l.kt)("p",null,"\u5982\u679c driver \u5305\u4e2d\u9ed8\u8ba4\u7684 PostgreSQL\u3001Oracle \u4e0e SQL Server \u63d2\u4ef6\u4e0d\u80fd\u6ee1\u8db3\u4f60\u7684\u9700\u6c42\u7684\u8bdd\uff0c\u4f60\u4e5f\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4e00\u4e2a\u6570\u636e\u5e93\u63d2\u4ef6\u3002\u65b9\u6cd5\u5c31\u662f\u5b9e\u73b0\u4e00\u4e2a\u63a5\u53e3\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Dialector interface {\n Dialect(dsn *driver.DSN) (driverName string, dsnDetail string)\n ShowDatabaseSQL() string\n String() string\n}\n")),(0,l.kt)("p",null,"\u5728\u5b9e\u73b0\u8fd9\u4e2a\u63a5\u53e3\u524d\uff0c\u4f60\u9700\u8981\u5148\u4e86\u89e3\u4e00\u4e0b Go \u8bed\u8a00\u539f\u751f Driver \u7684\u6982\u5ff5\uff08\u4ee5 MySQL Driver \u4e3a\u4f8b\uff09\u3002"),(0,l.kt)("p",null,"\u4e0b\u9762\u4ecb\u7ecd Dialector \u63a5\u53e3\u7684\u542b\u4e49\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Dialect"),"\uff1a\u5b9e\u73b0\u8be5\u65b9\u6cd5\uff0c\u901a\u8fc7 DSN \u63d0\u4f9b\u7684 Host Port User Password Database \u4fe1\u606f\u548c\u4f60\u9009\u62e9\u7684\u6570\u636e\u5e93 driver\uff0c\u6784\u9020\u51fa driverName \u4e0e dsnDetail\u3002driverName \u662f\u4f60\u5f15\u5165\u7684\u6570\u636e\u5e93 driver \u540d\u79f0\uff1bdsnDetail \u662f\u8fde\u63a5\u6570\u636e\u5e93\u9a71\u52a8\u7684\u5fc5\u8981\u4fe1\u606f\u3002\u8fd9\u4e24\u4e2a\u53c2\u6570\u6700\u7ec8\u4f1a\u901a\u8fc7 ",(0,l.kt)("inlineCode",{parentName:"li"},"sql.Open()")," \u6765\u521b\u5efa\u4e00\u4e2a\u6570\u636e\u5e93\u8fde\u63a5\u3002"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"ShowDatabaseSQL"),"\uff1a\u5b9e\u73b0\u8be5\u65b9\u6cd5\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4f60\u6570\u636e\u6e90\u4e2d\u9ed8\u8ba4\u5c55\u793a\u7684\u6570\u636e\u5e93\u5217\u8868\uff0c\u8be5\u6570\u636e\u5e93\u5217\u8868\u6700\u7ec8\u4f1a\u5c55\u793a\u5728\u5de5\u5355\u5ba1\u6838\u5217\u8868\u7684\u6570\u636e\u5e93\u4e0b\u62c9\u6846\u4e2d\uff0c\u5982\u4e0b\u56fe\uff1a\n",(0,l.kt)("img",{alt:"pluginworkflow",src:n(37).Z,width:"1391",height:"875"})),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"String"),"\uff1a\u5b9e\u73b0\u8be5\u65b9\u6cd5\uff0c\u8be5\u65b9\u6cd5\u7684\u8fd4\u56de\u503c\u4f1a\u4f5c\u4e3a\u4f60\u5b9e\u73b0\u7684\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u540d\u5c55\u793a\u5728 SQLE \u7684\u76f8\u5173\u4e0b\u62c9\u6846\u4e2d\uff0c\u5982\u4e0b\u56fe\uff1a\n",(0,l.kt)("img",{alt:"plugintype",src:n(5186).Z,width:"1470",height:"712"}))),(0,l.kt)("p",null,"\u5c06\u4f60\u7684\u5b9e\u73b0\u4f5c\u4e3a NewAdaptor \u7684\u53c2\u6570\u4f20\u5165\u5373\u53ef\uff0c\u540e\u7eed\u7684\u6b65\u9aa4\u4e0e\u524d\u9762\u89c4\u5219\u76f8\u5173\u7684\u4ecb\u7ecd\u4e00\u81f4\u3002"),(0,l.kt)("h2",{id:"\u8be6\u7ec6"},"\u8be6\u7ec6"),(0,l.kt)("h3",{id:"sqle\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe"},"SQLE\u4e0e\u63d2\u4ef6\u7684\u4ea4\u4e92\u56fe"),(0,l.kt)("p",null,(0,l.kt)("img",{alt:"sqleplugin",src:n(7286).Z,width:"647",height:"802"})),(0,l.kt)("h3",{id:"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e"},"\u63d2\u4ef6\u63a5\u53e3\u8bf4\u660e"),(0,l.kt)("h4",{id:"1\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e"},"1.\u6ce8\u518c\u63a5\u53e3\u8bf4\u660e"),(0,l.kt)("p",null,"\u8be5\u63a5\u53e3\u5b9a\u4e49\u4e86\u8be5\u63d2\u4ef6\u7684\u540d\u79f0\u548c\u5b9e\u73b0\u7684\u89c4\u5219\uff0cSQLE\u542f\u52a8\u7684\u65f6\u5019\u4f1a\u8c03\u7528\u8be5\u63a5\u53e3\u83b7\u53d6\u63d2\u4ef6\u540d\u79f0\u548c\u8be5\u63d2\u4ef6\u652f\u6301\u7684\u89c4\u5219\u5217\u8868\u3002"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Registerer interface {\n Name() string\n Rules() []*model.Rule\n}\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Name"),": \u63d2\u4ef6\u540d\uff0c\u6700\u7ec8\u4f1a\u5c55\u793a\u5728 SQLE \u9875\u9762\u7684\u6570\u636e\u6e90\u7c7b\u578b\u7684\u4e0b\u62c9\u6846\u4e2d\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Rules"),": \u63d2\u4ef6\u652f\u6301\u7684\u89c4\u5219\uff0c\u5728\u542f\u52a8 SQLE \u65f6\uff0c\u4f1a\u8c03\u7528\u63d2\u4ef6\u83b7\u53d6\u8fd9\u4e9b\u89c4\u5219\uff0c\u4f60\u5c06\u5728\u89c4\u5219\u6a21\u677f\u5185\u770b\u5230\u5b83\u4eec\u3002")),(0,l.kt)("h4",{id:"2\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e"},"2.\u5ba1\u6838\u63a5\u53e3\u8bf4\u660e"),(0,l.kt)("p",null,"\u8be5\u63a5\u53e3\u5b9a\u4e49\u4e86SQLE\u8fdb\u884c\u5ba1\u6838\u65f6\uff0c\u7531\u63d2\u4ef6\u5b8c\u6210\u7684\u548c\u5177\u4f53\u6570\u636e\u5e93\u5e95\u5c42\u4ea4\u4e92\u7684\u64cd\u4f5c"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Driver interface {\n Close(ctx context.Context)\n Ping(ctx context.Context) error\n Exec(ctx context.Context, query string) (driver.Result, error)\n Tx(ctx context.Context, queries ...string) ([]driver.Result, error)\n Schemas(ctx context.Context) ([]string, error)\n Parse(ctx context.Context, sqlText string) ([]Node, error)\n Audit(ctx context.Context, sql string) (*AuditResult, error)\n GenRollbackSQL(ctx context.Context, sql string) (string, string, error)\n}\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Close"),": \u5173\u95ed\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528\u7684\u76f8\u5173\u8d44\u6e90\uff0c\u901a\u5e38\u662f\u5b8c\u6210\u4e00\u6b21\u5ba1\u6838\u540e\uff0c\u5173\u95ed\u6570\u636e\u5e93\u8fde\u63a5\u7b49\u8d44\u6e90;"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Ping"),": \u68c0\u6d4b\u6570\u636e\u5e93\u7684\u8fde\u63a5\u6027,\u901a\u5e38\u5728\u6dfb\u52a0\u6570\u636e\u6e90\u65f6\uff0c\u4e3a\u4e86\u68c0\u6d4b\u586b\u5199\u7684\u6570\u636e\u662f\u5426\u6b63\u786e\uff0c\u4f1a\u8c03\u7528\u6b64\u65b9\u6cd5;"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Exec"),": \u6267\u884c SQL \u4e0a\u7ebf\u65f6\u6267\u884c\u6b64\u65b9\u6cd5\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Tx"),": \u6267\u884c SQL \u4e0a\u7ebf\u65f6\u6267\u884c\u6b64\u65b9\u6cd5\uff0c\u4e00\u822c\u5f53SQL\u662fDML\u65f6\u4e14\u9700\u8981\u4e8b\u52a1\u6267\u884c\u65f6\u4f1a\u6279\u91cf\u6267\u884cSQL\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Schemas"),": \u8fd4\u56de\u5ba1\u6838\u63d2\u4ef6\u5c55\u793a\u7ed9\u7528\u6237\u7684 Schema \u5217\u8868\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Parse"),": \u89e3\u6790\u5ba1\u6838\u63d2\u4ef6\u652f\u6301\u7684 SQL \u683c\u5f0f\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Audit"),": \u6839\u636e\u6307\u5b9a\u7684SQL\u8bed\u53e5\u751f\u6210\u5ba1\u6838\u5efa\u8bae\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"GenRollbackSQL"),": \u751f\u6210 SQL \u7684\u56de\u6eda\u8bed\u53e5\u3002")),(0,l.kt)("h4",{id:"3\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e"},"3.\u63d2\u4ef6\u7684\u914d\u7f6e\u4fe1\u606f\u8bf4\u660e"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"type Config struct {\n DSN *DSN\n Rules []*Rule\n}\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"DSN"),": \u6570\u636e\u6e90\u4fe1\u606f, \u5f85\u5ba1\u6838\u7684\u6570\u636e\u5e93\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"Rules"),": \u672c\u6b21\u5ba1\u6838\u5236\u5b9a\u7684\u89c4\u5219\u5217\u8868\u3002")),(0,l.kt)("h4",{id:"4\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e"},"4.\u521d\u59cb\u5316\u51fd\u6570\u8bf4\u660e"),(0,l.kt)("p",null,"\u63d2\u4ef6\u7684\u4e3b\u8fdb\u7a0b\u5165\u53e3\uff0c\u7531\u63d2\u4ef6\u7684 main \u51fd\u6570\u8c03\u7528\u5373\u53ef\u5b9e\u73b0\u63d2\u4ef6"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"func ServePlugin(r Registerer, newDriver func(cfg *Config) Driver)\n")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"r"),": \u4f20\u5165 Registerer \u7684\u63a5\u53e3\u5b9e\u73b0, \u7531\u63d2\u4ef6\u4fa7\u5b9e\u73b0\uff1b"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"newDriver"),": \u4f20\u5165 Driver \u7684\u521d\u59cb\u5316\u51fd\u6570\uff0c\u8be5\u51fd\u6570\u7684\u5165\u53c2\u662f Config \u662f\u7531 SQLE \u5411\u63d2\u4ef6\u4f20\u9012\u7684\u914d\u7f6e\u4fe1\u606f\uff0c\u51fd\u6570\u7684\u51fa\u53c2\u662f Driver \u7684\u63a5\u53e3\u5b9e\u73b0\uff0c\u7531\u63d2\u4ef6\u4fa7\u5b9e\u73b0\u3002")))}s.isMDXComponent=!0},5186:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/plugintype-c0d954f432393faa0e667c5d76b2dd59.png"},37:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pluginworkflow-b1cdf157e0b1e154f8d93a57e64dd73d.png"},7286:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/sqleplugins-0de7de396be00110adb6667da80d4a2c.png"}}]); \ No newline at end of file diff --git a/assets/js/7eb65a46.fd64a5d2.js b/assets/js/7eb65a46.b77c41a6.js similarity index 98% rename from assets/js/7eb65a46.fd64a5d2.js rename to assets/js/7eb65a46.b77c41a6.js index d09165d5..cb6155ef 100644 --- a/assets/js/7eb65a46.fd64a5d2.js +++ b/assets/js/7eb65a46.b77c41a6.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[7281],{3905:(t,e,r)=>{r.d(e,{Zo:()=>d,kt:()=>b});var n=r(7294);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function o(t){for(var e=1;e=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}var p=n.createContext({}),c=function(t){var e=n.useContext(p),r=e;return t&&(r="function"==typeof t?t(e):o(o({},e),t)),r},d=function(t){var e=c(t.components);return n.createElement(p.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var r=t.components,a=t.mdxType,l=t.originalType,p=t.parentName,d=i(t,["components","mdxType","originalType","parentName"]),u=c(r),s=a,b=u["".concat(p,".").concat(s)]||u[s]||m[s]||l;return r?n.createElement(b,o(o({ref:e},d),{},{components:r})):n.createElement(b,o({ref:e},d))}));function b(t,e){var r=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var l=r.length,o=new Array(l);o[0]=s;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[u]="string"==typeof t?t:a,o[1]=i;for(var c=2;c{r.r(e),r.d(e,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const l={title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93"},o="\u652f\u6301\u7684\u6570\u636e\u5e93\u53ca\u7248\u672c",i={unversionedId:"FAQ/whichdatabase",id:"FAQ/whichdatabase",title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93",description:"|\u6570\u636e\u5e93\u7c7b\u578b|\u9a8c\u8bc1\u53ef\u7528\u7684\u7248\u672c|",source:"@site/docs/FAQ/whichdatabase.md",sourceDirName:"FAQ",slug:"/FAQ/whichdatabase",permalink:"/sqle-docs/docs/FAQ/whichdatabase",draft:!1,editUrl:"https://github.com/actiontech/sqle-docs/tree/main/docs/FAQ/whichdatabase.md",tags:[],version:"current",frontMatter:{title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93"},sidebar:"tutorialSidebar",previous:{title:"SQLE\u5982\u4f55\u9274\u6743",permalink:"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken"}},p={},c=[],d={toc:c};function u(t){let{components:e,...r}=t;return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u652f\u6301\u7684\u6570\u636e\u5e93\u53ca\u7248\u672c"},"\u652f\u6301\u7684\u6570\u636e\u5e93\u53ca\u7248\u672c"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"\u6570\u636e\u5e93\u7c7b\u578b"),(0,a.kt)("th",{parentName:"tr",align:null},"\u9a8c\u8bc1\u53ef\u7528\u7684\u7248\u672c"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"MySQL"),(0,a.kt)("td",{parentName:"tr",align:null},"5.7.25 \u30018.0.33")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"PostgreSQL"),(0,a.kt)("td",{parentName:"tr",align:null},"9.3 \u2013 13")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Oracle"),(0,a.kt)("td",{parentName:"tr",align:null},"11.2\u300112.1\u300112.2")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SQL server"),(0,a.kt)("td",{parentName:"tr",align:null},"2008\u30012012\u30012016")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"DB2"),(0,a.kt)("td",{parentName:"tr",align:null},"11.5")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"TiDB"),(0,a.kt)("td",{parentName:"tr",align:null},"4.0.8")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OceanBase For MySQL"),(0,a.kt)("td",{parentName:"tr",align:null},"3.5")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"\u8fbe\u68a6"),(0,a.kt)("td",{parentName:"tr",align:null},"V8")))),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5f53\u524d\u7248\u672c\u4e3aSQLE\u9a8c\u8bc1\u786e\u8ba4\u53ef\u7528\u7684\u7248\u672c\uff0c\u82e5\u9700\u8981\u4f7f\u7528\u5176\u4ed6\u7248\u672c\uff0c\u9700\u81ea\u884c\u9a8c\u8bc1")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[7281],{3905:(t,e,r)=>{r.d(e,{Zo:()=>d,kt:()=>b});var n=r(7294);function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function o(t){for(var e=1;e=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}var p=n.createContext({}),c=function(t){var e=n.useContext(p),r=e;return t&&(r="function"==typeof t?t(e):o(o({},e),t)),r},d=function(t){var e=c(t.components);return n.createElement(p.Provider,{value:e},t.children)},u="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var r=t.components,a=t.mdxType,l=t.originalType,p=t.parentName,d=i(t,["components","mdxType","originalType","parentName"]),u=c(r),s=a,b=u["".concat(p,".").concat(s)]||u[s]||m[s]||l;return r?n.createElement(b,o(o({ref:e},d),{},{components:r})):n.createElement(b,o({ref:e},d))}));function b(t,e){var r=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var l=r.length,o=new Array(l);o[0]=s;var i={};for(var p in e)hasOwnProperty.call(e,p)&&(i[p]=e[p]);i.originalType=t,i[u]="string"==typeof t?t:a,o[1]=i;for(var c=2;c{r.r(e),r.d(e,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const l={title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93"},o="\u652f\u6301\u7684\u6570\u636e\u5e93\u53ca\u7248\u672c",i={unversionedId:"FAQ/whichdatabase",id:"FAQ/whichdatabase",title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93",description:"|\u6570\u636e\u5e93\u7c7b\u578b|\u9a8c\u8bc1\u53ef\u7528\u7684\u7248\u672c|",source:"@site/docs/FAQ/whichdatabase.md",sourceDirName:"FAQ",slug:"/FAQ/whichdatabase",permalink:"/sqle-docs/docs/FAQ/whichdatabase",draft:!1,editUrl:"https://github.com/actiontech/sqle-docs/tree/main/docs/FAQ/whichdatabase.md",tags:[],version:"current",frontMatter:{title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93"},sidebar:"tutorialSidebar",previous:{title:"\u5982\u4f55\u5bf9\u63a5SQLE",permalink:"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken"}},p={},c=[],d={toc:c};function u(t){let{components:e,...r}=t;return(0,a.kt)("wrapper",(0,n.Z)({},d,r,{components:e,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u652f\u6301\u7684\u6570\u636e\u5e93\u53ca\u7248\u672c"},"\u652f\u6301\u7684\u6570\u636e\u5e93\u53ca\u7248\u672c"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"\u6570\u636e\u5e93\u7c7b\u578b"),(0,a.kt)("th",{parentName:"tr",align:null},"\u9a8c\u8bc1\u53ef\u7528\u7684\u7248\u672c"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"MySQL"),(0,a.kt)("td",{parentName:"tr",align:null},"5.7.25 \u30018.0.33")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"PostgreSQL"),(0,a.kt)("td",{parentName:"tr",align:null},"9.3 \u2013 13")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"Oracle"),(0,a.kt)("td",{parentName:"tr",align:null},"11.2\u300112.1\u300112.2")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"SQL server"),(0,a.kt)("td",{parentName:"tr",align:null},"2008\u30012012\u30012016")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"DB2"),(0,a.kt)("td",{parentName:"tr",align:null},"11.5")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"TiDB"),(0,a.kt)("td",{parentName:"tr",align:null},"4.0.8")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OceanBase For MySQL"),(0,a.kt)("td",{parentName:"tr",align:null},"3.5")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"\u8fbe\u68a6"),(0,a.kt)("td",{parentName:"tr",align:null},"V8")))),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5f53\u524d\u7248\u672c\u4e3aSQLE\u9a8c\u8bc1\u786e\u8ba4\u53ef\u7528\u7684\u7248\u672c\uff0c\u82e5\u9700\u8981\u4f7f\u7528\u5176\u4ed6\u7248\u672c\uff0c\u9700\u81ea\u884c\u9a8c\u8bc1")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/82ad92c6.7302dd79.js b/assets/js/82ad92c6.7302dd79.js new file mode 100644 index 00000000..5b9c75ed --- /dev/null +++ b/assets/js/82ad92c6.7302dd79.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[6869],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),m=s(n),k=r,u=m["".concat(p,".").concat(k)]||m[k]||c[k]||l;return n?a.createElement(u,o(o({ref:t},d),{},{components:n})):a.createElement(u,o({ref:t},d))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=k;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:r,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const l={title:"\u5982\u4f55\u5bf9\u63a5SQLE"},o=void 0,i={unversionedId:"dev-manual/OpenAPI/dmstoken",id:"dev-manual/OpenAPI/dmstoken",title:"\u5982\u4f55\u5bf9\u63a5SQLE",description:"\u672c\u6587\u6863\u65e8\u5728\u4ecb\u7ecd\u5982\u4f55\u5c06\u60a8\u7684\u5e94\u7528\u4e0e SQLE \u8fdb\u884c\u5bf9\u63a5\uff0c\u5c06 SQLE \u6210\u4e3a\u5e94\u7528\u751f\u6001\u4e2d\u7684\u4e00\u73af\uff0c\u5e76\u5229\u7528\u5176\u63d0\u4f9b\u7684 SQL \u5ba1\u6838\u548c\u667a\u80fd\u626b\u63cf\u7b49\u80fd\u529b\u3002\u5bf9\u63a5 SQLE \u662f SQLE \u793e\u533a\u4e2d\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\u3002\u4e3a\u4e86\u5e2e\u52a9\u5f00\u53d1\u8005\u987a\u5229\u5b8c\u6210\u5e94\u7528\u4e0e SQLE \u7684\u5bf9\u63a5\uff0c\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u5bf9\u63a5 SQLE \u7684\u57fa\u672c\u601d\u8def\uff0c\u5e76\u8bb0\u5f55\u4e86\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u7b54\u3002\u672c\u6587\u6863\u4e5f\u4f1a\u6301\u7eed\u66f4\u65b0\u3002\u5982\u679c\u60a8\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u652f\u6301\uff0c\u8bf7\u52a0\u5165 SQLE \u793e\u533a\u670d\u52a1\u7fa4\uff0c\u63d0\u51fa\u60a8\u7684\u9700\u6c42\uff0c\u6211\u4eec\u5c06\u7aed\u8bda\u4e3a\u60a8\u670d\u52a1\u3002\ud83d\udc49\u793e\u533a\u652f\u6301",source:"@site/docs/dev-manual/OpenAPI/dmstoken.md",sourceDirName:"dev-manual/OpenAPI",slug:"/dev-manual/OpenAPI/dmstoken",permalink:"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken",draft:!1,editUrl:"https://github.com/actiontech/sqle-docs/tree/main/docs/dev-manual/OpenAPI/dmstoken.md",tags:[],version:"current",frontMatter:{title:"\u5982\u4f55\u5bf9\u63a5SQLE"},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1",permalink:"/sqle-docs/docs/dev-manual/plugins/howtodev"},next:{title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93",permalink:"/sqle-docs/docs/FAQ/whichdatabase"}},p={},s=[{value:"\u8c03\u7528\u767b\u5f55SQLE\u7684\u63a5\u53e3\u83b7\u53d6dms-token",id:"\u8c03\u7528\u767b\u5f55sqle\u7684\u63a5\u53e3\u83b7\u53d6dms-token",level:2},{value:"\u8bf7\u6c42",id:"\u8bf7\u6c42",level:3},{value:"\u8bf7\u6c42\u4f53/\u8d1f\u8f7d\u793a\u4f8b\uff1a",id:"\u8bf7\u6c42\u4f53\u8d1f\u8f7d\u793a\u4f8b",level:4},{value:"\u54cd\u5e94",id:"\u54cd\u5e94",level:3},{value:"\u4f7f\u7528dms-token\u8c03\u7528SQLE\u7684\u63a5\u53e3",id:"\u4f7f\u7528dms-token\u8c03\u7528sqle\u7684\u63a5\u53e3",level:2},{value:"\u6ce8\u610f\u4e8b\u9879",id:"\u6ce8\u610f\u4e8b\u9879",level:3},{value:"\u5bf9\u63a5SQLE\u7684\u529f\u80fd",id:"\u5bf9\u63a5sqle\u7684\u529f\u80fd",level:2},{value:"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b",id:"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b",level:3},{value:"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570",id:"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570",level:3}],d={toc:s};function m(e){let{components:t,...l}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,l,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"\u672c\u6587\u6863\u65e8\u5728\u4ecb\u7ecd\u5982\u4f55\u5c06\u60a8\u7684\u5e94\u7528\u4e0e SQLE \u8fdb\u884c\u5bf9\u63a5\uff0c\u5c06 SQLE \u6210\u4e3a\u5e94\u7528\u751f\u6001\u4e2d\u7684\u4e00\u73af\uff0c\u5e76\u5229\u7528\u5176\u63d0\u4f9b\u7684 SQL \u5ba1\u6838\u548c\u667a\u80fd\u626b\u63cf\u7b49\u80fd\u529b\u3002\u5bf9\u63a5 SQLE \u662f SQLE \u793e\u533a\u4e2d\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\u3002\u4e3a\u4e86\u5e2e\u52a9\u5f00\u53d1\u8005\u987a\u5229\u5b8c\u6210\u5e94\u7528\u4e0e SQLE \u7684\u5bf9\u63a5\uff0c\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u5bf9\u63a5 SQLE \u7684\u57fa\u672c\u601d\u8def\uff0c\u5e76\u8bb0\u5f55\u4e86\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u7b54\u3002\u672c\u6587\u6863\u4e5f\u4f1a\u6301\u7eed\u66f4\u65b0\u3002\u5982\u679c\u60a8\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u652f\u6301\uff0c\u8bf7\u52a0\u5165 SQLE \u793e\u533a\u670d\u52a1\u7fa4\uff0c\u63d0\u51fa\u60a8\u7684\u9700\u6c42\uff0c\u6211\u4eec\u5c06\u7aed\u8bda\u4e3a\u60a8\u670d\u52a1\u3002\ud83d\udc49",(0,r.kt)("a",{parentName:"p",href:"/sqle-docs/docs/support/community-support"},"\u793e\u533a\u652f\u6301")),(0,r.kt)("h2",{id:"\u8c03\u7528\u767b\u5f55sqle\u7684\u63a5\u53e3\u83b7\u53d6dms-token"},"\u8c03\u7528\u767b\u5f55SQLE\u7684\u63a5\u53e3\u83b7\u53d6dms-token"),(0,r.kt)("p",null,"\u5728SQLE\u66f4\u65b0\u52303.0\u4e4b\u540e\uff0cDMS\u63a5\u7ba1\u4e86SQLE\u7684\u90e8\u5206\u529f\u80fd\uff0c\u524d\u7aef\u901a\u8fc7\u8bbf\u95eeDMS\u6765\u8bbf\u95eeSQLE\uff0c\u7528\u4e8e\u9274\u6743\u7684token\u5b58\u653e\u5728Cookie\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u4e2d\uff0c\u82e5\u8981\u83b7\u53d6\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\uff0c\u9700\u8981\u5148\u8c03\u7528\u767b\u5f55SQLE\u7684\u63a5\u53e3\uff0c\u4f7f\u7528SQLE\u4e2d\u5b58\u5728\u7684\u8d26\u53f7\u53ca\u5176\u5bc6\u7801\u767b\u5f55SQLE\uff0c\u4ece\u54cd\u5e94\u4f53\u6216\u54cd\u5e94\u7684Cookie\u4e2d\u83b7\u53d6",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u3002"),(0,r.kt)("h3",{id:"\u8bf7\u6c42"},"\u8bf7\u6c42"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u8bf7\u6c42URL: http://{ip:port}/v1/dms/sessions"),(0,r.kt)("li",{parentName:"ul"},"\u8bf7\u6c42\u65b9\u6cd5: POST"),(0,r.kt)("li",{parentName:"ul"},"Content-Type: application/json")),(0,r.kt)("h4",{id:"\u8bf7\u6c42\u4f53\u8d1f\u8f7d\u793a\u4f8b"},"\u8bf7\u6c42\u4f53/\u8d1f\u8f7d\u793a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "session":{\n "username":"\u7528\u6237\u540d\u79f0",\n "password":"\u7528\u6237\u5bc6\u7801"\n }\n}\n')),(0,r.kt)("h3",{id:"\u54cd\u5e94"},"\u54cd\u5e94"),(0,r.kt)("p",null,"\u60a8\u53ef\u4ee5\u5728Cookie\u4e2d\u83b7\u53d6\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u503c"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Value"),(0,r.kt)("th",{parentName:"tr",align:null},"Domain"),(0,r.kt)("th",{parentName:"tr",align:null},"Path"),(0,r.kt)("th",{parentName:"tr",align:null},"Expires"),(0,r.kt)("th",{parentName:"tr",align:null},"MaxAge"),(0,r.kt)("th",{parentName:"tr",align:null},"HttpOnly"),(0,r.kt)("th",{parentName:"tr",align:null},"Secure"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"dms-token"),(0,r.kt)("td",{parentName:"tr",align:null},"{dms-token\u503c}"),(0,r.kt)("td",{parentName:"tr",align:null},"{ip\u5730\u5740}"),(0,r.kt)("td",{parentName:"tr",align:null},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"{dms-token\u8fc7\u671f\u65f6\u95f4}"),(0,r.kt)("td",{parentName:"tr",align:null},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"-")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"igcookie",src:n(1767).Z,width:"2117",height:"1519"})),(0,r.kt)("p",null,"\u60a8\u4e5f\u53ef\u4ee5\u5728\u54cd\u5e94\u4f53\u4e2d\u83b7\u53d6\u5230dms-token\u503c"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "data": {\n "token": "{dms-token\u503c}"\n },\n "code": 0,\n "message": ""\n}\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"igpreview",src:n(8889).Z,width:"2014",height:"1521"})),(0,r.kt)("h2",{id:"\u4f7f\u7528dms-token\u8c03\u7528sqle\u7684\u63a5\u53e3"},"\u4f7f\u7528dms-token\u8c03\u7528SQLE\u7684\u63a5\u53e3"),(0,r.kt)("p",null,"\u5728\u63a5\u4e0b\u6765\u8bf7\u6c42\u7684Cookie\u4e2d\u5e26\u4e0a ",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u3002SQLE\u4f1a\u4f7f\u7528",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u8fdb\u884c\u9274\u6743\u3002"),(0,r.kt)("p",null,"\u4ee5\u8fdb\u884cSQL\u5ba1\u6838\u7684\u63a5\u53e3\u4e3a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Method: POST \nURL: http://dms_ip:dms_port/sqle/v1/projects/default/sql_audit_records\nContent-Type: multipart/form-data; \nCookie: dms-token={dms-token\u503c}\nPayload:\n instance_name: MySQL\n instance_schema: test_schema\n sqls: show tables;\n")),(0,r.kt)("h3",{id:"\u6ce8\u610f\u4e8b\u9879"},"\u6ce8\u610f\u4e8b\u9879"),(0,r.kt)("p",null,"SQLE\u7684\u5927\u90e8\u5206\u63a5\u53e3\u90fd\u4f1a\u5bf9",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u8fdb\u884c\u6821\u9a8c\uff0c\u82e5\u672a\u643a\u5e26",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u6216\u643a\u5e26\u9519\u8bef\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\uff0c\u8bf7\u6c42\u90fd\u4f1a\u88ab\u62e6\u622a\uff0c\u4ece\u800c\u5bfc\u81f4\u5931\u8d25\u3002\n\u8bf7\u6c42\u672a\u643a\u5e26",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u65f6\uff0c\u54cd\u5e94\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "message": "can not find dms-token"\n}\n')),(0,r.kt)("p",null,"\u8bf7\u6c42\u643a\u5e26\u9519\u8bef\u7684dms-token\u65f6\uff0c\u54cd\u5e94\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "message": "invalid or expired jwt"\n}\n')),(0,r.kt)("h2",{id:"\u5bf9\u63a5sqle\u7684\u529f\u80fd"},"\u5bf9\u63a5SQLE\u7684\u529f\u80fd"),(0,r.kt)("h3",{id:"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b"},"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b"),(0,r.kt)("p",null,"\u82e5\u60a8\u9700\u8981\u5bf9\u63a5\u67d0\u4e2aSQLE\u7684\u529f\u80fd\uff0c\u53ef\u4ee5\u6253\u5f00SQLE\u7684\u524d\u7aef\u754c\u9762\uff0c\u70b9\u51fbF12\u6253\u5f00\u5f00\u53d1\u4eba\u5458\u5de5\u5177\uff0c\u5bf9\u60a8\u60f3\u8981\u5bf9\u63a5\u7684\u529f\u80fd\u8fdb\u884c\u64cd\u4f5c\uff0c\u7136\u540e\u53c2\u8003\u524d\u7aef\u754c\u9762\u7684\u63a5\u53e3\u8c03\u7528\u6d41\u3002\u5373\u53ef\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u7684\u6d41\u7a0b\u3002"),(0,r.kt)("p",null,"\u5728",(0,r.kt)("a",{parentName:"p",href:"#%E4%BD%BF%E7%94%A8dms-token%E8%B0%83%E7%94%A8sqle%E7%9A%84%E6%8E%A5%E5%8F%A3"},"\u4f7f\u7528dms-token\u8c03\u7528SQLE\u7684\u63a5\u53e3"),"\u4e2d\uff0c\u793a\u4f8b\u7684SQL\u5ba1\u6838\u7684\u63a5\u53e3\u662f\u521b\u5efaSQL\u5ba1\u6838\u7684http\u8c03\u7528\u6d41\u7a0b\u7684\u5176\u4e2d\u4e00\u6b65\uff0c\u8981\u5b8c\u6574\u7684\u5bf9\u63a5SQL\u5ba1\u6838\u529f\u80fd\uff0c\u53ef\u4ee5\u53c2\u8003\u524d\u7aef\u7684\u8c03\u7528\n",(0,r.kt)("img",{alt:"usepreview",src:n(7420).Z,width:"1280",height:"667"})),(0,r.kt)("h3",{id:"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570"},"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570"),(0,r.kt)("p",null,"\u63a5\u53e3\u53ef\u4ee5\u53c2\u8003\u5728github\u4e0a\u7684\u5f00\u6e90\u9879\u76ee\u7684swagger\u63a5\u53e3\u6587\u6863\u3002"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"SQLE\u7684Swagger\u6587\u6863\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/actiontech/sqle/tree/main/sqle/docs"},"https://github.com/actiontech/sqle/tree/main/sqle/docs")),(0,r.kt)("li",{parentName:"ol"},"DMS\u7684Swagger\u6587\u6863\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/actiontech/dms/tree/main/api"},"https://github.com/actiontech/dms/tree/main/api"))),(0,r.kt)("p",null,"\u559c\u6b22\u7684\u8bdd\u53ef\u4ee5\u7ed9\u6211\u4eec\u4e00\u4e2aStar\u5462\uff01(\u25cf'\u25e1'\u25cf)"))}m.isMDXComponent=!0},1767:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/igcookie-3de138137cc35af02c830fa0277a00d0.png"},8889:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/igpreview-89dd21637e6bf79a7b79cd895f29f8ad.png"},7420:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/usepreview-7f1853ee579cc40d8775075eace01832.png"}}]); \ No newline at end of file diff --git a/assets/js/82ad92c6.d2bf5fc3.js b/assets/js/82ad92c6.d2bf5fc3.js deleted file mode 100644 index 8d039a1b..00000000 --- a/assets/js/82ad92c6.d2bf5fc3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[6869],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),s=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(p.Provider,{value:t},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),m=s(n),k=r,u=m["".concat(p,".").concat(k)]||m[k]||c[k]||l;return n?a.createElement(u,o(o({ref:t},d),{},{components:n})):a.createElement(u,o({ref:t},d))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=k;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:r,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const l={title:"SQLE\u5982\u4f55\u9274\u6743"},o=void 0,i={unversionedId:"dev-manual/OpenAPI/dmstoken",id:"dev-manual/OpenAPI/dmstoken",title:"SQLE\u5982\u4f55\u9274\u6743",description:"\u672c\u6587\u6863\u65e8\u5728\u4ecb\u7ecd\u5982\u4f55\u5c06\u60a8\u7684\u5e94\u7528\u4e0e SQLE \u8fdb\u884c\u5bf9\u63a5\uff0c\u5c06 SQLE \u6210\u4e3a\u5e94\u7528\u751f\u6001\u4e2d\u7684\u4e00\u73af\uff0c\u5e76\u5229\u7528\u5176\u63d0\u4f9b\u7684 SQL \u5ba1\u6838\u548c\u667a\u80fd\u626b\u63cf\u7b49\u80fd\u529b\u3002\u5bf9\u63a5 SQLE \u662f SQLE \u793e\u533a\u4e2d\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\u3002\u4e3a\u4e86\u5e2e\u52a9\u5f00\u53d1\u8005\u987a\u5229\u5b8c\u6210\u5e94\u7528\u4e0e SQLE \u7684\u5bf9\u63a5\uff0c\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u5bf9\u63a5 SQLE \u7684\u57fa\u672c\u601d\u8def\uff0c\u5e76\u8bb0\u5f55\u4e86\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u7b54\u3002\u672c\u6587\u6863\u4e5f\u4f1a\u6301\u7eed\u66f4\u65b0\u3002\u5982\u679c\u60a8\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u652f\u6301\uff0c\u8bf7\u52a0\u5165 SQLE \u793e\u533a\u670d\u52a1\u7fa4\uff0c\u63d0\u51fa\u60a8\u7684\u9700\u6c42\uff0c\u6211\u4eec\u5c06\u7aed\u8bda\u4e3a\u60a8\u670d\u52a1\u3002\ud83d\udc49\u793e\u533a\u652f\u6301",source:"@site/docs/dev-manual/OpenAPI/dmstoken.md",sourceDirName:"dev-manual/OpenAPI",slug:"/dev-manual/OpenAPI/dmstoken",permalink:"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken",draft:!1,editUrl:"https://github.com/actiontech/sqle-docs/tree/main/docs/dev-manual/OpenAPI/dmstoken.md",tags:[],version:"current",frontMatter:{title:"SQLE\u5982\u4f55\u9274\u6743"},sidebar:"tutorialSidebar",previous:{title:"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1",permalink:"/sqle-docs/docs/dev-manual/plugins/howtodev"},next:{title:"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93",permalink:"/sqle-docs/docs/FAQ/whichdatabase"}},p={},s=[{value:"\u8c03\u7528\u767b\u5f55SQLE\u7684\u63a5\u53e3\u83b7\u53d6dms-token",id:"\u8c03\u7528\u767b\u5f55sqle\u7684\u63a5\u53e3\u83b7\u53d6dms-token",level:2},{value:"\u8bf7\u6c42",id:"\u8bf7\u6c42",level:3},{value:"\u8bf7\u6c42\u4f53/\u8d1f\u8f7d\u793a\u4f8b\uff1a",id:"\u8bf7\u6c42\u4f53\u8d1f\u8f7d\u793a\u4f8b",level:4},{value:"\u54cd\u5e94",id:"\u54cd\u5e94",level:3},{value:"\u4f7f\u7528dms-token\u8c03\u7528SQLE\u7684\u63a5\u53e3",id:"\u4f7f\u7528dms-token\u8c03\u7528sqle\u7684\u63a5\u53e3",level:2},{value:"\u6ce8\u610f\u4e8b\u9879",id:"\u6ce8\u610f\u4e8b\u9879",level:3},{value:"\u5bf9\u63a5SQLE\u7684\u529f\u80fd",id:"\u5bf9\u63a5sqle\u7684\u529f\u80fd",level:2},{value:"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b\uff1a",id:"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b",level:3},{value:"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570",id:"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570",level:3}],d={toc:s};function m(e){let{components:t,...l}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,l,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"\u672c\u6587\u6863\u65e8\u5728\u4ecb\u7ecd\u5982\u4f55\u5c06\u60a8\u7684\u5e94\u7528\u4e0e SQLE \u8fdb\u884c\u5bf9\u63a5\uff0c\u5c06 SQLE \u6210\u4e3a\u5e94\u7528\u751f\u6001\u4e2d\u7684\u4e00\u73af\uff0c\u5e76\u5229\u7528\u5176\u63d0\u4f9b\u7684 SQL \u5ba1\u6838\u548c\u667a\u80fd\u626b\u63cf\u7b49\u80fd\u529b\u3002\u5bf9\u63a5 SQLE \u662f SQLE \u793e\u533a\u4e2d\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\u3002\u4e3a\u4e86\u5e2e\u52a9\u5f00\u53d1\u8005\u987a\u5229\u5b8c\u6210\u5e94\u7528\u4e0e SQLE \u7684\u5bf9\u63a5\uff0c\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u5bf9\u63a5 SQLE \u7684\u57fa\u672c\u601d\u8def\uff0c\u5e76\u8bb0\u5f55\u4e86\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u7b54\u3002\u672c\u6587\u6863\u4e5f\u4f1a\u6301\u7eed\u66f4\u65b0\u3002\u5982\u679c\u60a8\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u652f\u6301\uff0c\u8bf7\u52a0\u5165 SQLE \u793e\u533a\u670d\u52a1\u7fa4\uff0c\u63d0\u51fa\u60a8\u7684\u9700\u6c42\uff0c\u6211\u4eec\u5c06\u7aed\u8bda\u4e3a\u60a8\u670d\u52a1\u3002\ud83d\udc49",(0,r.kt)("a",{parentName:"p",href:"/sqle-docs/docs/support/community-support"},"\u793e\u533a\u652f\u6301")),(0,r.kt)("h2",{id:"\u8c03\u7528\u767b\u5f55sqle\u7684\u63a5\u53e3\u83b7\u53d6dms-token"},"\u8c03\u7528\u767b\u5f55SQLE\u7684\u63a5\u53e3\u83b7\u53d6dms-token"),(0,r.kt)("p",null,"\u5728SQLE\u66f4\u65b0\u52303.0\u4e4b\u540e\uff0cDMS\u63a5\u7ba1\u4e86SQLE\u7684\u90e8\u5206\u529f\u80fd\uff0c\u524d\u7aef\u901a\u8fc7\u8bbf\u95eeDMS\u6765\u8bbf\u95eeSQLE\uff0c\u7528\u4e8e\u9274\u6743\u7684token\u5b58\u653e\u5728Cookie\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u4e2d\uff0c\u82e5\u8981\u83b7\u53d6\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\uff0c\u9700\u8981\u5148\u8c03\u7528\u767b\u5f55SQLE\u7684\u63a5\u53e3\uff0c\u4f7f\u7528SQLE\u4e2d\u5b58\u5728\u7684\u8d26\u53f7\u53ca\u5176\u5bc6\u7801\u767b\u5f55SQLE\uff0c\u4ece\u54cd\u5e94\u4f53\u6216\u54cd\u5e94\u7684Cookie\u4e2d\u83b7\u53d6",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u3002"),(0,r.kt)("h3",{id:"\u8bf7\u6c42"},"\u8bf7\u6c42"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u8bf7\u6c42URL: http://{ip:port}/v1/dms/sessions"),(0,r.kt)("li",{parentName:"ul"},"\u8bf7\u6c42\u65b9\u6cd5: POST"),(0,r.kt)("li",{parentName:"ul"},"Content-Type: application/json")),(0,r.kt)("h4",{id:"\u8bf7\u6c42\u4f53\u8d1f\u8f7d\u793a\u4f8b"},"\u8bf7\u6c42\u4f53/\u8d1f\u8f7d\u793a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "session":{\n "username":"\u7528\u6237\u540d\u79f0",\n "password":"\u7528\u6237\u5bc6\u7801"\n }\n}\n')),(0,r.kt)("h3",{id:"\u54cd\u5e94"},"\u54cd\u5e94"),(0,r.kt)("p",null,"\u60a8\u53ef\u4ee5\u5728Cookie\u4e2d\u83b7\u53d6\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u503c"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Value"),(0,r.kt)("th",{parentName:"tr",align:null},"Domain"),(0,r.kt)("th",{parentName:"tr",align:null},"Path"),(0,r.kt)("th",{parentName:"tr",align:null},"Expires"),(0,r.kt)("th",{parentName:"tr",align:null},"MaxAge"),(0,r.kt)("th",{parentName:"tr",align:null},"HttpOnly"),(0,r.kt)("th",{parentName:"tr",align:null},"Secure"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"dms-token"),(0,r.kt)("td",{parentName:"tr",align:null},"{dms-token\u503c}"),(0,r.kt)("td",{parentName:"tr",align:null},"{ip\u5730\u5740}"),(0,r.kt)("td",{parentName:"tr",align:null},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"{dms-token\u8fc7\u671f\u65f6\u95f4}"),(0,r.kt)("td",{parentName:"tr",align:null},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"-"),(0,r.kt)("td",{parentName:"tr",align:null},"-")))),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"igcookie",src:n(1767).Z,width:"1280",height:"890"})),(0,r.kt)("p",null,"\u60a8\u4e5f\u53ef\u4ee5\u5728\u54cd\u5e94\u4f53\u4e2d\u83b7\u53d6\u5230dms-token\u503c"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "data": {\n "token": "{dms-token\u503c}"\n },\n "code": 0,\n "message": ""\n}\n')),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"igpreview",src:n(8889).Z,width:"1280",height:"894"})),(0,r.kt)("h2",{id:"\u4f7f\u7528dms-token\u8c03\u7528sqle\u7684\u63a5\u53e3"},"\u4f7f\u7528dms-token\u8c03\u7528SQLE\u7684\u63a5\u53e3"),(0,r.kt)("p",null,"\u5728\u63a5\u4e0b\u6765\u8bf7\u6c42\u7684Cookie\u4e2d\u5e26\u4e0a ",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u3002SQLE\u4f1a\u4f7f\u7528",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u8fdb\u884c\u9274\u6743\u3002"),(0,r.kt)("p",null,"\u4ee5\u8fdb\u884cSQL\u5ba1\u6838\u7684\u63a5\u53e3\u4e3a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"Method: POST \nURL: http://dms_ip:dms_port/sqle/v1/projects/default/sql_audit_records\nContent-Type: multipart/form-data; \nCookie: dms-token={dms-token\u503c}\nPayload:\n instance_name: MySQL\n instance_schema: test_schema\n sqls: show tables;\n")),(0,r.kt)("h3",{id:"\u6ce8\u610f\u4e8b\u9879"},"\u6ce8\u610f\u4e8b\u9879"),(0,r.kt)("p",null,"SQLE\u7684\u5927\u90e8\u5206\u63a5\u53e3\u90fd\u4f1a\u5bf9",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u8fdb\u884c\u6821\u9a8c\uff0c\u82e5\u672a\u643a\u5e26",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u6216\u643a\u5e26\u9519\u8bef\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\uff0c\u8bf7\u6c42\u90fd\u4f1a\u88ab\u62e6\u622a\uff0c\u4ece\u800c\u5bfc\u81f4\u5931\u8d25\u3002\n\u8bf7\u6c42\u672a\u643a\u5e26",(0,r.kt)("inlineCode",{parentName:"p"},"dms-token"),"\u65f6\uff0c\u54cd\u5e94\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "message": "can not find dms-token"\n}\n')),(0,r.kt)("p",null,"\u8bf7\u6c42\u643a\u5e26\u9519\u8bef\u7684dms-token\u65f6\uff0c\u54cd\u5e94\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "message": "invalid or expired jwt"\n}\n')),(0,r.kt)("h2",{id:"\u5bf9\u63a5sqle\u7684\u529f\u80fd"},"\u5bf9\u63a5SQLE\u7684\u529f\u80fd"),(0,r.kt)("h3",{id:"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b"},"\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u6d41\u7a0b\uff1a"),(0,r.kt)("p",null,"\u82e5\u60a8\u9700\u8981\u5bf9\u63a5\u67d0\u4e2aSQLE\u7684\u529f\u80fd\uff0c\u53ef\u4ee5\u6253\u5f00SQLE\u7684\u524d\u7aef\u754c\u9762\uff0c\u70b9\u51fbF12\u6253\u5f00\u5f00\u53d1\u4eba\u5458\u5de5\u5177\uff0c\u5bf9\u60a8\u60f3\u8981\u5bf9\u63a5\u7684\u529f\u80fd\u8fdb\u884c\u64cd\u4f5c\uff0c\u7136\u540e\u53c2\u8003\u524d\u7aef\u754c\u9762\u7684\u63a5\u53e3\u8c03\u7528\u6d41\u3002\u5373\u53ef\u786e\u8ba4\u63a5\u53e3\u8c03\u7528\u7684\u6d41\u7a0b\u3002"),(0,r.kt)("p",null,"\u5728",(0,r.kt)("a",{parentName:"p",href:"#%E4%BD%BF%E7%94%A8dms-token%E8%B0%83%E7%94%A8sqle%E7%9A%84%E6%8E%A5%E5%8F%A3"},"\u4f7f\u7528dms-token\u8c03\u7528SQLE\u7684\u63a5\u53e3"),"\u4e2d\uff0c\u793a\u4f8b\u7684SQL\u5ba1\u6838\u7684\u63a5\u53e3\u662f\u521b\u5efaSQL\u5ba1\u6838\u7684http\u8c03\u7528\u6d41\u7a0b\u7684\u5176\u4e2d\u4e00\u6b65\uff0c\u8981\u5b8c\u6574\u7684\u5bf9\u63a5SQL\u5ba1\u6838\u529f\u80fd\uff0c\u53ef\u4ee5\u53c2\u8003\u524d\u7aef\u7684\u8c03\u7528\n",(0,r.kt)("img",{alt:"usepreview",src:n(7420).Z,width:"1280",height:"667"})),(0,r.kt)("h3",{id:"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570"},"\u786e\u8ba4\u63a5\u53e3\u53c2\u6570"),(0,r.kt)("p",null,"\u63a5\u53e3\u53ef\u4ee5\u53c2\u8003\u5728github\u4e0a\u7684\u5f00\u6e90\u9879\u76ee\u7684swagger\u63a5\u53e3\u6587\u6863\u3002"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"SQLE\u7684Swagger\u6587\u6863\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/actiontech/sqle/tree/main/sqle/docs"},"https://github.com/actiontech/sqle/tree/main/sqle/docs")),(0,r.kt)("li",{parentName:"ol"},"DMS\u7684Swagger\u6587\u6863\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/actiontech/dms/tree/main/api"},"https://github.com/actiontech/dms/tree/main/api"))),(0,r.kt)("p",null,"\u559c\u6b22\u7684\u8bdd\u53ef\u4ee5\u7ed9\u6211\u4eec\u4e00\u4e2aStar\u5462\uff01(\u25cf'\u25e1'\u25cf)"))}m.isMDXComponent=!0},1767:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/igcookie-47b314915384f520d957ab3de1c77d10.png"},8889:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/igpreview-cdd2c3cb139e438493ab22e5fcbbd147.png"},7420:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/usepreview-7f1853ee579cc40d8775075eace01832.png"}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.7d9f2d5a.js b/assets/js/935f2afb.ba453fe0.js similarity index 99% rename from assets/js/935f2afb.7d9f2d5a.js rename to assets/js/935f2afb.ba453fe0.js index 03b0dd59..4ba03348 100644 --- a/assets/js/935f2afb.7d9f2d5a.js +++ b/assets/js/935f2afb.ba453fe0.js @@ -1 +1 @@ -"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"v3","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u4ea7\u54c1\u4ecb\u7ecd","href":"/sqle-docs/docs/intro","docId":"intro"},{"type":"link","label":"\u5728\u7ebf\u4f53\u9a8c","href":"/sqle-docs/docs/online-demo","docId":"online-demo"},{"type":"category","label":"\u4ea7\u54c1\u652f\u6301","items":[{"type":"link","label":"\u529f\u80fd\u5bf9\u6bd4","href":"/sqle-docs/docs/support/compare","docId":"support/compare"},{"type":"link","label":"\u793e\u533a\u652f\u6301","href":"/sqle-docs/docs/support/community-support","docId":"support/community-support"},{"type":"link","label":"\u5546\u4e1a\u652f\u6301","href":"/sqle-docs/docs/support/commercial-support","docId":"support/commercial-support"}],"collapsed":true,"collapsible":true},{"type":"link","label":"\u5feb\u901f\u5f00\u59cb","href":"/sqle-docs/docs/quick-usage","docId":"quick-usage"},{"type":"category","label":"\u5b89\u88c5\u90e8\u7f72","items":[{"type":"link","label":"\u5b89\u88c5\u8bf4\u660e","href":"/sqle-docs/docs/deploy-manual/intro","docId":"deploy-manual/intro"},{"type":"link","label":"\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","href":"/sqle-docs/docs/deploy-manual/config","docId":"deploy-manual/config"},{"type":"link","label":"\u6e90\u7801\u5b89\u88c5","href":"/sqle-docs/docs/deploy-manual/source","docId":"deploy-manual/source"},{"type":"link","label":"RPM \u5b89\u88c5","href":"/sqle-docs/docs/deploy-manual/rpm","docId":"deploy-manual/rpm"},{"type":"link","label":"Docker\u90e8\u7f72","href":"/sqle-docs/docs/deploy-manual/Docker","docId":"deploy-manual/Docker"},{"type":"link","label":"Docker Compose \u90e8\u7f72","href":"/sqle-docs/docs/deploy-manual/DockerCompose","docId":"deploy-manual/DockerCompose"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7528\u6237\u624b\u518c","items":[{"type":"category","label":"\u9879\u76ee","items":[{"type":"link","label":"\u529f\u80fd\u4ecb\u7ecd","href":"/sqle-docs/docs/user-manual/project/intro","docId":"user-manual/project/intro"},{"type":"link","label":"\u521b\u5efa\u9879\u76ee\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/project_create","docId":"user-manual/project/project_create"},{"type":"link","label":"\u6570\u636e\u6e90\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/project/instance-manager","docId":"user-manual/project/instance-manager"},{"type":"link","label":"\u5916\u90e8\u6570\u636e\u6e90\u540c\u6b65\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/instance_syn","docId":"user-manual/project/instance_syn"},{"type":"link","label":"\u6210\u5458/\u6210\u5458\u7ec4\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/project/group_member","docId":"user-manual/project/group_member"},{"type":"link","label":"\u5ba1\u6838\u89c4\u5219\u6a21\u677f","href":"/sqle-docs/docs/user-manual/project/rule-template-manager","docId":"user-manual/project/rule-template-manager"},{"type":"link","label":"\u5ba1\u6838\u6d41\u7a0b\u6a21\u677f","href":"/sqle-docs/docs/user-manual/project/workflow-template-manager","docId":"user-manual/project/workflow-template-manager"},{"type":"link","label":"\u767d\u540d\u5355\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/project/whitelist-manager","docId":"user-manual/project/whitelist-manager"},{"type":"link","label":"\u64cd\u4f5c\u8bb0\u5f55","href":"/sqle-docs/docs/user-manual/project/operation_records","docId":"user-manual/project/operation_records"},{"type":"link","label":"SQL\u7ba1\u63a7","href":"/sqle-docs/docs/user-manual/project/sqlmanage","docId":"user-manual/project/sqlmanage"},{"type":"link","label":"SQL\u5ba1\u6838","href":"/sqle-docs/docs/user-manual/project/quick_audit","docId":"user-manual/project/quick_audit"},{"type":"category","label":"\u5de5\u5355","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/project/workflow/intro","docId":"user-manual/project/workflow/intro"},{"type":"link","label":"\u521b\u5efa\u5de5\u5355","href":"/sqle-docs/docs/user-manual/project/workflow/create-workflow","docId":"user-manual/project/workflow/create-workflow"},{"type":"link","label":"\u5ba1\u6838\u5de5\u5355","href":"/sqle-docs/docs/user-manual/project/workflow/audit-workflow","docId":"user-manual/project/workflow/audit-workflow"},{"type":"link","label":"\u4e0a\u7ebf\u5de5\u5355","href":"/sqle-docs/docs/user-manual/project/workflow/exec-workflow","docId":"user-manual/project/workflow/exec-workflow"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u626b\u63cf\u4efb\u52a1","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/project/audit_task/intro","docId":"user-manual/project/audit_task/intro"},{"type":"link","label":"\u5e93\u8868\u5143\u6570\u636e","href":"/sqle-docs/docs/user-manual/project/audit_task/metadata_audit","docId":"user-manual/project/audit_task/metadata_audit"},{"type":"link","label":"\u6162\u65e5\u5fd7","href":"/sqle-docs/docs/user-manual/project/audit_task/slowlog_audit","docId":"user-manual/project/audit_task/slowlog_audit"},{"type":"link","label":"\u4f1a\u8bddSQL\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/processlist_audit","docId":"user-manual/project/audit_task/processlist_audit"},{"type":"link","label":"\u767e\u5ea6\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/baiduyunrds","docId":"user-manual/project/audit_task/baiduyunrds"},{"type":"link","label":"\u534e\u4e3a\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/huaweiyunrds","docId":"user-manual/project/audit_task/huaweiyunrds"},{"type":"link","label":"MyBatis\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/mybatis","docId":"user-manual/project/audit_task/mybatis"},{"type":"link","label":"SQL\u6587\u4ef6\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/SQLfile_audit","docId":"user-manual/project/audit_task/SQLfile_audit"},{"type":"link","label":"\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/audit_task/java_application_audit","docId":"user-manual/project/audit_task/java_application_audit"},{"type":"link","label":"Java\u63a2\u9488\u7248\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/audit_task/java_agent_audit","docId":"user-manual/project/audit_task/java_agent_audit"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7cfb\u7edf\u8bbe\u7f6e","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/sys-configuration/intro","docId":"user-manual/sys-configuration/intro"},{"type":"link","label":"\u767b\u5f55\u5bf9\u63a5","href":"/sqle-docs/docs/user-manual/sys-configuration/login_syn","docId":"user-manual/sys-configuration/login_syn"},{"type":"link","label":"\u6d88\u606f\u63a8\u9001","href":"/sqle-docs/docs/user-manual/sys-configuration/message_syn","docId":"user-manual/sys-configuration/message_syn"},{"type":"link","label":"\u6d41\u7a0b\u5bf9\u63a5","href":"/sqle-docs/docs/user-manual/sys-configuration/process_syn","docId":"user-manual/sys-configuration/process_syn"},{"type":"link","label":"webhook\u914d\u7f6e","href":"/sqle-docs/docs/user-manual/sys-configuration/webhook","docId":"user-manual/sys-configuration/webhook"},{"type":"link","label":"\u5168\u5c40\u914d\u7f6e","href":"/sqle-docs/docs/user-manual/sys-configuration/configuration","docId":"user-manual/sys-configuration/configuration"},{"type":"link","label":"\u4e2a\u6027\u5316\u8bbe\u7f6e\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/sys-configuration/customize","docId":"user-manual/sys-configuration/customize"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5de5\u4f5c\u53f0","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/sql-workbench/introduction","docId":"user-manual/sql-workbench/introduction"},{"type":"link","label":"\u914d\u7f6e\u65b9\u6cd5","href":"/sqle-docs/docs/user-manual/sql-workbench/how-to-configure","docId":"user-manual/sql-workbench/how-to-configure"},{"type":"link","label":"\u4f7f\u7528\u5b9a\u5236\u5305\u5feb\u901f\u642d\u5efa\u73af\u5883","href":"/sqle-docs/docs/user-manual/sql-workbench/how-to-use","docId":"user-manual/sql-workbench/how-to-use"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7528\u6237\u7ba1\u7406","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/user-manager/intro","docId":"user-manual/user-manager/intro"},{"type":"link","label":"\u7528\u6237\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/user-manager/user","docId":"user-manual/user-manager/user"},{"type":"link","label":"\u89d2\u8272\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/user-manager/role","docId":"user-manual/user-manager/role"}],"collapsed":true,"collapsible":true},{"type":"link","label":"\u81ea\u5b9a\u4e49\u5ba1\u6838\u89c4\u5219","href":"/sqle-docs/docs/user-manual/customrule","docId":"user-manual/customrule"},{"type":"link","label":"IDEA\u5ba1\u6838\u63d2\u4ef6","href":"/sqle-docs/docs/user-manual/jetbrains","docId":"user-manual/jetbrains"},{"type":"link","label":"\u89c4\u5219\u77e5\u8bc6\u5e93","href":"/sqle-docs/docs/user-manual/knowledgebase","docId":"user-manual/knowledgebase"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5f00\u53d1\u624b\u518c","items":[{"type":"category","label":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/dev-manual/plugins/intro","docId":"dev-manual/plugins/intro"},{"type":"link","label":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528","href":"/sqle-docs/docs/dev-manual/plugins/howtouse","docId":"dev-manual/plugins/howtouse"},{"type":"link","label":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1","href":"/sqle-docs/docs/dev-manual/plugins/howtodev","docId":"dev-manual/plugins/howtodev"}],"collapsed":true,"collapsible":true},{"type":"category","label":"OpenAPI","items":[{"type":"link","label":"SQLE\u5982\u4f55\u9274\u6743","href":"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken","docId":"dev-manual/OpenAPI/dmstoken"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"FAQ","items":[{"type":"link","label":"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93","href":"/sqle-docs/docs/FAQ/whichdatabase","docId":"FAQ/whichdatabase"}],"collapsed":true,"collapsible":true}]},"docs":{"deploy-manual/config":{"id":"deploy-manual/config","title":"\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","description":"SQLE\u7684\u914d\u7f6e\u6587\u4ef6\u91c7\u7528yml\u7684\u683c\u5f0f\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f4d\u4e8eSQLE\u5b89\u88c5\u76ee\u5f55\u4e0b\uff0c\u8def\u5f84\u4e3a./etc/config.yml","sidebar":"tutorialSidebar"},"deploy-manual/Docker":{"id":"deploy-manual/Docker","title":"Docker\u90e8\u7f72","description":"Docker hub \u5730\u5740","sidebar":"tutorialSidebar"},"deploy-manual/DockerCompose":{"id":"deploy-manual/DockerCompose","title":"Docker Compose \u90e8\u7f72","description":"\u914d\u7f6e\u6587\u4ef6","sidebar":"tutorialSidebar"},"deploy-manual/intro":{"id":"deploy-manual/intro","title":"\u5b89\u88c5\u8bf4\u660e","description":"SQLE \u63d0\u4f9b\u4e86\u591a\u79cd\u5b89\u88c5\u90e8\u7f72\u7684\u65b9\u5f0f\uff0c\u7528\u6237\u53ef\u4ee5\u7ed3\u5408\u81ea\u5df1\u7684\u73af\u5883\u548c\u73b0\u72b6\u9009\u62e9\u3002\u521d\u6b21\u4f53\u9a8c\u6216\u8005\u6d4b\u8bd5\u4f7f\u7528\u7684\u8bdd\u5efa\u8bae\u4f7f\u7528docker-compose \u6216 docker \u5feb\u901f\u90e8\u7f72\u3002","sidebar":"tutorialSidebar"},"deploy-manual/rpm":{"id":"deploy-manual/rpm","title":"RPM \u5b89\u88c5","description":"\u73af\u5883\u51c6\u5907","sidebar":"tutorialSidebar"},"deploy-manual/source":{"id":"deploy-manual/source","title":"\u6e90\u7801\u5b89\u88c5","description":"\u73af\u5883\u51c6\u5907","sidebar":"tutorialSidebar"},"dev-manual/intro":{"id":"dev-manual/intro","title":"\u4ea7\u54c1\u67b6\u6784","description":""},"dev-manual/OpenAPI/dmstoken":{"id":"dev-manual/OpenAPI/dmstoken","title":"SQLE\u5982\u4f55\u9274\u6743","description":"\u672c\u6587\u6863\u65e8\u5728\u4ecb\u7ecd\u5982\u4f55\u5c06\u60a8\u7684\u5e94\u7528\u4e0e SQLE \u8fdb\u884c\u5bf9\u63a5\uff0c\u5c06 SQLE \u6210\u4e3a\u5e94\u7528\u751f\u6001\u4e2d\u7684\u4e00\u73af\uff0c\u5e76\u5229\u7528\u5176\u63d0\u4f9b\u7684 SQL \u5ba1\u6838\u548c\u667a\u80fd\u626b\u63cf\u7b49\u80fd\u529b\u3002\u5bf9\u63a5 SQLE \u662f SQLE \u793e\u533a\u4e2d\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\u3002\u4e3a\u4e86\u5e2e\u52a9\u5f00\u53d1\u8005\u987a\u5229\u5b8c\u6210\u5e94\u7528\u4e0e SQLE \u7684\u5bf9\u63a5\uff0c\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u5bf9\u63a5 SQLE \u7684\u57fa\u672c\u601d\u8def\uff0c\u5e76\u8bb0\u5f55\u4e86\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u7b54\u3002\u672c\u6587\u6863\u4e5f\u4f1a\u6301\u7eed\u66f4\u65b0\u3002\u5982\u679c\u60a8\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u652f\u6301\uff0c\u8bf7\u52a0\u5165 SQLE \u793e\u533a\u670d\u52a1\u7fa4\uff0c\u63d0\u51fa\u60a8\u7684\u9700\u6c42\uff0c\u6211\u4eec\u5c06\u7aed\u8bda\u4e3a\u60a8\u670d\u52a1\u3002\ud83d\udc49\u793e\u533a\u652f\u6301","sidebar":"tutorialSidebar"},"dev-manual/plugins/howtodev":{"id":"dev-manual/plugins/howtodev","title":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1","description":"\u5728\u672c\u7bc7\u6587\u6863\u4e2d\uff0c\u4f1a\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\uff0c\u5206\u4e3a\u5feb\u901f\u5f00\u59cb\u90e8\u5206\u548c\u8be6\u7ec6\u90e8\u5206\u3002","sidebar":"tutorialSidebar"},"dev-manual/plugins/howtouse":{"id":"dev-manual/plugins/howtouse","title":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528","description":"\u914d\u7f6e\u63d2\u4ef6","sidebar":"tutorialSidebar"},"dev-manual/plugins/intro":{"id":"dev-manual/plugins/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"SQLE \u4f7f\u7528 go-plugin \u6765\u5b9e\u73b0\u5ba1\u6838\u63d2\u4ef6\u5316\u3002\u63d2\u4ef6\u53ea\u9700\u5b9e\u73b0\u4e24\u4e2a\u63a5\u53e3\uff0c\u5373\u53ef\u5b9e\u73b0\u4e0e SQLE \u4e3b\u8fdb\u7a0b\u901a\u4fe1\uff08\u8be6\u60c5\u89c1\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1\uff09\u3002","sidebar":"tutorialSidebar"},"FAQ/intro":{"id":"FAQ/intro","title":"FAQ","description":"\u672c\u7ae0\u5c06\u9488\u5bf9\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u8fdb\u884c\u89e3\u7b54\u3002"},"FAQ/whichdatabase":{"id":"FAQ/whichdatabase","title":"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93","description":"|\u6570\u636e\u5e93\u7c7b\u578b|\u9a8c\u8bc1\u53ef\u7528\u7684\u7248\u672c|","sidebar":"tutorialSidebar"},"guide":{"id":"guide","title":"\u7528\u6237\u6307\u5357","description":"\u4ea7\u54c1\u6982\u8ff0"},"intro":{"id":"intro","title":"\u4ea7\u54c1\u4ecb\u7ecd","description":"SQLE \u662f\u7231\u53ef\u751f\u81ea\u4e3b\u7814\u53d1\u652f\u6301\u591a\u5143\u6570\u636e\u5e93\u7684 SQL \u8d28\u91cf\u7ba1\u7406\u5e73\u53f0\u3002\u5e94\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u4e0a\u7ebf\u53d1\u5e03\u3001\u751f\u4ea7\u8fd0\u884c\u9636\u6bb5\u7684 SQL \u8d28\u91cf\u6cbb\u7406\u3002\u901a\u8fc7 \u201c\u5efa\u7acb\u89c4\u8303\u3001\u4e8b\u524d\u63a7\u5236\u3001\u4e8b\u540e\u76d1\u7763\u3001\u6807\u51c6\u53d1\u5e03\u201d \u7684\u65b9\u5f0f\uff0c\u4e3a\u4f01\u4e1a\u63d0\u4f9b SQL \u5168\u751f\u547d\u5468\u671f\u8d28\u91cf\u7ba1\u63a7\u80fd\u529b\uff0c\u89c4\u907f\u4e1a\u52a1 SQL \u4e0d\u89c4\u8303\u5f15\u8d77\u7684\u751f\u4ea7\u4e8b\u6545\uff0c\u63d0\u9ad8\u4e1a\u52a1\u7a33\u5b9a\u6027\uff0c\u4e5f\u53ef\u63a8\u52a8\u4f01\u4e1a\u5185\u90e8\u5f00\u53d1\u89c4\u8303\u5feb\u901f\u843d\u5730\u3002","sidebar":"tutorialSidebar"},"online-demo":{"id":"online-demo","title":"\u5728\u7ebf\u4f53\u9a8c","description":"\u5730\u5740","sidebar":"tutorialSidebar"},"quick-usage":{"id":"quick-usage","title":"\u5feb\u901f\u5f00\u59cb","description":"\u672c\u6587\u7684\u76ee\u7684\u662f\u8ba9\u5927\u5bb6\u80fd\u5feb\u901f\u4f53\u9a8cSQLE\u7684\u57fa\u7840\u529f\u80fd\uff0c\u5e2e\u52a9\u5927\u5bb6\u5feb\u901f\u4e0a\u624bSQLE\u3002\u4e0b\u9762\u5c06\u6a21\u62df\u4e00\u4e2a\u7b80\u5355\u7684\u65e5\u5e38SQL\u4e0a\u7ebf\u573a\u666f\uff0c\u5f00\u53d1\u4eba\u5458\u63d0\u4ea4SQL\uff0cDBA\u8fdb\u884cSQL\u5ba1\u6838\u5e76\u4e0a\u7ebf\uff0c\u5927\u6982\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a","sidebar":"tutorialSidebar"},"SUMMARY":{"id":"SUMMARY","title":"Summary","description":"* \u4ea7\u54c1\u4ecb\u7ecd"},"support/commercial-support":{"id":"support/commercial-support","title":"\u5546\u4e1a\u652f\u6301","description":"\u5982\u679c\u60f3\u83b7\u5f97 SQLE \u7684\u5546\u4e1a\u652f\u6301, \u60a8\u53ef\u4ee5\u626b\u63cf\u4e0b\u65b9\u7684\u5fae\u4fe1\u626b\u63cf\u5c0f\u7a0b\u5e8f\u7801\uff0c\u8fdb\u884c\u5728\u7ebf\u54a8\u8be2\u9884\u7ea6\uff1a","sidebar":"tutorialSidebar"},"support/community-support":{"id":"support/community-support","title":"\u793e\u533a\u652f\u6301","description":"\u5fae\u4fe1\u6280\u672f\u4ea4\u6d41\u7fa4","sidebar":"tutorialSidebar"},"support/compare":{"id":"support/compare","title":"\u529f\u80fd\u5bf9\u6bd4","description":"\u793e\u533a\u7248\u53ca\u4f01\u4e1a\u7248\u529f\u80fd\u5bf9\u6bd4","sidebar":"tutorialSidebar"},"user-manual/customrule":{"id":"user-manual/customrule","title":"\u81ea\u5b9a\u4e49\u5ba1\u6838\u89c4\u5219","description":"\u4f7f\u7528\u573a\u666f","sidebar":"tutorialSidebar"},"user-manual/intro":{"id":"user-manual/intro","title":"\u7528\u6237\u624b\u518c","description":"\u5728\u7a0b\u5e8f\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u7528\u6237\u5373\u53ef\u901a\u8fc7 SQLE UI \uff08http10000\uff09\u8bbf\u95ee\uff0c\u4f7f\u7528SQLE\u5e73\u53f0\u63d0\u4f9b\u7684SQL\u5ba1\u6838\u529f\u80fd\u3002"},"user-manual/jetbrains":{"id":"user-manual/jetbrains","title":"IDEA\u5ba1\u6838\u63d2\u4ef6","description":"\u8be5\u9879\u76ee\u662fSQLE \u7684 IDEA\u5ba1\u6838\u63d2\u4ef6 \uff0c\u65e8\u5728\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5728SQL\u5f00\u53d1\u7684\u5404\u4e2a\u9636\u6bb5\u8fdb\u884c\u5b9e\u65f6\u81ea\u52a9\u5f0f\u7684\u9759\u6001SQL\u5ba1\u6838\uff0c\u5e76\u5f15\u5165SQL\u5f00\u53d1\u89c4\u8303\u3002","sidebar":"tutorialSidebar"},"user-manual/knowledgebase":{"id":"user-manual/knowledgebase","title":"\u89c4\u5219\u77e5\u8bc6\u5e93","description":"\u4f7f\u7528\u573a\u666f","sidebar":"tutorialSidebar"},"user-manual/project/analysis":{"id":"user-manual/project/analysis","title":"SQL\u5206\u6790","description":"SQL\u5206\u6790\u662f\u4ec0\u4e48"},"user-manual/project/audit_task/baiduyunrds":{"id":"user-manual/project/audit_task/baiduyunrds","title":"\u767e\u5ea6\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5728SQLE\u5e73\u53f0\u76d1\u7ba1\u767e\u5ea6\u4e91RDS\u5b9e\u4f8b\u4e0a\u4ea7\u751f\u7684\u6162SQL\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/huaweiyunrds":{"id":"user-manual/project/audit_task/huaweiyunrds","title":"\u534e\u4e3a\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u901a\u8fc7\u534e\u4e3a\u4e91SQLE\u5e73\u53f0\u76d1\u7ba1\u534e\u4e3a\u4e91RDS\u5b9e\u4f8b\u4e0a\u4ea7\u751f\u7684\u6162SQL\uff0c\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5206\u6790\u548c\u5ba1\u6838\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/intro":{"id":"user-manual/project/audit_task/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u80cc\u666f","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/java_agent_audit":{"id":"user-manual/project/audit_task/java_agent_audit","title":"Java\u63a2\u9488\u7248\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5229\u7528SQLE\u5e73\u53f0\u6293\u53d6java\u5e94\u7528\u4e2d\u7684SQL\uff0c\u9009\u53d6\u7684\u4f8b\u5b50\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ee\u5377\u8c03\u67e5java\u5e94\u7528\uff0c\u67b6\u6784\u7b80\u5355\uff0c\u4e0a\u624b\u76f8\u5bf9\u5bb9\u6613\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/java_application_audit":{"id":"user-manual/project/audit_task/java_application_audit","title":"\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5229\u7528SQLE\u5e73\u53f0\u6293\u53d6JAVA\u5e94\u7528\u4e2d\u7684SQL\uff0c\u9009\u53d6\u7684\u4f8b\u5b50\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ee\u5377\u8c03\u67e5java\u5e94\u7528\uff0c\u67b6\u6784\u7b80\u5355\uff0c\u4e0a\u624b\u76f8\u5bf9\u5bb9\u6613\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/metadata_audit":{"id":"user-manual/project/audit_task/metadata_audit","title":"\u5e93\u8868\u5143\u6570\u636e","description":"\u672c\u8282\u4ecb\u7ecd\u5e93\u8868\u5143\u6570\u636e\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u3001\u4ee5\u53ca\u5982\u4f55\u521b\u5efa\u5e93\u8868\u5143\u6570\u636e\u7684\u626b\u63cf\u4efb\u52a1\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/mybatis":{"id":"user-manual/project/audit_task/mybatis","title":"MyBatis\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecdMyBatis\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u53ca\u914d\u7f6e\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/processlist_audit":{"id":"user-manual/project/audit_task/processlist_audit","title":"\u4f1a\u8bddSQL\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5bf9MySQL\u8fdb\u884c\u4e2d\u7684\u4f1a\u8bddSQL\u8fdb\u884c\u76d1\u7763\u53ca\u5ba1\u6838\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/slowlog_audit":{"id":"user-manual/project/audit_task/slowlog_audit","title":"\u6162\u65e5\u5fd7","description":"\u672c\u8282\u4ecb\u7ecd\u6162\u65e5\u5fd7\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u3001\u4ee5\u53ca\u5982\u4f55\u521b\u5efa\u6162\u65e5\u5fd7\u626b\u63cf\u4efb\u52a1\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/SQLfile_audit":{"id":"user-manual/project/audit_task/SQLfile_audit","title":"SQL\u6587\u4ef6\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecdSQL\u6587\u4ef6\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u53ca\u914d\u7f6e\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/topsql":{"id":"user-manual/project/audit_task/topsql","title":"TopSQL","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55"},"user-manual/project/data_access_control/authorization_list":{"id":"user-manual/project/data_access_control/authorization_list","title":"\u6388\u6743\u6e05\u5355","description":"\u901a\u8fc7\u7edf\u4e00\u5206\u914d\u6307\u5b9a\u6743\u9650\u64cd\u4f5c\u7528\u6237\uff0c\u907f\u514d\u51fa\u73b0\u56e0\u4e1a\u52a1\u591a\u5bfc\u81f4\u6743\u9650\u7ba1\u7406\u5206\u6563\u7684\u56f0\u5883\uff0c\u540c\u65f6\u8ffd\u6eaf\u6743\u9650\u53d1\u653e\u539f\u56e0\u3002"},"user-manual/project/data_access_control/intro":{"id":"user-manual/project/data_access_control/intro","title":"intro","description":"\u5e73\u53f0\u901a\u8fc7\u6743\u9650\u63a7\u5236\uff0c\u6765\u5b9e\u73b0\u6570\u636e\u5b89\u5168\u3002"},"user-manual/project/data_access_control/permission_template":{"id":"user-manual/project/data_access_control/permission_template","title":"\u6743\u9650\u6a21\u677f","description":"\u6743\u9650\u6a21\u677f\u652f\u6301\u7075\u6d3b\u5206\u7ec4\uff0c\u6309\u96c6\u5408\u7ec4\u7ec7\u6743\u9650\u6a21\u677f\uff0c\u4ee5\u51cf\u5c11\u91cd\u590d\u5206\u914d\u76f8\u540c\u6743\u9650\u7684\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u6743\u9650\u7ba1\u7406\u6548\u7387\u3002"},"user-manual/project/group_member":{"id":"user-manual/project/group_member","title":"\u6210\u5458/\u6210\u5458\u7ec4\u7ba1\u7406","description":"\u672c\u6587\u4ecb\u7ecd\u9879\u76ee\u5185\u6dfb\u52a0\u6210\u5458\u3001\u6210\u5458\u7ec4\u7684\u6b65\u9aa4\uff0c\u4ee5\u53ca\u5176\u4ed6\u7ba1\u7406\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"},"user-manual/project/instance_syn":{"id":"user-manual/project/instance_syn","title":"\u5916\u90e8\u6570\u636e\u6e90\u540c\u6b65\u3010\u4f01\u4e1a\u7248\u3011","description":"SQLE\u652f\u6301\u4ece\u5176\u4ed6\u5e73\u53f0\u5bfc\u5165\u6570\u636e\u6e90\u7684\u529f\u80fd\uff0c\u65b9\u4fbf\u7528\u6237\u63a5\u5165\u5916\u90e8\u5e73\u53f0\u7684\u6570\u636e\u6e90\uff0c\u76ee\u524d\u5df2\u5b9e\u73b0\u5bf9\u63a5\u7231\u53ef\u751f\u5546\u4e1a\u4ea7\u54c1\u201c\u4e91\u6811\xb7DMP\uff1a\u6570\u636e\u5e93\u96c6\u7fa4\u7ba1\u7406\u5e73\u53f0\u201d\u3002","sidebar":"tutorialSidebar"},"user-manual/project/instance-manager":{"id":"user-manual/project/instance-manager","title":"\u6570\u636e\u6e90\u7ba1\u7406","description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u8fdb\u884c\u6570\u636e\u6e90\u7ba1\u7406\uff0c\u5305\u62ec\u6570\u636e\u6e90\u7684\u589e\u52a0\u3001\u5220\u9664\u3001\u7f16\u8f91\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"},"user-manual/project/intro":{"id":"user-manual/project/intro","title":"\u529f\u80fd\u4ecb\u7ecd","description":"\u81ea2.22.11.0\u7248\u672c\u8d77\uff0c\u5e73\u53f0\u5f15\u5165\u9879\u76ee\u7ba1\u7406\u6982\u5ff5\uff0c\u4e0eSQL\u5ba1\u6838\u76f8\u5173\u7684\u8d44\u6e90\u5747\u4ee5\u9879\u76ee\u7684\u5f62\u5f0f\u8fdb\u884c\u8d44\u6e90\u9694\u79bb\u3002\u521b\u5efa\u5de5\u5355\u524d\uff0c\u9700\u8981\u7531\u9879\u76ee\u7ba1\u7406\u5458\u8bbe\u7f6e\u597d\u9879\u76ee\u5185\u90e8\u5fc5\u8981\u7684\u8d44\u6e90\u73af\u5883\uff0c\u5305\u62ec\u9879\u76ee\u4f7f\u7528\u7684\u6570\u636e\u6e90\u3001\u7528\u6237\u3001\u6d41\u7a0b\u6a21\u677f\u3001\u89c4\u5219\u6a21\u677f\u3001\u767d\u540d\u5355\u4fe1\u606f\u7b49\uff0c\u968f\u540e\uff0c\u9879\u76ee\u6210\u5458\u624d\u53ef\u5728\u9879\u76ee\u5185\u63d0\u4ea4\u5de5\u5355\u5e76\u5ba1\u6838\u4e0a\u7ebf\uff0c\u6216\u8bbe\u7f6e\u667a\u80fd\u626b\u63cf\u4efb\u52a1\u3002","sidebar":"tutorialSidebar"},"user-manual/project/operation_records":{"id":"user-manual/project/operation_records","title":"\u64cd\u4f5c\u8bb0\u5f55","description":"\u4f7f\u7528\u573a\u666f","sidebar":"tutorialSidebar"},"user-manual/project/project_create":{"id":"user-manual/project/project_create","title":"\u521b\u5efa\u9879\u76ee\u3010\u4f01\u4e1a\u7248\u3011","description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u5728SQLE\u5e73\u53f0\u521b\u5efa\u9879\u76ee\u3002","sidebar":"tutorialSidebar"},"user-manual/project/quick_audit":{"id":"user-manual/project/quick_audit","title":"SQL\u5ba1\u6838","description":"\u672c\u6587\u4ecb\u7ecd\u5e73\u53f0\u7684SQL\u5ba1\u6838\u529f\u80fd\uff0c\u8be5\u529f\u80fd\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5ba1\u6838SQL\u5e76\u4e86\u89e3\u4f18\u5316\u5efa\u8bae\u3002","sidebar":"tutorialSidebar"},"user-manual/project/rule-template-manager":{"id":"user-manual/project/rule-template-manager","title":"\u5ba1\u6838\u89c4\u5219\u6a21\u677f","description":"\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u7ba1\u7406\u9879\u76ee\u4e2d\u7684\u5ba1\u6838\u89c4\u5219\u6a21\u677f\u3002","sidebar":"tutorialSidebar"},"user-manual/project/sqlmanage":{"id":"user-manual/project/sqlmanage","title":"SQL\u7ba1\u63a7","description":"SQL\u7ba1\u63a7\u9875\u9762\u96c6\u4e2d\u4e86\u7528\u6237\u5728SQL\u5ba1\u6838\u548c\u626b\u63cf\u4efb\u52a1\u4e2d\u751f\u6210\u7684SQL\uff0c\u65b9\u4fbf\u8fdb\u884c\u96c6\u4e2d\u7684\u7ba1\u7406\u3002\u7528\u6237\u53ef\u4ee5\u5feb\u901f\u53d1\u73b0\u5ba1\u6838\u51fa\u95ee\u9898\u7684SQL\uff0c\u5e76\u5c06\u5176\u5206\u914d\u7ed9\u5176\u4ed6\u6210\u5458\u5904\u7406\uff0c\u6216\u5c06\u4e0d\u5173\u5fc3\u7684SQL\u8bbe\u4e3a\u5ffd\u7565\u72b6\u6001\uff0c\u4ece\u800c\u5b9e\u73b0\u9ad8\u6548\u7684SQL\u7ba1\u7406\u3002","sidebar":"tutorialSidebar"},"user-manual/project/whitelist-manager":{"id":"user-manual/project/whitelist-manager","title":"\u767d\u540d\u5355\u7ba1\u7406","description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u589e\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u9879\u76ee\u4e2d\u7684\u767d\u540d\u5355\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow-template-manager":{"id":"user-manual/project/workflow-template-manager","title":"\u5ba1\u6838\u6d41\u7a0b\u6a21\u677f","description":"\u672c\u6587\u4ecb\u7ecd\u9879\u76ee\u4e2d\u7684\u5ba1\u6838\u6d41\u7a0b\u6a21\u677f\u7ba1\u7406\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow/audit-workflow":{"id":"user-manual/project/workflow/audit-workflow","title":"\u5ba1\u6838\u5de5\u5355","description":"\u5ba1\u6838\u5de5\u5355\u5305\u542b\u4e24\u90e8\u5206","sidebar":"tutorialSidebar"},"user-manual/project/workflow/create-workflow":{"id":"user-manual/project/workflow/create-workflow","title":"\u521b\u5efa\u5de5\u5355","description":"\u5de5\u5355\u662fSQLE\u63d0\u4f9b\u7684\u5728\u7ebf\u5316SQL\u4e0a\u7ebf\u65b9\u5f0f\u3002\u7814\u53d1\u4eba\u5458\u53ef\u901a\u8fc7\u521b\u5efa\u5de5\u5355\uff0c\u63d0\u8bf7\u9700\u8981\u5ba1\u6279\u7684SQL\u8bed\u53e5\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow/exec-workflow":{"id":"user-manual/project/workflow/exec-workflow","title":"\u4e0a\u7ebf\u5de5\u5355","description":"\u672c\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u7528\u6237\u5982\u4f55\u8fdb\u884c\u4e0a\u7ebf\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow/intro":{"id":"user-manual/project/workflow/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u5f88\u591a\u516c\u53f8\u901a\u5e38\u8bbe\u6709 DBA\uff08Database administrator\uff09 \u8fd9\u4e2a\u804c\u4f4d\uff0c\u4ed6\u4eec\u8d1f\u8d23\u5728\u7cfb\u7edf\u4e0a\u8fd0\u884c\u6570\u636e\u5e93\uff0c\u6267\u884c\u5907\u4efd\uff0c\u6267\u884c\u5b89\u5168\u7b56\u7565\u7b49\u65e5\u5e38\u6570\u636e\u5e93\u8fd0\u7ef4\u7684\u5de5\u4f5c\u3002\u5176\u4e2d\uff0cDBA\u4e00\u9879\u91cd\u8981\u7684\u5de5\u4f5c\u662f\u89c4\u8303\u7814\u53d1\u4eba\u5458\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u7684 SQL \u8bed\u53e5\u3002","sidebar":"tutorialSidebar"},"user-manual/sql-workbench/how-to-configure":{"id":"user-manual/sql-workbench/how-to-configure","title":"\u914d\u7f6e\u65b9\u6cd5","description":"\u5b89\u88c5CloudBeaver","sidebar":"tutorialSidebar"},"user-manual/sql-workbench/how-to-quick-deploy":{"id":"user-manual/sql-workbench/how-to-quick-deploy","title":"\u4f7f\u7528\u5b9a\u5236\u5305\u5feb\u901f\u642d\u5efa\u73af\u5883","description":"SQLE\u5728\u539f\u6709CloudBeaver release222_0 \u5206\u652f\u7684\u57fa\u7840\u4e0a, \u589e\u52a0\u4e86\u5bf9OceanBase \u548c TiDB \u7684\u652f\u6301, \u7528\u6237\u65e0\u9700\u518d\u624b\u52a8\u914d\u7f6e\u73af\u5883\uff0c\u53ef\u76f4\u63a5\u4f7f\u7528SQL\u5de5\u4f5c\u53f0\u529f\u80fd\u3002"},"user-manual/sql-workbench/how-to-use":{"id":"user-manual/sql-workbench/how-to-use","title":"\u4f7f\u7528\u5b9a\u5236\u5305\u5feb\u901f\u642d\u5efa\u73af\u5883","description":"SQLE\u5728\u539f\u6709CloudBeaver release222_0 \u5206\u652f\u7684\u57fa\u7840\u4e0a, \u589e\u52a0\u4e86\u5bf9OceanBase \u548c TiDB \u7684\u652f\u6301, \u7528\u6237\u65e0\u9700\u518d\u624b\u52a8\u914d\u7f6e\u73af\u5883\uff0c\u53ef\u76f4\u63a5\u4f7f\u7528SQL\u5de5\u4f5c\u53f0\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"user-manual/sql-workbench/introduction":{"id":"user-manual/sql-workbench/introduction","title":"\u529f\u80fd\u8bf4\u660e","description":"CloudBeaver Community \u662f\u4e00\u4e2a\u5f00\u6e90\u7684 Web \u6570\u636e\u5e93\u53ef\u89c6\u5316\u7ba1\u7406\u5de5\u5177\uff0c\u652f\u6301 PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, DB2, Firebird, H2, Trino \u7b49\u6570\u636e\u5e93\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/configuration":{"id":"user-manual/sys-configuration/configuration","title":"\u5168\u5c40\u914d\u7f6e","description":"SQLE\u652f\u6301\u7ba1\u7406\u5458\u5bf9\u5e73\u53f0\u57fa\u7840\u914d\u7f6e\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u76ee\u524d\u652f\u6301\u4fee\u6539\u7684\u914d\u7f6e\u9879\u5305\u62ec\uff1a","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/customize":{"id":"user-manual/sys-configuration/customize","title":"\u4e2a\u6027\u5316\u8bbe\u7f6e\u3010\u4f01\u4e1a\u7248\u3011","description":"SQLE\u652f\u6301\u5bf9\u7f51\u7ad9logo\u53ca\u6807\u9898\u8fdb\u884c\u81ea\u5b9a\u4e49\u8bbe\u7f6e\uff0c\u6ee1\u8db3\u4f01\u4e1a\u7528\u6237\u7684\u4e2a\u6027\u5316\u9700\u6c42\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/intro":{"id":"user-manual/sys-configuration/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u7cfb\u7edf\u8bbe\u7f6e\u4e2d\u53ef\u914d\u7f6e\u7684\u5185\u5bb9\u5305\u62ec\u5168\u5c40\u914d\u7f6e\u3001\u767b\u5f55\u5bf9\u63a5\u3001\u6d41\u7a0b\u5bf9\u63a5\u3001\u6d88\u606f\u63a8\u9001\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/login_syn":{"id":"user-manual/sys-configuration/login_syn","title":"\u767b\u5f55\u5bf9\u63a5","description":"\u5f53\u524d\u767b\u5f55\u5bf9\u63a5\u5df2\u5b9e\u73b0LDAP\u65b9\u5f0f\u53caOauth2.0\u65b9\u5f0f","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/message_syn":{"id":"user-manual/sys-configuration/message_syn","title":"\u6d88\u606f\u63a8\u9001","description":"\u5f53\u524d\u652f\u6301\u5c06\u5de5\u5355\u72b6\u6001\u53d8\u66f4\u540c\u6b65\u81f3\u90ae\u7bb1\u3001\u4f01\u4e1a\u5fae\u4fe1\u3001\u98de\u4e66\u3001Webhook\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/process_syn":{"id":"user-manual/sys-configuration/process_syn","title":"\u6d41\u7a0b\u5bf9\u63a5","description":"\u901a\u8fc7\u6d41\u7a0b\u5bf9\u63a5\u529f\u80fd\uff0c\u7528\u6237\u53ef\u4ee5\u5c06SQLE\u5e73\u53f0\u7684\u5de5\u5355\u5ba1\u6279\u64cd\u4f5c\u5bf9\u63a5\u5230\u6307\u5b9a\u7684\u5e73\u53f0\uff0c\u4f7f\u7528\u6237\u80fd\u591f\u5728\u8be5\u5e73\u53f0\u4e0a\u5b8c\u6210\u5de5\u5355\u5ba1\u6838\u548c\u4e0a\u7ebf\u64cd\u4f5c\uff0c\u907f\u514d\u5728\u591a\u4e2a\u5e73\u53f0\u4e4b\u95f4\u5207\u6362\u3002\u76ee\u524d\u6211\u4eec\u652f\u6301\u9489\u9489\u548c\u98de\u4e66\u5ba1\u6279\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/webhook":{"id":"user-manual/sys-configuration/webhook","title":"webhook\u914d\u7f6e","description":"Webhook\u662f\u7528\u6237\u5b9a\u4e49\u7684\u81ea\u5b9a\u4e49HTTP\u56de\u8c03\u3002\u5b83\u4eec\u901a\u5e38\u7531\u4e8b\u4ef6\u89e6\u53d1\uff0c\u4f8b\u5982SQLE\u4e2d\u5b58\u5728\u5de5\u5355\u72b6\u6001\u7684\u53d8\u5316\uff0c\u5219\u4f1a\u81ea\u52a8\u5411\u7528\u6237\u914d\u7f6e\u7684webhook URL\u53d1\u9001HTTP\u8bf7\u6c42\u3002","sidebar":"tutorialSidebar"},"user-manual/user-manager/intro":{"id":"user-manual/user-manager/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u7528\u6237\u4e2d\u5fc3\u5305\u542b\u7528\u6237\u7ba1\u7406\u3001\u89d2\u8272\u7ba1\u7406\u53ca\u64cd\u4f5c\u6743\u9650\u5217\u8868\uff0c\u7531\u5e73\u53f0\u7ba1\u7406\u5458\u64cd\u4f5c\uff0c\u6d89\u53ca\u7528\u6237\u53ca\u89d2\u8272\u6743\u9650\u7684\u914d\u7f6e\u3002","sidebar":"tutorialSidebar"},"user-manual/user-manager/role":{"id":"user-manual/user-manager/role","title":"\u89d2\u8272\u7ba1\u7406","description":"\u5f53\u9700\u8981\u4e3a\u7528\u6237\u8bbe\u7f6e\u52a8\u4f5c\u6743\u9650\u65f6\uff0c\u53ef\u4f7f\u7528\u89d2\u8272\u7ba1\u7406\u914d\u7f6e\u52a8\u4f5c\u7ec4\u5408\u3002","sidebar":"tutorialSidebar"},"user-manual/user-manager/user":{"id":"user-manual/user-manager/user","title":"\u7528\u6237\u7ba1\u7406","description":"\u5f53\u9700\u8981\u521b\u5efa\u65b0\u7684\u7528\u6237\uff0c\u6216\u9700\u8981\u7531\u7ba1\u7406\u5458\u4fee\u6539\u7528\u6237\u57fa\u672c\u4fe1\u606f\u65f6\uff0c\u53ef\u4ee5\u8fdb\u884c\u7528\u6237\u7ba1\u7406\u7684\u76f8\u5173\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunksqle_docs=self.webpackChunksqle_docs||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"v3","banner":null,"badge":true,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u4ea7\u54c1\u4ecb\u7ecd","href":"/sqle-docs/docs/intro","docId":"intro"},{"type":"link","label":"\u5728\u7ebf\u4f53\u9a8c","href":"/sqle-docs/docs/online-demo","docId":"online-demo"},{"type":"category","label":"\u4ea7\u54c1\u652f\u6301","items":[{"type":"link","label":"\u529f\u80fd\u5bf9\u6bd4","href":"/sqle-docs/docs/support/compare","docId":"support/compare"},{"type":"link","label":"\u793e\u533a\u652f\u6301","href":"/sqle-docs/docs/support/community-support","docId":"support/community-support"},{"type":"link","label":"\u5546\u4e1a\u652f\u6301","href":"/sqle-docs/docs/support/commercial-support","docId":"support/commercial-support"}],"collapsed":true,"collapsible":true},{"type":"link","label":"\u5feb\u901f\u5f00\u59cb","href":"/sqle-docs/docs/quick-usage","docId":"quick-usage"},{"type":"category","label":"\u5b89\u88c5\u90e8\u7f72","items":[{"type":"link","label":"\u5b89\u88c5\u8bf4\u660e","href":"/sqle-docs/docs/deploy-manual/intro","docId":"deploy-manual/intro"},{"type":"link","label":"\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","href":"/sqle-docs/docs/deploy-manual/config","docId":"deploy-manual/config"},{"type":"link","label":"\u6e90\u7801\u5b89\u88c5","href":"/sqle-docs/docs/deploy-manual/source","docId":"deploy-manual/source"},{"type":"link","label":"RPM \u5b89\u88c5","href":"/sqle-docs/docs/deploy-manual/rpm","docId":"deploy-manual/rpm"},{"type":"link","label":"Docker\u90e8\u7f72","href":"/sqle-docs/docs/deploy-manual/Docker","docId":"deploy-manual/Docker"},{"type":"link","label":"Docker Compose \u90e8\u7f72","href":"/sqle-docs/docs/deploy-manual/DockerCompose","docId":"deploy-manual/DockerCompose"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7528\u6237\u624b\u518c","items":[{"type":"category","label":"\u9879\u76ee","items":[{"type":"link","label":"\u529f\u80fd\u4ecb\u7ecd","href":"/sqle-docs/docs/user-manual/project/intro","docId":"user-manual/project/intro"},{"type":"link","label":"\u521b\u5efa\u9879\u76ee\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/project_create","docId":"user-manual/project/project_create"},{"type":"link","label":"\u6570\u636e\u6e90\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/project/instance-manager","docId":"user-manual/project/instance-manager"},{"type":"link","label":"\u5916\u90e8\u6570\u636e\u6e90\u540c\u6b65\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/instance_syn","docId":"user-manual/project/instance_syn"},{"type":"link","label":"\u6210\u5458/\u6210\u5458\u7ec4\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/project/group_member","docId":"user-manual/project/group_member"},{"type":"link","label":"\u5ba1\u6838\u89c4\u5219\u6a21\u677f","href":"/sqle-docs/docs/user-manual/project/rule-template-manager","docId":"user-manual/project/rule-template-manager"},{"type":"link","label":"\u5ba1\u6838\u6d41\u7a0b\u6a21\u677f","href":"/sqle-docs/docs/user-manual/project/workflow-template-manager","docId":"user-manual/project/workflow-template-manager"},{"type":"link","label":"\u767d\u540d\u5355\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/project/whitelist-manager","docId":"user-manual/project/whitelist-manager"},{"type":"link","label":"\u64cd\u4f5c\u8bb0\u5f55","href":"/sqle-docs/docs/user-manual/project/operation_records","docId":"user-manual/project/operation_records"},{"type":"link","label":"SQL\u7ba1\u63a7","href":"/sqle-docs/docs/user-manual/project/sqlmanage","docId":"user-manual/project/sqlmanage"},{"type":"link","label":"SQL\u5ba1\u6838","href":"/sqle-docs/docs/user-manual/project/quick_audit","docId":"user-manual/project/quick_audit"},{"type":"category","label":"\u5de5\u5355","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/project/workflow/intro","docId":"user-manual/project/workflow/intro"},{"type":"link","label":"\u521b\u5efa\u5de5\u5355","href":"/sqle-docs/docs/user-manual/project/workflow/create-workflow","docId":"user-manual/project/workflow/create-workflow"},{"type":"link","label":"\u5ba1\u6838\u5de5\u5355","href":"/sqle-docs/docs/user-manual/project/workflow/audit-workflow","docId":"user-manual/project/workflow/audit-workflow"},{"type":"link","label":"\u4e0a\u7ebf\u5de5\u5355","href":"/sqle-docs/docs/user-manual/project/workflow/exec-workflow","docId":"user-manual/project/workflow/exec-workflow"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u626b\u63cf\u4efb\u52a1","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/project/audit_task/intro","docId":"user-manual/project/audit_task/intro"},{"type":"link","label":"\u5e93\u8868\u5143\u6570\u636e","href":"/sqle-docs/docs/user-manual/project/audit_task/metadata_audit","docId":"user-manual/project/audit_task/metadata_audit"},{"type":"link","label":"\u6162\u65e5\u5fd7","href":"/sqle-docs/docs/user-manual/project/audit_task/slowlog_audit","docId":"user-manual/project/audit_task/slowlog_audit"},{"type":"link","label":"\u4f1a\u8bddSQL\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/processlist_audit","docId":"user-manual/project/audit_task/processlist_audit"},{"type":"link","label":"\u767e\u5ea6\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/baiduyunrds","docId":"user-manual/project/audit_task/baiduyunrds"},{"type":"link","label":"\u534e\u4e3a\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/huaweiyunrds","docId":"user-manual/project/audit_task/huaweiyunrds"},{"type":"link","label":"MyBatis\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/mybatis","docId":"user-manual/project/audit_task/mybatis"},{"type":"link","label":"SQL\u6587\u4ef6\u626b\u63cf","href":"/sqle-docs/docs/user-manual/project/audit_task/SQLfile_audit","docId":"user-manual/project/audit_task/SQLfile_audit"},{"type":"link","label":"\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/audit_task/java_application_audit","docId":"user-manual/project/audit_task/java_application_audit"},{"type":"link","label":"Java\u63a2\u9488\u7248\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/project/audit_task/java_agent_audit","docId":"user-manual/project/audit_task/java_agent_audit"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7cfb\u7edf\u8bbe\u7f6e","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/sys-configuration/intro","docId":"user-manual/sys-configuration/intro"},{"type":"link","label":"\u767b\u5f55\u5bf9\u63a5","href":"/sqle-docs/docs/user-manual/sys-configuration/login_syn","docId":"user-manual/sys-configuration/login_syn"},{"type":"link","label":"\u6d88\u606f\u63a8\u9001","href":"/sqle-docs/docs/user-manual/sys-configuration/message_syn","docId":"user-manual/sys-configuration/message_syn"},{"type":"link","label":"\u6d41\u7a0b\u5bf9\u63a5","href":"/sqle-docs/docs/user-manual/sys-configuration/process_syn","docId":"user-manual/sys-configuration/process_syn"},{"type":"link","label":"webhook\u914d\u7f6e","href":"/sqle-docs/docs/user-manual/sys-configuration/webhook","docId":"user-manual/sys-configuration/webhook"},{"type":"link","label":"\u5168\u5c40\u914d\u7f6e","href":"/sqle-docs/docs/user-manual/sys-configuration/configuration","docId":"user-manual/sys-configuration/configuration"},{"type":"link","label":"\u4e2a\u6027\u5316\u8bbe\u7f6e\u3010\u4f01\u4e1a\u7248\u3011","href":"/sqle-docs/docs/user-manual/sys-configuration/customize","docId":"user-manual/sys-configuration/customize"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5de5\u4f5c\u53f0","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/sql-workbench/introduction","docId":"user-manual/sql-workbench/introduction"},{"type":"link","label":"\u914d\u7f6e\u65b9\u6cd5","href":"/sqle-docs/docs/user-manual/sql-workbench/how-to-configure","docId":"user-manual/sql-workbench/how-to-configure"},{"type":"link","label":"\u4f7f\u7528\u5b9a\u5236\u5305\u5feb\u901f\u642d\u5efa\u73af\u5883","href":"/sqle-docs/docs/user-manual/sql-workbench/how-to-use","docId":"user-manual/sql-workbench/how-to-use"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u7528\u6237\u7ba1\u7406","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/user-manual/user-manager/intro","docId":"user-manual/user-manager/intro"},{"type":"link","label":"\u7528\u6237\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/user-manager/user","docId":"user-manual/user-manager/user"},{"type":"link","label":"\u89d2\u8272\u7ba1\u7406","href":"/sqle-docs/docs/user-manual/user-manager/role","docId":"user-manual/user-manager/role"}],"collapsed":true,"collapsible":true},{"type":"link","label":"\u81ea\u5b9a\u4e49\u5ba1\u6838\u89c4\u5219","href":"/sqle-docs/docs/user-manual/customrule","docId":"user-manual/customrule"},{"type":"link","label":"IDEA\u5ba1\u6838\u63d2\u4ef6","href":"/sqle-docs/docs/user-manual/jetbrains","docId":"user-manual/jetbrains"},{"type":"link","label":"\u89c4\u5219\u77e5\u8bc6\u5e93","href":"/sqle-docs/docs/user-manual/knowledgebase","docId":"user-manual/knowledgebase"}],"collapsed":true,"collapsible":true},{"type":"category","label":"\u5f00\u53d1\u624b\u518c","items":[{"type":"category","label":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6","items":[{"type":"link","label":"\u529f\u80fd\u8bf4\u660e","href":"/sqle-docs/docs/dev-manual/plugins/intro","docId":"dev-manual/plugins/intro"},{"type":"link","label":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528","href":"/sqle-docs/docs/dev-manual/plugins/howtouse","docId":"dev-manual/plugins/howtouse"},{"type":"link","label":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1","href":"/sqle-docs/docs/dev-manual/plugins/howtodev","docId":"dev-manual/plugins/howtodev"}],"collapsed":true,"collapsible":true},{"type":"category","label":"OpenAPI","items":[{"type":"link","label":"\u5982\u4f55\u5bf9\u63a5SQLE","href":"/sqle-docs/docs/dev-manual/OpenAPI/dmstoken","docId":"dev-manual/OpenAPI/dmstoken"}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"FAQ","items":[{"type":"link","label":"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93","href":"/sqle-docs/docs/FAQ/whichdatabase","docId":"FAQ/whichdatabase"}],"collapsed":true,"collapsible":true}]},"docs":{"deploy-manual/config":{"id":"deploy-manual/config","title":"\u914d\u7f6e\u6587\u4ef6\u8bf4\u660e","description":"SQLE\u7684\u914d\u7f6e\u6587\u4ef6\u91c7\u7528yml\u7684\u683c\u5f0f\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u4f4d\u4e8eSQLE\u5b89\u88c5\u76ee\u5f55\u4e0b\uff0c\u8def\u5f84\u4e3a./etc/config.yml","sidebar":"tutorialSidebar"},"deploy-manual/Docker":{"id":"deploy-manual/Docker","title":"Docker\u90e8\u7f72","description":"Docker hub \u5730\u5740","sidebar":"tutorialSidebar"},"deploy-manual/DockerCompose":{"id":"deploy-manual/DockerCompose","title":"Docker Compose \u90e8\u7f72","description":"\u914d\u7f6e\u6587\u4ef6","sidebar":"tutorialSidebar"},"deploy-manual/intro":{"id":"deploy-manual/intro","title":"\u5b89\u88c5\u8bf4\u660e","description":"SQLE \u63d0\u4f9b\u4e86\u591a\u79cd\u5b89\u88c5\u90e8\u7f72\u7684\u65b9\u5f0f\uff0c\u7528\u6237\u53ef\u4ee5\u7ed3\u5408\u81ea\u5df1\u7684\u73af\u5883\u548c\u73b0\u72b6\u9009\u62e9\u3002\u521d\u6b21\u4f53\u9a8c\u6216\u8005\u6d4b\u8bd5\u4f7f\u7528\u7684\u8bdd\u5efa\u8bae\u4f7f\u7528docker-compose \u6216 docker \u5feb\u901f\u90e8\u7f72\u3002","sidebar":"tutorialSidebar"},"deploy-manual/rpm":{"id":"deploy-manual/rpm","title":"RPM \u5b89\u88c5","description":"\u73af\u5883\u51c6\u5907","sidebar":"tutorialSidebar"},"deploy-manual/source":{"id":"deploy-manual/source","title":"\u6e90\u7801\u5b89\u88c5","description":"\u73af\u5883\u51c6\u5907","sidebar":"tutorialSidebar"},"dev-manual/intro":{"id":"dev-manual/intro","title":"\u4ea7\u54c1\u67b6\u6784","description":""},"dev-manual/OpenAPI/dmstoken":{"id":"dev-manual/OpenAPI/dmstoken","title":"\u5982\u4f55\u5bf9\u63a5SQLE","description":"\u672c\u6587\u6863\u65e8\u5728\u4ecb\u7ecd\u5982\u4f55\u5c06\u60a8\u7684\u5e94\u7528\u4e0e SQLE \u8fdb\u884c\u5bf9\u63a5\uff0c\u5c06 SQLE \u6210\u4e3a\u5e94\u7528\u751f\u6001\u4e2d\u7684\u4e00\u73af\uff0c\u5e76\u5229\u7528\u5176\u63d0\u4f9b\u7684 SQL \u5ba1\u6838\u548c\u667a\u80fd\u626b\u63cf\u7b49\u80fd\u529b\u3002\u5bf9\u63a5 SQLE \u662f SQLE \u793e\u533a\u4e2d\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\u3002\u4e3a\u4e86\u5e2e\u52a9\u5f00\u53d1\u8005\u987a\u5229\u5b8c\u6210\u5e94\u7528\u4e0e SQLE \u7684\u5bf9\u63a5\uff0c\u672c\u6587\u6863\u63d0\u4f9b\u4e86\u5bf9\u63a5 SQLE \u7684\u57fa\u672c\u601d\u8def\uff0c\u5e76\u8bb0\u5f55\u4e86\u4e00\u4e9b\u5e38\u89c1\u95ee\u9898\u7684\u89e3\u7b54\u3002\u672c\u6587\u6863\u4e5f\u4f1a\u6301\u7eed\u66f4\u65b0\u3002\u5982\u679c\u60a8\u9700\u8981\u8fdb\u4e00\u6b65\u7684\u652f\u6301\uff0c\u8bf7\u52a0\u5165 SQLE \u793e\u533a\u670d\u52a1\u7fa4\uff0c\u63d0\u51fa\u60a8\u7684\u9700\u6c42\uff0c\u6211\u4eec\u5c06\u7aed\u8bda\u4e3a\u60a8\u670d\u52a1\u3002\ud83d\udc49\u793e\u533a\u652f\u6301","sidebar":"tutorialSidebar"},"dev-manual/plugins/howtodev":{"id":"dev-manual/plugins/howtodev","title":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1","description":"\u5728\u672c\u7bc7\u6587\u6863\u4e2d\uff0c\u4f1a\u4ecb\u7ecd\u5982\u4f55\u5f00\u53d1\u4e00\u4e2a\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\uff0c\u5206\u4e3a\u5feb\u901f\u5f00\u59cb\u90e8\u5206\u548c\u8be6\u7ec6\u90e8\u5206\u3002","sidebar":"tutorialSidebar"},"dev-manual/plugins/howtouse":{"id":"dev-manual/plugins/howtouse","title":"\u6570\u636e\u5e93\u5ba1\u6838\u63d2\u4ef6\u4f7f\u7528","description":"\u914d\u7f6e\u63d2\u4ef6","sidebar":"tutorialSidebar"},"dev-manual/plugins/intro":{"id":"dev-manual/plugins/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"SQLE \u4f7f\u7528 go-plugin \u6765\u5b9e\u73b0\u5ba1\u6838\u63d2\u4ef6\u5316\u3002\u63d2\u4ef6\u53ea\u9700\u5b9e\u73b0\u4e24\u4e2a\u63a5\u53e3\uff0c\u5373\u53ef\u5b9e\u73b0\u4e0e SQLE \u4e3b\u8fdb\u7a0b\u901a\u4fe1\uff08\u8be6\u60c5\u89c1\u5ba1\u6838\u63d2\u4ef6\u5f00\u53d1\uff09\u3002","sidebar":"tutorialSidebar"},"FAQ/intro":{"id":"FAQ/intro","title":"FAQ","description":"\u672c\u7ae0\u5c06\u9488\u5bf9\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\u8fdb\u884c\u89e3\u7b54\u3002"},"FAQ/whichdatabase":{"id":"FAQ/whichdatabase","title":"\u652f\u6301\u54ea\u4e9b\u6570\u636e\u5e93","description":"|\u6570\u636e\u5e93\u7c7b\u578b|\u9a8c\u8bc1\u53ef\u7528\u7684\u7248\u672c|","sidebar":"tutorialSidebar"},"guide":{"id":"guide","title":"\u7528\u6237\u6307\u5357","description":"\u4ea7\u54c1\u6982\u8ff0"},"intro":{"id":"intro","title":"\u4ea7\u54c1\u4ecb\u7ecd","description":"SQLE \u662f\u7231\u53ef\u751f\u81ea\u4e3b\u7814\u53d1\u652f\u6301\u591a\u5143\u6570\u636e\u5e93\u7684 SQL \u8d28\u91cf\u7ba1\u7406\u5e73\u53f0\u3002\u5e94\u7528\u4e8e\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u4e0a\u7ebf\u53d1\u5e03\u3001\u751f\u4ea7\u8fd0\u884c\u9636\u6bb5\u7684 SQL \u8d28\u91cf\u6cbb\u7406\u3002\u901a\u8fc7 \u201c\u5efa\u7acb\u89c4\u8303\u3001\u4e8b\u524d\u63a7\u5236\u3001\u4e8b\u540e\u76d1\u7763\u3001\u6807\u51c6\u53d1\u5e03\u201d \u7684\u65b9\u5f0f\uff0c\u4e3a\u4f01\u4e1a\u63d0\u4f9b SQL \u5168\u751f\u547d\u5468\u671f\u8d28\u91cf\u7ba1\u63a7\u80fd\u529b\uff0c\u89c4\u907f\u4e1a\u52a1 SQL \u4e0d\u89c4\u8303\u5f15\u8d77\u7684\u751f\u4ea7\u4e8b\u6545\uff0c\u63d0\u9ad8\u4e1a\u52a1\u7a33\u5b9a\u6027\uff0c\u4e5f\u53ef\u63a8\u52a8\u4f01\u4e1a\u5185\u90e8\u5f00\u53d1\u89c4\u8303\u5feb\u901f\u843d\u5730\u3002","sidebar":"tutorialSidebar"},"online-demo":{"id":"online-demo","title":"\u5728\u7ebf\u4f53\u9a8c","description":"\u5730\u5740","sidebar":"tutorialSidebar"},"quick-usage":{"id":"quick-usage","title":"\u5feb\u901f\u5f00\u59cb","description":"\u672c\u6587\u7684\u76ee\u7684\u662f\u8ba9\u5927\u5bb6\u80fd\u5feb\u901f\u4f53\u9a8cSQLE\u7684\u57fa\u7840\u529f\u80fd\uff0c\u5e2e\u52a9\u5927\u5bb6\u5feb\u901f\u4e0a\u624bSQLE\u3002\u4e0b\u9762\u5c06\u6a21\u62df\u4e00\u4e2a\u7b80\u5355\u7684\u65e5\u5e38SQL\u4e0a\u7ebf\u573a\u666f\uff0c\u5f00\u53d1\u4eba\u5458\u63d0\u4ea4SQL\uff0cDBA\u8fdb\u884cSQL\u5ba1\u6838\u5e76\u4e0a\u7ebf\uff0c\u5927\u6982\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a","sidebar":"tutorialSidebar"},"SUMMARY":{"id":"SUMMARY","title":"Summary","description":"* \u4ea7\u54c1\u4ecb\u7ecd"},"support/commercial-support":{"id":"support/commercial-support","title":"\u5546\u4e1a\u652f\u6301","description":"\u5982\u679c\u60f3\u83b7\u5f97 SQLE \u7684\u5546\u4e1a\u652f\u6301, \u60a8\u53ef\u4ee5\u626b\u63cf\u4e0b\u65b9\u7684\u5fae\u4fe1\u626b\u63cf\u5c0f\u7a0b\u5e8f\u7801\uff0c\u8fdb\u884c\u5728\u7ebf\u54a8\u8be2\u9884\u7ea6\uff1a","sidebar":"tutorialSidebar"},"support/community-support":{"id":"support/community-support","title":"\u793e\u533a\u652f\u6301","description":"\u5fae\u4fe1\u6280\u672f\u4ea4\u6d41\u7fa4","sidebar":"tutorialSidebar"},"support/compare":{"id":"support/compare","title":"\u529f\u80fd\u5bf9\u6bd4","description":"\u793e\u533a\u7248\u53ca\u4f01\u4e1a\u7248\u529f\u80fd\u5bf9\u6bd4","sidebar":"tutorialSidebar"},"user-manual/customrule":{"id":"user-manual/customrule","title":"\u81ea\u5b9a\u4e49\u5ba1\u6838\u89c4\u5219","description":"\u4f7f\u7528\u573a\u666f","sidebar":"tutorialSidebar"},"user-manual/intro":{"id":"user-manual/intro","title":"\u7528\u6237\u624b\u518c","description":"\u5728\u7a0b\u5e8f\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u7528\u6237\u5373\u53ef\u901a\u8fc7 SQLE UI \uff08http10000\uff09\u8bbf\u95ee\uff0c\u4f7f\u7528SQLE\u5e73\u53f0\u63d0\u4f9b\u7684SQL\u5ba1\u6838\u529f\u80fd\u3002"},"user-manual/jetbrains":{"id":"user-manual/jetbrains","title":"IDEA\u5ba1\u6838\u63d2\u4ef6","description":"\u8be5\u9879\u76ee\u662fSQLE \u7684 IDEA\u5ba1\u6838\u63d2\u4ef6 \uff0c\u65e8\u5728\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u5728SQL\u5f00\u53d1\u7684\u5404\u4e2a\u9636\u6bb5\u8fdb\u884c\u5b9e\u65f6\u81ea\u52a9\u5f0f\u7684\u9759\u6001SQL\u5ba1\u6838\uff0c\u5e76\u5f15\u5165SQL\u5f00\u53d1\u89c4\u8303\u3002","sidebar":"tutorialSidebar"},"user-manual/knowledgebase":{"id":"user-manual/knowledgebase","title":"\u89c4\u5219\u77e5\u8bc6\u5e93","description":"\u4f7f\u7528\u573a\u666f","sidebar":"tutorialSidebar"},"user-manual/project/analysis":{"id":"user-manual/project/analysis","title":"SQL\u5206\u6790","description":"SQL\u5206\u6790\u662f\u4ec0\u4e48"},"user-manual/project/audit_task/baiduyunrds":{"id":"user-manual/project/audit_task/baiduyunrds","title":"\u767e\u5ea6\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5728SQLE\u5e73\u53f0\u76d1\u7ba1\u767e\u5ea6\u4e91RDS\u5b9e\u4f8b\u4e0a\u4ea7\u751f\u7684\u6162SQL\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/huaweiyunrds":{"id":"user-manual/project/audit_task/huaweiyunrds","title":"\u534e\u4e3a\u4e91RDS\u6162\u65e5\u5fd7\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u901a\u8fc7\u534e\u4e3a\u4e91SQLE\u5e73\u53f0\u76d1\u7ba1\u534e\u4e3a\u4e91RDS\u5b9e\u4f8b\u4e0a\u4ea7\u751f\u7684\u6162SQL\uff0c\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5206\u6790\u548c\u5ba1\u6838\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/intro":{"id":"user-manual/project/audit_task/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u80cc\u666f","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/java_agent_audit":{"id":"user-manual/project/audit_task/java_agent_audit","title":"Java\u63a2\u9488\u7248\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5229\u7528SQLE\u5e73\u53f0\u6293\u53d6java\u5e94\u7528\u4e2d\u7684SQL\uff0c\u9009\u53d6\u7684\u4f8b\u5b50\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ee\u5377\u8c03\u67e5java\u5e94\u7528\uff0c\u67b6\u6784\u7b80\u5355\uff0c\u4e0a\u624b\u76f8\u5bf9\u5bb9\u6613\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/java_application_audit":{"id":"user-manual/project/audit_task/java_application_audit","title":"\u5e94\u7528\u7a0b\u5e8fSQL\u6293\u53d6\u3010\u4f01\u4e1a\u7248\u3011","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5229\u7528SQLE\u5e73\u53f0\u6293\u53d6JAVA\u5e94\u7528\u4e2d\u7684SQL\uff0c\u9009\u53d6\u7684\u4f8b\u5b50\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ee\u5377\u8c03\u67e5java\u5e94\u7528\uff0c\u67b6\u6784\u7b80\u5355\uff0c\u4e0a\u624b\u76f8\u5bf9\u5bb9\u6613\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/metadata_audit":{"id":"user-manual/project/audit_task/metadata_audit","title":"\u5e93\u8868\u5143\u6570\u636e","description":"\u672c\u8282\u4ecb\u7ecd\u5e93\u8868\u5143\u6570\u636e\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u3001\u4ee5\u53ca\u5982\u4f55\u521b\u5efa\u5e93\u8868\u5143\u6570\u636e\u7684\u626b\u63cf\u4efb\u52a1\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/mybatis":{"id":"user-manual/project/audit_task/mybatis","title":"MyBatis\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecdMyBatis\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u53ca\u914d\u7f6e\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/processlist_audit":{"id":"user-manual/project/audit_task/processlist_audit","title":"\u4f1a\u8bddSQL\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55\u5bf9MySQL\u8fdb\u884c\u4e2d\u7684\u4f1a\u8bddSQL\u8fdb\u884c\u76d1\u7763\u53ca\u5ba1\u6838\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/slowlog_audit":{"id":"user-manual/project/audit_task/slowlog_audit","title":"\u6162\u65e5\u5fd7","description":"\u672c\u8282\u4ecb\u7ecd\u6162\u65e5\u5fd7\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u3001\u4ee5\u53ca\u5982\u4f55\u521b\u5efa\u6162\u65e5\u5fd7\u626b\u63cf\u4efb\u52a1\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/SQLfile_audit":{"id":"user-manual/project/audit_task/SQLfile_audit","title":"SQL\u6587\u4ef6\u626b\u63cf","description":"\u672c\u8282\u4ecb\u7ecdSQL\u6587\u4ef6\u626b\u63cf\u7684\u5e94\u7528\u573a\u666f\u53ca\u914d\u7f6e\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"user-manual/project/audit_task/topsql":{"id":"user-manual/project/audit_task/topsql","title":"TopSQL","description":"\u672c\u8282\u4ecb\u7ecd\u5982\u4f55"},"user-manual/project/data_access_control/authorization_list":{"id":"user-manual/project/data_access_control/authorization_list","title":"\u6388\u6743\u6e05\u5355","description":"\u901a\u8fc7\u7edf\u4e00\u5206\u914d\u6307\u5b9a\u6743\u9650\u64cd\u4f5c\u7528\u6237\uff0c\u907f\u514d\u51fa\u73b0\u56e0\u4e1a\u52a1\u591a\u5bfc\u81f4\u6743\u9650\u7ba1\u7406\u5206\u6563\u7684\u56f0\u5883\uff0c\u540c\u65f6\u8ffd\u6eaf\u6743\u9650\u53d1\u653e\u539f\u56e0\u3002"},"user-manual/project/data_access_control/intro":{"id":"user-manual/project/data_access_control/intro","title":"intro","description":"\u5e73\u53f0\u901a\u8fc7\u6743\u9650\u63a7\u5236\uff0c\u6765\u5b9e\u73b0\u6570\u636e\u5b89\u5168\u3002"},"user-manual/project/data_access_control/permission_template":{"id":"user-manual/project/data_access_control/permission_template","title":"\u6743\u9650\u6a21\u677f","description":"\u6743\u9650\u6a21\u677f\u652f\u6301\u7075\u6d3b\u5206\u7ec4\uff0c\u6309\u96c6\u5408\u7ec4\u7ec7\u6743\u9650\u6a21\u677f\uff0c\u4ee5\u51cf\u5c11\u91cd\u590d\u5206\u914d\u76f8\u540c\u6743\u9650\u7684\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u6743\u9650\u7ba1\u7406\u6548\u7387\u3002"},"user-manual/project/group_member":{"id":"user-manual/project/group_member","title":"\u6210\u5458/\u6210\u5458\u7ec4\u7ba1\u7406","description":"\u672c\u6587\u4ecb\u7ecd\u9879\u76ee\u5185\u6dfb\u52a0\u6210\u5458\u3001\u6210\u5458\u7ec4\u7684\u6b65\u9aa4\uff0c\u4ee5\u53ca\u5176\u4ed6\u7ba1\u7406\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"},"user-manual/project/instance_syn":{"id":"user-manual/project/instance_syn","title":"\u5916\u90e8\u6570\u636e\u6e90\u540c\u6b65\u3010\u4f01\u4e1a\u7248\u3011","description":"SQLE\u652f\u6301\u4ece\u5176\u4ed6\u5e73\u53f0\u5bfc\u5165\u6570\u636e\u6e90\u7684\u529f\u80fd\uff0c\u65b9\u4fbf\u7528\u6237\u63a5\u5165\u5916\u90e8\u5e73\u53f0\u7684\u6570\u636e\u6e90\uff0c\u76ee\u524d\u5df2\u5b9e\u73b0\u5bf9\u63a5\u7231\u53ef\u751f\u5546\u4e1a\u4ea7\u54c1\u201c\u4e91\u6811\xb7DMP\uff1a\u6570\u636e\u5e93\u96c6\u7fa4\u7ba1\u7406\u5e73\u53f0\u201d\u3002","sidebar":"tutorialSidebar"},"user-manual/project/instance-manager":{"id":"user-manual/project/instance-manager","title":"\u6570\u636e\u6e90\u7ba1\u7406","description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u8fdb\u884c\u6570\u636e\u6e90\u7ba1\u7406\uff0c\u5305\u62ec\u6570\u636e\u6e90\u7684\u589e\u52a0\u3001\u5220\u9664\u3001\u7f16\u8f91\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"},"user-manual/project/intro":{"id":"user-manual/project/intro","title":"\u529f\u80fd\u4ecb\u7ecd","description":"\u81ea2.22.11.0\u7248\u672c\u8d77\uff0c\u5e73\u53f0\u5f15\u5165\u9879\u76ee\u7ba1\u7406\u6982\u5ff5\uff0c\u4e0eSQL\u5ba1\u6838\u76f8\u5173\u7684\u8d44\u6e90\u5747\u4ee5\u9879\u76ee\u7684\u5f62\u5f0f\u8fdb\u884c\u8d44\u6e90\u9694\u79bb\u3002\u521b\u5efa\u5de5\u5355\u524d\uff0c\u9700\u8981\u7531\u9879\u76ee\u7ba1\u7406\u5458\u8bbe\u7f6e\u597d\u9879\u76ee\u5185\u90e8\u5fc5\u8981\u7684\u8d44\u6e90\u73af\u5883\uff0c\u5305\u62ec\u9879\u76ee\u4f7f\u7528\u7684\u6570\u636e\u6e90\u3001\u7528\u6237\u3001\u6d41\u7a0b\u6a21\u677f\u3001\u89c4\u5219\u6a21\u677f\u3001\u767d\u540d\u5355\u4fe1\u606f\u7b49\uff0c\u968f\u540e\uff0c\u9879\u76ee\u6210\u5458\u624d\u53ef\u5728\u9879\u76ee\u5185\u63d0\u4ea4\u5de5\u5355\u5e76\u5ba1\u6838\u4e0a\u7ebf\uff0c\u6216\u8bbe\u7f6e\u667a\u80fd\u626b\u63cf\u4efb\u52a1\u3002","sidebar":"tutorialSidebar"},"user-manual/project/operation_records":{"id":"user-manual/project/operation_records","title":"\u64cd\u4f5c\u8bb0\u5f55","description":"\u4f7f\u7528\u573a\u666f","sidebar":"tutorialSidebar"},"user-manual/project/project_create":{"id":"user-manual/project/project_create","title":"\u521b\u5efa\u9879\u76ee\u3010\u4f01\u4e1a\u7248\u3011","description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u5728SQLE\u5e73\u53f0\u521b\u5efa\u9879\u76ee\u3002","sidebar":"tutorialSidebar"},"user-manual/project/quick_audit":{"id":"user-manual/project/quick_audit","title":"SQL\u5ba1\u6838","description":"\u672c\u6587\u4ecb\u7ecd\u5e73\u53f0\u7684SQL\u5ba1\u6838\u529f\u80fd\uff0c\u8be5\u529f\u80fd\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u5ba1\u6838SQL\u5e76\u4e86\u89e3\u4f18\u5316\u5efa\u8bae\u3002","sidebar":"tutorialSidebar"},"user-manual/project/rule-template-manager":{"id":"user-manual/project/rule-template-manager","title":"\u5ba1\u6838\u89c4\u5219\u6a21\u677f","description":"\u672c\u6587\u5c06\u4ecb\u7ecd\u5982\u4f55\u7ba1\u7406\u9879\u76ee\u4e2d\u7684\u5ba1\u6838\u89c4\u5219\u6a21\u677f\u3002","sidebar":"tutorialSidebar"},"user-manual/project/sqlmanage":{"id":"user-manual/project/sqlmanage","title":"SQL\u7ba1\u63a7","description":"SQL\u7ba1\u63a7\u9875\u9762\u96c6\u4e2d\u4e86\u7528\u6237\u5728SQL\u5ba1\u6838\u548c\u626b\u63cf\u4efb\u52a1\u4e2d\u751f\u6210\u7684SQL\uff0c\u65b9\u4fbf\u8fdb\u884c\u96c6\u4e2d\u7684\u7ba1\u7406\u3002\u7528\u6237\u53ef\u4ee5\u5feb\u901f\u53d1\u73b0\u5ba1\u6838\u51fa\u95ee\u9898\u7684SQL\uff0c\u5e76\u5c06\u5176\u5206\u914d\u7ed9\u5176\u4ed6\u6210\u5458\u5904\u7406\uff0c\u6216\u5c06\u4e0d\u5173\u5fc3\u7684SQL\u8bbe\u4e3a\u5ffd\u7565\u72b6\u6001\uff0c\u4ece\u800c\u5b9e\u73b0\u9ad8\u6548\u7684SQL\u7ba1\u7406\u3002","sidebar":"tutorialSidebar"},"user-manual/project/whitelist-manager":{"id":"user-manual/project/whitelist-manager","title":"\u767d\u540d\u5355\u7ba1\u7406","description":"\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u589e\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u9879\u76ee\u4e2d\u7684\u767d\u540d\u5355\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow-template-manager":{"id":"user-manual/project/workflow-template-manager","title":"\u5ba1\u6838\u6d41\u7a0b\u6a21\u677f","description":"\u672c\u6587\u4ecb\u7ecd\u9879\u76ee\u4e2d\u7684\u5ba1\u6838\u6d41\u7a0b\u6a21\u677f\u7ba1\u7406\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow/audit-workflow":{"id":"user-manual/project/workflow/audit-workflow","title":"\u5ba1\u6838\u5de5\u5355","description":"\u5ba1\u6838\u5de5\u5355\u5305\u542b\u4e24\u90e8\u5206","sidebar":"tutorialSidebar"},"user-manual/project/workflow/create-workflow":{"id":"user-manual/project/workflow/create-workflow","title":"\u521b\u5efa\u5de5\u5355","description":"\u5de5\u5355\u662fSQLE\u63d0\u4f9b\u7684\u5728\u7ebf\u5316SQL\u4e0a\u7ebf\u65b9\u5f0f\u3002\u7814\u53d1\u4eba\u5458\u53ef\u901a\u8fc7\u521b\u5efa\u5de5\u5355\uff0c\u63d0\u8bf7\u9700\u8981\u5ba1\u6279\u7684SQL\u8bed\u53e5\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow/exec-workflow":{"id":"user-manual/project/workflow/exec-workflow","title":"\u4e0a\u7ebf\u5de5\u5355","description":"\u672c\u7ae0\u8be6\u7ec6\u4ecb\u7ecd\u7528\u6237\u5982\u4f55\u8fdb\u884c\u4e0a\u7ebf\u3002","sidebar":"tutorialSidebar"},"user-manual/project/workflow/intro":{"id":"user-manual/project/workflow/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u5f88\u591a\u516c\u53f8\u901a\u5e38\u8bbe\u6709 DBA\uff08Database administrator\uff09 \u8fd9\u4e2a\u804c\u4f4d\uff0c\u4ed6\u4eec\u8d1f\u8d23\u5728\u7cfb\u7edf\u4e0a\u8fd0\u884c\u6570\u636e\u5e93\uff0c\u6267\u884c\u5907\u4efd\uff0c\u6267\u884c\u5b89\u5168\u7b56\u7565\u7b49\u65e5\u5e38\u6570\u636e\u5e93\u8fd0\u7ef4\u7684\u5de5\u4f5c\u3002\u5176\u4e2d\uff0cDBA\u4e00\u9879\u91cd\u8981\u7684\u5de5\u4f5c\u662f\u89c4\u8303\u7814\u53d1\u4eba\u5458\u5728\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u7684 SQL \u8bed\u53e5\u3002","sidebar":"tutorialSidebar"},"user-manual/sql-workbench/how-to-configure":{"id":"user-manual/sql-workbench/how-to-configure","title":"\u914d\u7f6e\u65b9\u6cd5","description":"\u5b89\u88c5CloudBeaver","sidebar":"tutorialSidebar"},"user-manual/sql-workbench/how-to-quick-deploy":{"id":"user-manual/sql-workbench/how-to-quick-deploy","title":"\u4f7f\u7528\u5b9a\u5236\u5305\u5feb\u901f\u642d\u5efa\u73af\u5883","description":"SQLE\u5728\u539f\u6709CloudBeaver release222_0 \u5206\u652f\u7684\u57fa\u7840\u4e0a, \u589e\u52a0\u4e86\u5bf9OceanBase \u548c TiDB \u7684\u652f\u6301, \u7528\u6237\u65e0\u9700\u518d\u624b\u52a8\u914d\u7f6e\u73af\u5883\uff0c\u53ef\u76f4\u63a5\u4f7f\u7528SQL\u5de5\u4f5c\u53f0\u529f\u80fd\u3002"},"user-manual/sql-workbench/how-to-use":{"id":"user-manual/sql-workbench/how-to-use","title":"\u4f7f\u7528\u5b9a\u5236\u5305\u5feb\u901f\u642d\u5efa\u73af\u5883","description":"SQLE\u5728\u539f\u6709CloudBeaver release222_0 \u5206\u652f\u7684\u57fa\u7840\u4e0a, \u589e\u52a0\u4e86\u5bf9OceanBase \u548c TiDB \u7684\u652f\u6301, \u7528\u6237\u65e0\u9700\u518d\u624b\u52a8\u914d\u7f6e\u73af\u5883\uff0c\u53ef\u76f4\u63a5\u4f7f\u7528SQL\u5de5\u4f5c\u53f0\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"user-manual/sql-workbench/introduction":{"id":"user-manual/sql-workbench/introduction","title":"\u529f\u80fd\u8bf4\u660e","description":"CloudBeaver Community \u662f\u4e00\u4e2a\u5f00\u6e90\u7684 Web \u6570\u636e\u5e93\u53ef\u89c6\u5316\u7ba1\u7406\u5de5\u5177\uff0c\u652f\u6301 PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, DB2, Firebird, H2, Trino \u7b49\u6570\u636e\u5e93\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/configuration":{"id":"user-manual/sys-configuration/configuration","title":"\u5168\u5c40\u914d\u7f6e","description":"SQLE\u652f\u6301\u7ba1\u7406\u5458\u5bf9\u5e73\u53f0\u57fa\u7840\u914d\u7f6e\u8fdb\u884c\u7edf\u4e00\u7ba1\u7406\uff0c\u76ee\u524d\u652f\u6301\u4fee\u6539\u7684\u914d\u7f6e\u9879\u5305\u62ec\uff1a","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/customize":{"id":"user-manual/sys-configuration/customize","title":"\u4e2a\u6027\u5316\u8bbe\u7f6e\u3010\u4f01\u4e1a\u7248\u3011","description":"SQLE\u652f\u6301\u5bf9\u7f51\u7ad9logo\u53ca\u6807\u9898\u8fdb\u884c\u81ea\u5b9a\u4e49\u8bbe\u7f6e\uff0c\u6ee1\u8db3\u4f01\u4e1a\u7528\u6237\u7684\u4e2a\u6027\u5316\u9700\u6c42\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/intro":{"id":"user-manual/sys-configuration/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u7cfb\u7edf\u8bbe\u7f6e\u4e2d\u53ef\u914d\u7f6e\u7684\u5185\u5bb9\u5305\u62ec\u5168\u5c40\u914d\u7f6e\u3001\u767b\u5f55\u5bf9\u63a5\u3001\u6d41\u7a0b\u5bf9\u63a5\u3001\u6d88\u606f\u63a8\u9001\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/login_syn":{"id":"user-manual/sys-configuration/login_syn","title":"\u767b\u5f55\u5bf9\u63a5","description":"\u5f53\u524d\u767b\u5f55\u5bf9\u63a5\u5df2\u5b9e\u73b0LDAP\u65b9\u5f0f\u53caOauth2.0\u65b9\u5f0f","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/message_syn":{"id":"user-manual/sys-configuration/message_syn","title":"\u6d88\u606f\u63a8\u9001","description":"\u5f53\u524d\u652f\u6301\u5c06\u5de5\u5355\u72b6\u6001\u53d8\u66f4\u540c\u6b65\u81f3\u90ae\u7bb1\u3001\u4f01\u4e1a\u5fae\u4fe1\u3001\u98de\u4e66\u3001Webhook\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/process_syn":{"id":"user-manual/sys-configuration/process_syn","title":"\u6d41\u7a0b\u5bf9\u63a5","description":"\u901a\u8fc7\u6d41\u7a0b\u5bf9\u63a5\u529f\u80fd\uff0c\u7528\u6237\u53ef\u4ee5\u5c06SQLE\u5e73\u53f0\u7684\u5de5\u5355\u5ba1\u6279\u64cd\u4f5c\u5bf9\u63a5\u5230\u6307\u5b9a\u7684\u5e73\u53f0\uff0c\u4f7f\u7528\u6237\u80fd\u591f\u5728\u8be5\u5e73\u53f0\u4e0a\u5b8c\u6210\u5de5\u5355\u5ba1\u6838\u548c\u4e0a\u7ebf\u64cd\u4f5c\uff0c\u907f\u514d\u5728\u591a\u4e2a\u5e73\u53f0\u4e4b\u95f4\u5207\u6362\u3002\u76ee\u524d\u6211\u4eec\u652f\u6301\u9489\u9489\u548c\u98de\u4e66\u5ba1\u6279\u3002","sidebar":"tutorialSidebar"},"user-manual/sys-configuration/webhook":{"id":"user-manual/sys-configuration/webhook","title":"webhook\u914d\u7f6e","description":"Webhook\u662f\u7528\u6237\u5b9a\u4e49\u7684\u81ea\u5b9a\u4e49HTTP\u56de\u8c03\u3002\u5b83\u4eec\u901a\u5e38\u7531\u4e8b\u4ef6\u89e6\u53d1\uff0c\u4f8b\u5982SQLE\u4e2d\u5b58\u5728\u5de5\u5355\u72b6\u6001\u7684\u53d8\u5316\uff0c\u5219\u4f1a\u81ea\u52a8\u5411\u7528\u6237\u914d\u7f6e\u7684webhook URL\u53d1\u9001HTTP\u8bf7\u6c42\u3002","sidebar":"tutorialSidebar"},"user-manual/user-manager/intro":{"id":"user-manual/user-manager/intro","title":"\u529f\u80fd\u8bf4\u660e","description":"\u7528\u6237\u4e2d\u5fc3\u5305\u542b\u7528\u6237\u7ba1\u7406\u3001\u89d2\u8272\u7ba1\u7406\u53ca\u64cd\u4f5c\u6743\u9650\u5217\u8868\uff0c\u7531\u5e73\u53f0\u7ba1\u7406\u5458\u64cd\u4f5c\uff0c\u6d89\u53ca\u7528\u6237\u53ca\u89d2\u8272\u6743\u9650\u7684\u914d\u7f6e\u3002","sidebar":"tutorialSidebar"},"user-manual/user-manager/role":{"id":"user-manual/user-manager/role","title":"\u89d2\u8272\u7ba1\u7406","description":"\u5f53\u9700\u8981\u4e3a\u7528\u6237\u8bbe\u7f6e\u52a8\u4f5c\u6743\u9650\u65f6\uff0c\u53ef\u4f7f\u7528\u89d2\u8272\u7ba1\u7406\u914d\u7f6e\u52a8\u4f5c\u7ec4\u5408\u3002","sidebar":"tutorialSidebar"},"user-manual/user-manager/user":{"id":"user-manual/user-manager/user","title":"\u7528\u6237\u7ba1\u7406","description":"\u5f53\u9700\u8981\u521b\u5efa\u65b0\u7684\u7528\u6237\uff0c\u6216\u9700\u8981\u7531\u7ba1\u7406\u5458\u4fee\u6539\u7528\u6237\u57fa\u672c\u4fe1\u606f\u65f6\uff0c\u53ef\u4ee5\u8fdb\u884c\u7528\u6237\u7ba1\u7406\u7684\u76f8\u5173\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.631a4954.js b/assets/js/runtime~main.213be372.js similarity index 97% rename from assets/js/runtime~main.631a4954.js rename to assets/js/runtime~main.213be372.js index 1a1d100a..addd14d6 100644 --- a/assets/js/runtime~main.631a4954.js +++ b/assets/js/runtime~main.213be372.js @@ -1 +1 @@ -(()=>{"use strict";var e,c,a,d,f,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(c,a,d,f)=>{if(!a){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,d,f]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};c=c||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~c.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(f,b),f},r.d=(e,c)=>{for(var a in c)r.o(c,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:c[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,a)=>(r.f[a](e,c),c)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",125:"7f1bbce8",150:"75c63229",203:"01d09168",238:"ba4b70c6",258:"39a60e89",269:"a1c7e5e9",287:"d8c191fb",374:"e36cd5bd",411:"cbc434de",555:"642bfdc0",570:"2325fbab",611:"72e02e69",634:"ef0f38b4",639:"bec63ed4",685:"2bd126e0",791:"e664c7ae",805:"fda8954d",806:"09f34579",1003:"19e0803c",1005:"249f7d1b",1190:"b9ae17d7",1391:"02c90ec4",1530:"f02fac34",1566:"0280f80a",1693:"33ad9be9",1867:"dd6b5b85",2026:"3b566c5e",2082:"86820dd7",2234:"e6bffb5f",2395:"fbc01eff",2443:"524f0400",2564:"1505bef6",2595:"b1c5bb80",2608:"3d86b39a",2685:"9d5f5645",2781:"114c1ff0",2805:"4bc52cc2",2829:"3e324e54",2851:"91ed4a47",3022:"2d8e184c",3043:"a9fc8a51",3085:"1f391b9e",3237:"1df93b7f",3277:"8310fe8a",3296:"a71e30d2",3506:"6017ddd6",3528:"2e058920",3574:"40e013e2",3707:"cac012ec",3745:"5f5f0e81",3873:"e27cd41e",3979:"996e247a",4023:"b665e48e",4090:"2f44db8a",4122:"69aad86d",4187:"7570e0f0",4321:"f3a25e2d",4405:"183c7aa1",4462:"5b2d17d4",4663:"9d69580c",4664:"dfc44cf0",4701:"f2e73173",4748:"adc46ca9",4753:"e6a5c99d",4806:"cb7518d4",5098:"caf71071",5105:"05d7652c",5131:"75dae98d",5194:"ded4d786",5336:"3a09a690",5421:"346700ec",5426:"c50f615e",5427:"1c5076b2",5606:"288bea33",5635:"6f205e26",5795:"cd76f017",5811:"7cb84b9a",5883:"cdbed8c2",5962:"47c91765",5989:"82d13ca9",6015:"7f697b4f",6023:"fb3f0baf",6076:"e2f22478",6140:"c076d76c",6143:"9f9041d4",6515:"6508b26c",6540:"a8e97085",6630:"a2548957",6660:"dec7d928",6785:"ec7ec2c8",6799:"d241ea8a",6869:"82ad92c6",6918:"6044f636",6963:"7d79a1d2",7033:"e831274c",7039:"a122856d",7225:"00b1e56a",7264:"2f54af3f",7281:"7eb65a46",7407:"b0c5a65d",7414:"393be207",7571:"f842788a",7622:"b47ecf00",7843:"597ed821",7918:"17896441",7920:"1a4e3797",7927:"264f5faa",7945:"dc1cb979",8102:"20b46364",8119:"81e444cd",8121:"846accde",8142:"646478a3",8157:"28125733",8271:"52660e4f",8294:"79c4cf48",8407:"77a4f982",8420:"5f86214a",8508:"a26b9836",8528:"5836c0c9",8538:"7dcde5ea",8599:"4179ad40",8686:"1bbd07b0",8690:"1185ed00",8703:"4f79a043",8756:"a8bb5334",8862:"fc4b6217",8924:"788e20e1",8952:"b47fb6cd",9031:"0ecef8a4",9093:"3628edc3",9145:"6757540d",9149:"d0ae6baa",9298:"d544b3ed",9346:"1c0d99bd",9514:"1be78505",9567:"a403ac1f",9671:"0e384e19",9687:"8fb2801c",9751:"9ff17efe",9956:"24a44ceb",9975:"d1255c8f",9988:"dc6ee667"}[e]||e)+"."+{53:"7d9f2d5a",125:"7bc92f7b",150:"2e48f9c2",203:"53bec4c2",238:"23c85b61",258:"1fd338b4",269:"dd649570",272:"0c8139c9",287:"5e3f9a83",374:"2cac8adf",411:"1a067d05",555:"6b931bab",570:"df03055c",611:"b69c55c2",634:"5e95eb97",639:"5831f1bb",685:"5d1bc745",791:"917316aa",805:"9b8e8e23",806:"69597161",1003:"8fb3e0be",1005:"821d2db0",1190:"4e6c8518",1391:"d9c6df55",1426:"e633d866",1530:"7617e241",1566:"d62c5863",1693:"5138d849",1867:"cd6f2270",2026:"82056781",2082:"50d48211",2234:"f0f9d3bd",2395:"071e4c5a",2443:"248d5b57",2564:"a1d33a68",2595:"44884795",2608:"47bd9c28",2685:"381900ed",2781:"7418ae2d",2805:"66d186bf",2829:"9154dbf7",2851:"2096d5d0",3022:"a416db0f",3043:"758edc12",3085:"61ef836c",3237:"19e5ecaf",3277:"db27f138",3296:"a16fc120",3506:"614e05a4",3528:"827d28ab",3574:"aeaf8db3",3707:"69a2467e",3745:"c134d7d8",3873:"f9910208",3979:"0b41cc67",4023:"a6d25452",4090:"9a60307c",4122:"efe87db8",4187:"d79ef4f7",4321:"70b5ab93",4405:"5212f9f3",4462:"4a72f3bd",4663:"323fdbe6",4664:"05cab70c",4701:"24d60c94",4748:"d17d264f",4753:"f68ae029",4806:"92a18fce",4972:"cb5faa2f",5098:"c644b414",5105:"7b50af05",5131:"7bfd6e72",5194:"88fc3908",5336:"3b989522",5421:"679df7ac",5426:"c0892485",5427:"de7e03a6",5606:"1eaf0601",5635:"e84472d3",5795:"c5cd2d5a",5811:"ebc49c80",5883:"3a2160c3",5962:"bbc1d47d",5989:"8c08b580",6015:"61b99e31",6023:"477e3706",6076:"942712ab",6140:"27ec13b6",6143:"58b80cc6",6515:"a006b132",6540:"1b547c27",6630:"9b72d91b",6660:"9365247c",6785:"28a223b6",6799:"ec3bb833",6869:"d2bf5fc3",6918:"e6dec94c",6945:"726379f6",6963:"603d9dad",7033:"1c79eb9e",7039:"18122d90",7225:"34511f5f",7264:"99045ee8",7281:"fd64a5d2",7407:"26fe3c76",7414:"870f066f",7571:"5cb6fa06",7622:"ed5735e7",7843:"432f44a3",7918:"94ca8eeb",7920:"75ed752d",7927:"0001ad51",7945:"dfafcc47",8102:"e541efe2",8119:"feb0c687",8121:"1800bdbd",8142:"1df13702",8157:"94d2dbd7",8271:"9a20f507",8294:"620e3e1a",8407:"93d3652b",8420:"7eb358a5",8508:"e887799c",8528:"e53f79bf",8538:"bbd0b0aa",8599:"e2c2a153",8686:"67308561",8690:"7b344a86",8703:"176e8f23",8756:"ef93c7d9",8862:"96f11bef",8894:"a085d5f5",8924:"1a236ba1",8952:"d14e5e68",9031:"7773d7da",9093:"02837956",9145:"dc45f0f8",9149:"366483e8",9298:"7c3c1fbb",9346:"5ea82aa8",9514:"b9852c96",9567:"87c18998",9671:"8f83e3a6",9687:"fd8667d5",9751:"81906a7f",9956:"5e4950c1",9975:"563e50cf",9988:"a791fea8"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),d={},f="sqle-docs:",r.l=(e,c,a,b)=>{if(d[e])d[e].push(c);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(a))),c)return c(a)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/sqle-docs/",r.gca=function(e){return e={17896441:"7918",28125733:"8157","935f2afb":"53","7f1bbce8":"125","75c63229":"150","01d09168":"203",ba4b70c6:"238","39a60e89":"258",a1c7e5e9:"269",d8c191fb:"287",e36cd5bd:"374",cbc434de:"411","642bfdc0":"555","2325fbab":"570","72e02e69":"611",ef0f38b4:"634",bec63ed4:"639","2bd126e0":"685",e664c7ae:"791",fda8954d:"805","09f34579":"806","19e0803c":"1003","249f7d1b":"1005",b9ae17d7:"1190","02c90ec4":"1391",f02fac34:"1530","0280f80a":"1566","33ad9be9":"1693",dd6b5b85:"1867","3b566c5e":"2026","86820dd7":"2082",e6bffb5f:"2234",fbc01eff:"2395","524f0400":"2443","1505bef6":"2564",b1c5bb80:"2595","3d86b39a":"2608","9d5f5645":"2685","114c1ff0":"2781","4bc52cc2":"2805","3e324e54":"2829","91ed4a47":"2851","2d8e184c":"3022",a9fc8a51:"3043","1f391b9e":"3085","1df93b7f":"3237","8310fe8a":"3277",a71e30d2:"3296","6017ddd6":"3506","2e058920":"3528","40e013e2":"3574",cac012ec:"3707","5f5f0e81":"3745",e27cd41e:"3873","996e247a":"3979",b665e48e:"4023","2f44db8a":"4090","69aad86d":"4122","7570e0f0":"4187",f3a25e2d:"4321","183c7aa1":"4405","5b2d17d4":"4462","9d69580c":"4663",dfc44cf0:"4664",f2e73173:"4701",adc46ca9:"4748",e6a5c99d:"4753",cb7518d4:"4806",caf71071:"5098","05d7652c":"5105","75dae98d":"5131",ded4d786:"5194","3a09a690":"5336","346700ec":"5421",c50f615e:"5426","1c5076b2":"5427","288bea33":"5606","6f205e26":"5635",cd76f017:"5795","7cb84b9a":"5811",cdbed8c2:"5883","47c91765":"5962","82d13ca9":"5989","7f697b4f":"6015",fb3f0baf:"6023",e2f22478:"6076",c076d76c:"6140","9f9041d4":"6143","6508b26c":"6515",a8e97085:"6540",a2548957:"6630",dec7d928:"6660",ec7ec2c8:"6785",d241ea8a:"6799","82ad92c6":"6869","6044f636":"6918","7d79a1d2":"6963",e831274c:"7033",a122856d:"7039","00b1e56a":"7225","2f54af3f":"7264","7eb65a46":"7281",b0c5a65d:"7407","393be207":"7414",f842788a:"7571",b47ecf00:"7622","597ed821":"7843","1a4e3797":"7920","264f5faa":"7927",dc1cb979:"7945","20b46364":"8102","81e444cd":"8119","846accde":"8121","646478a3":"8142","52660e4f":"8271","79c4cf48":"8294","77a4f982":"8407","5f86214a":"8420",a26b9836:"8508","5836c0c9":"8528","7dcde5ea":"8538","4179ad40":"8599","1bbd07b0":"8686","1185ed00":"8690","4f79a043":"8703",a8bb5334:"8756",fc4b6217:"8862","788e20e1":"8924",b47fb6cd:"8952","0ecef8a4":"9031","3628edc3":"9093","6757540d":"9145",d0ae6baa:"9149",d544b3ed:"9298","1c0d99bd":"9346","1be78505":"9514",a403ac1f:"9567","0e384e19":"9671","8fb2801c":"9687","9ff17efe":"9751","24a44ceb":"9956",d1255c8f:"9975",dc6ee667:"9988"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(c,a)=>{var d=r.o(e,c)?e[c]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(c))e[c]=0;else{var f=new Promise(((a,f)=>d=e[c]=[a,f]));a.push(d[2]=f);var b=r.p+r.u(c),t=new Error;r.l(b,(a=>{if(r.o(e,c)&&(0!==(d=e[c])&&(e[c]=void 0),d)){var f=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+c+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,a)=>{var d,f,b=a[0],t=a[1],o=a[2],n=0;if(b.some((c=>0!==e[c]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(c&&c(a);n{"use strict";var e,c,a,d,f,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(c,a,d,f)=>{if(!a){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[a,d,f]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};c=c||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~c.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(f,b),f},r.d=(e,c)=>{for(var a in c)r.o(c,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:c[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,a)=>(r.f[a](e,c),c)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",125:"7f1bbce8",150:"75c63229",203:"01d09168",238:"ba4b70c6",258:"39a60e89",269:"a1c7e5e9",287:"d8c191fb",374:"e36cd5bd",411:"cbc434de",555:"642bfdc0",570:"2325fbab",611:"72e02e69",634:"ef0f38b4",639:"bec63ed4",685:"2bd126e0",791:"e664c7ae",805:"fda8954d",806:"09f34579",1003:"19e0803c",1005:"249f7d1b",1190:"b9ae17d7",1391:"02c90ec4",1530:"f02fac34",1566:"0280f80a",1693:"33ad9be9",1867:"dd6b5b85",2026:"3b566c5e",2082:"86820dd7",2234:"e6bffb5f",2395:"fbc01eff",2443:"524f0400",2564:"1505bef6",2595:"b1c5bb80",2608:"3d86b39a",2685:"9d5f5645",2781:"114c1ff0",2805:"4bc52cc2",2829:"3e324e54",2851:"91ed4a47",3022:"2d8e184c",3043:"a9fc8a51",3085:"1f391b9e",3237:"1df93b7f",3277:"8310fe8a",3296:"a71e30d2",3506:"6017ddd6",3528:"2e058920",3574:"40e013e2",3707:"cac012ec",3745:"5f5f0e81",3873:"e27cd41e",3979:"996e247a",4023:"b665e48e",4090:"2f44db8a",4122:"69aad86d",4187:"7570e0f0",4321:"f3a25e2d",4405:"183c7aa1",4462:"5b2d17d4",4663:"9d69580c",4664:"dfc44cf0",4701:"f2e73173",4748:"adc46ca9",4753:"e6a5c99d",4806:"cb7518d4",5098:"caf71071",5105:"05d7652c",5131:"75dae98d",5194:"ded4d786",5336:"3a09a690",5421:"346700ec",5426:"c50f615e",5427:"1c5076b2",5606:"288bea33",5635:"6f205e26",5795:"cd76f017",5811:"7cb84b9a",5883:"cdbed8c2",5962:"47c91765",5989:"82d13ca9",6015:"7f697b4f",6023:"fb3f0baf",6076:"e2f22478",6140:"c076d76c",6143:"9f9041d4",6515:"6508b26c",6540:"a8e97085",6630:"a2548957",6660:"dec7d928",6785:"ec7ec2c8",6799:"d241ea8a",6869:"82ad92c6",6918:"6044f636",6963:"7d79a1d2",7033:"e831274c",7039:"a122856d",7225:"00b1e56a",7264:"2f54af3f",7281:"7eb65a46",7407:"b0c5a65d",7414:"393be207",7571:"f842788a",7622:"b47ecf00",7843:"597ed821",7918:"17896441",7920:"1a4e3797",7927:"264f5faa",7945:"dc1cb979",8102:"20b46364",8119:"81e444cd",8121:"846accde",8142:"646478a3",8157:"28125733",8271:"52660e4f",8294:"79c4cf48",8407:"77a4f982",8420:"5f86214a",8508:"a26b9836",8528:"5836c0c9",8538:"7dcde5ea",8599:"4179ad40",8686:"1bbd07b0",8690:"1185ed00",8703:"4f79a043",8756:"a8bb5334",8862:"fc4b6217",8924:"788e20e1",8952:"b47fb6cd",9031:"0ecef8a4",9093:"3628edc3",9145:"6757540d",9149:"d0ae6baa",9298:"d544b3ed",9346:"1c0d99bd",9514:"1be78505",9567:"a403ac1f",9671:"0e384e19",9687:"8fb2801c",9751:"9ff17efe",9956:"24a44ceb",9975:"d1255c8f",9988:"dc6ee667"}[e]||e)+"."+{53:"ba453fe0",125:"7bc92f7b",150:"2e48f9c2",203:"53bec4c2",238:"23c85b61",258:"1fd338b4",269:"dd649570",272:"0c8139c9",287:"5e3f9a83",374:"2cac8adf",411:"1a067d05",555:"6b931bab",570:"df03055c",611:"b69c55c2",634:"5e95eb97",639:"5831f1bb",685:"5d1bc745",791:"917316aa",805:"9b8e8e23",806:"69597161",1003:"621b29b9",1005:"821d2db0",1190:"4e6c8518",1391:"d9c6df55",1426:"e633d866",1530:"7617e241",1566:"d62c5863",1693:"5138d849",1867:"cd6f2270",2026:"82056781",2082:"50d48211",2234:"f0f9d3bd",2395:"071e4c5a",2443:"248d5b57",2564:"a1d33a68",2595:"44884795",2608:"47bd9c28",2685:"381900ed",2781:"7418ae2d",2805:"66d186bf",2829:"9154dbf7",2851:"2096d5d0",3022:"a416db0f",3043:"758edc12",3085:"61ef836c",3237:"19e5ecaf",3277:"db27f138",3296:"a16fc120",3506:"614e05a4",3528:"827d28ab",3574:"aeaf8db3",3707:"69a2467e",3745:"c134d7d8",3873:"f9910208",3979:"0b41cc67",4023:"a6d25452",4090:"9a60307c",4122:"efe87db8",4187:"d79ef4f7",4321:"70b5ab93",4405:"5212f9f3",4462:"4a72f3bd",4663:"323fdbe6",4664:"05cab70c",4701:"24d60c94",4748:"d17d264f",4753:"f68ae029",4806:"92a18fce",4972:"cb5faa2f",5098:"c644b414",5105:"7b50af05",5131:"7bfd6e72",5194:"88fc3908",5336:"3b989522",5421:"679df7ac",5426:"c0892485",5427:"de7e03a6",5606:"1eaf0601",5635:"e84472d3",5795:"c5cd2d5a",5811:"ebc49c80",5883:"3a2160c3",5962:"bbc1d47d",5989:"8c08b580",6015:"61b99e31",6023:"477e3706",6076:"942712ab",6140:"27ec13b6",6143:"58b80cc6",6515:"a006b132",6540:"1b547c27",6630:"9b72d91b",6660:"9365247c",6785:"28a223b6",6799:"ec3bb833",6869:"7302dd79",6918:"e6dec94c",6945:"726379f6",6963:"603d9dad",7033:"1c79eb9e",7039:"18122d90",7225:"34511f5f",7264:"99045ee8",7281:"b77c41a6",7407:"26fe3c76",7414:"870f066f",7571:"5cb6fa06",7622:"ed5735e7",7843:"432f44a3",7918:"94ca8eeb",7920:"75ed752d",7927:"0001ad51",7945:"dfafcc47",8102:"e541efe2",8119:"feb0c687",8121:"1800bdbd",8142:"1df13702",8157:"94d2dbd7",8271:"9a20f507",8294:"620e3e1a",8407:"93d3652b",8420:"7eb358a5",8508:"e887799c",8528:"e53f79bf",8538:"bbd0b0aa",8599:"e2c2a153",8686:"67308561",8690:"7b344a86",8703:"176e8f23",8756:"ef93c7d9",8862:"96f11bef",8894:"a085d5f5",8924:"1a236ba1",8952:"d14e5e68",9031:"7773d7da",9093:"02837956",9145:"dc45f0f8",9149:"366483e8",9298:"7c3c1fbb",9346:"5ea82aa8",9514:"b9852c96",9567:"87c18998",9671:"8f83e3a6",9687:"fd8667d5",9751:"81906a7f",9956:"5e4950c1",9975:"563e50cf",9988:"a791fea8"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),d={},f="sqle-docs:",r.l=(e,c,a,b)=>{if(d[e])d[e].push(c);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(a))),c)return c(a)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/sqle-docs/",r.gca=function(e){return e={17896441:"7918",28125733:"8157","935f2afb":"53","7f1bbce8":"125","75c63229":"150","01d09168":"203",ba4b70c6:"238","39a60e89":"258",a1c7e5e9:"269",d8c191fb:"287",e36cd5bd:"374",cbc434de:"411","642bfdc0":"555","2325fbab":"570","72e02e69":"611",ef0f38b4:"634",bec63ed4:"639","2bd126e0":"685",e664c7ae:"791",fda8954d:"805","09f34579":"806","19e0803c":"1003","249f7d1b":"1005",b9ae17d7:"1190","02c90ec4":"1391",f02fac34:"1530","0280f80a":"1566","33ad9be9":"1693",dd6b5b85:"1867","3b566c5e":"2026","86820dd7":"2082",e6bffb5f:"2234",fbc01eff:"2395","524f0400":"2443","1505bef6":"2564",b1c5bb80:"2595","3d86b39a":"2608","9d5f5645":"2685","114c1ff0":"2781","4bc52cc2":"2805","3e324e54":"2829","91ed4a47":"2851","2d8e184c":"3022",a9fc8a51:"3043","1f391b9e":"3085","1df93b7f":"3237","8310fe8a":"3277",a71e30d2:"3296","6017ddd6":"3506","2e058920":"3528","40e013e2":"3574",cac012ec:"3707","5f5f0e81":"3745",e27cd41e:"3873","996e247a":"3979",b665e48e:"4023","2f44db8a":"4090","69aad86d":"4122","7570e0f0":"4187",f3a25e2d:"4321","183c7aa1":"4405","5b2d17d4":"4462","9d69580c":"4663",dfc44cf0:"4664",f2e73173:"4701",adc46ca9:"4748",e6a5c99d:"4753",cb7518d4:"4806",caf71071:"5098","05d7652c":"5105","75dae98d":"5131",ded4d786:"5194","3a09a690":"5336","346700ec":"5421",c50f615e:"5426","1c5076b2":"5427","288bea33":"5606","6f205e26":"5635",cd76f017:"5795","7cb84b9a":"5811",cdbed8c2:"5883","47c91765":"5962","82d13ca9":"5989","7f697b4f":"6015",fb3f0baf:"6023",e2f22478:"6076",c076d76c:"6140","9f9041d4":"6143","6508b26c":"6515",a8e97085:"6540",a2548957:"6630",dec7d928:"6660",ec7ec2c8:"6785",d241ea8a:"6799","82ad92c6":"6869","6044f636":"6918","7d79a1d2":"6963",e831274c:"7033",a122856d:"7039","00b1e56a":"7225","2f54af3f":"7264","7eb65a46":"7281",b0c5a65d:"7407","393be207":"7414",f842788a:"7571",b47ecf00:"7622","597ed821":"7843","1a4e3797":"7920","264f5faa":"7927",dc1cb979:"7945","20b46364":"8102","81e444cd":"8119","846accde":"8121","646478a3":"8142","52660e4f":"8271","79c4cf48":"8294","77a4f982":"8407","5f86214a":"8420",a26b9836:"8508","5836c0c9":"8528","7dcde5ea":"8538","4179ad40":"8599","1bbd07b0":"8686","1185ed00":"8690","4f79a043":"8703",a8bb5334:"8756",fc4b6217:"8862","788e20e1":"8924",b47fb6cd:"8952","0ecef8a4":"9031","3628edc3":"9093","6757540d":"9145",d0ae6baa:"9149",d544b3ed:"9298","1c0d99bd":"9346","1be78505":"9514",a403ac1f:"9567","0e384e19":"9671","8fb2801c":"9687","9ff17efe":"9751","24a44ceb":"9956",d1255c8f:"9975",dc6ee667:"9988"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(c,a)=>{var d=r.o(e,c)?e[c]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(c))e[c]=0;else{var f=new Promise(((a,f)=>d=e[c]=[a,f]));a.push(d[2]=f);var b=r.p+r.u(c),t=new Error;r.l(b,(a=>{if(r.o(e,c)&&(0!==(d=e[c])&&(e[c]=void 0),d)){var f=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+c+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,a)=>{var d,f,b=a[0],t=a[1],o=a[2],n=0;if(b.some((c=>0!==e[c]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(c&&c(a);n FAQ | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/FAQ/whichdatabase/index.html b/docs/FAQ/whichdatabase/index.html index 8f70e8fe..10efa6e6 100644 --- a/docs/FAQ/whichdatabase/index.html +++ b/docs/FAQ/whichdatabase/index.html @@ -4,13 +4,13 @@ 支持哪些数据库 | SQLE 文档 - +
      -
      版本:v3

      支持的数据库及版本

      数据库类型验证可用的版本
      MySQL5.7.25 、8.0.33
      PostgreSQL9.3 – 13
      Oracle11.2、12.1、12.2
      SQL server2008、2012、2016
      DB211.5
      TiDB4.0.8
      OceanBase For MySQL3.5
      达梦V8
      提示

      当前版本为SQLE验证确认可用的版本,若需要使用其他版本,需自行验证

      - +
      版本:v3

      支持的数据库及版本

      数据库类型验证可用的版本
      MySQL5.7.25 、8.0.33
      PostgreSQL9.3 – 13
      Oracle11.2、12.1、12.2
      SQL server2008、2012、2016
      DB211.5
      TiDB4.0.8
      OceanBase For MySQL3.5
      达梦V8
      提示

      当前版本为SQLE验证确认可用的版本,若需要使用其他版本,需自行验证

      + \ No newline at end of file diff --git a/docs/SUMMARY/index.html b/docs/SUMMARY/index.html index 45f2365c..582a415d 100644 --- a/docs/SUMMARY/index.html +++ b/docs/SUMMARY/index.html @@ -4,13 +4,13 @@ Summary | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/deploy-manual/Docker/index.html b/docs/deploy-manual/Docker/index.html index 3fd966e8..0c78550c 100644 --- a/docs/deploy-manual/Docker/index.html +++ b/docs/deploy-manual/Docker/index.html @@ -4,13 +4,13 @@ Docker部署 | SQLE 文档 - +
      版本:v3

      Docker部署

      Docker hub 地址

      actiontech/sqle-ce

      Docker 参考命令

      docker run -d -it \
      --name sqle-server \
      -p 10000:10000 \
      -p 10001:10001 \
      -e MYSQL_HOST="10.10.10.10" \
      -e MYSQL_PORT=3306 \
      -e MYSQL_USER="root" \
      -e MYSQL_PASSWORD="123456" \
      -e MYSQL_DMS_SCHEMA="dms" \
      -e MYSQL_SQLE_SCHEMA="sqle" \
      actiontech/sqle-ce:latest
      提示

      默认提供最新版本的下载镜像,如果需要使用其他版本的镜像,可以访问SQLE的DockerHub选用想要的版本。

      参数说明

      使用环境变量传递参数,这些指定的配置会映射到 /opt/sqle/etc/config.yaml 配置内,指定数据库的配置等。

      变量说明
      MYSQL_HOST访问地址
      MYSQL_PORT访问端口
      MYSQL_USER数据库用户
      MYSQL_PASSWORD数据库密码
      MYSQL_DMS_SCHEMASQLE 服务使用的指定的 schema
      MYSQL_SQLE_SCHEMADMS服务使用的指定的 schema
      DEBUG是否输出 debug 日志,默认为false
      AUTO_MIGRATE_TABLE是否自动创建表格和初始化数据,默认为true

      注意点

      提示

      使用 docker 命令运行容器需要提前准备 MySQL 服务并且创建对应的数据库 schema,创建数据库的SQL可参考:RPM 部署

      提示

      如果 SQLE 容器启动失败可以使用docker logs sqle-server查看启用日志,其中sqle-server是容器名称。

      - + \ No newline at end of file diff --git a/docs/deploy-manual/DockerCompose/index.html b/docs/deploy-manual/DockerCompose/index.html index 55c79bfd..a61409a9 100644 --- a/docs/deploy-manual/DockerCompose/index.html +++ b/docs/deploy-manual/DockerCompose/index.html @@ -4,13 +4,13 @@ Docker Compose 部署 | SQLE 文档 - +
      版本:v3

      Docker Compose 部署

      配置文件

      下载地址:docker-compose.yaml

      下载地址:init

      使用方法

      将 docker-compose.yaml 文件和init 文件夹下载到本地目录,并进入目录内,通过环境变量SQLE_IMAGE指定不同版本的 SQLE 镜像,默认是 latest

      SQLE_IMAGE=actiontech/sqle-ce:latest docker-compose up -d
      - + \ No newline at end of file diff --git a/docs/deploy-manual/config/index.html b/docs/deploy-manual/config/index.html index 34288336..e4df8d8b 100644 --- a/docs/deploy-manual/config/index.html +++ b/docs/deploy-manual/config/index.html @@ -4,13 +4,13 @@ 配置文件说明 | SQLE 文档 - +
      版本:v3

      配置文件说明

      提示

      SQLE的配置文件采用yml的格式,默认情况下位于SQLE安装目录下,路径为./etc/config.yml

      默认文件参考

      dms:
      id: 1
      api:
      addr: "0.0.0.0"
      port: 10000
      enable_https: false
      cert_file_path: './etc/cert.pem'
      key_file_path: './etc/key.pem'
      secret_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
      service:
      database:
      host: "127.0.0.1"
      port: 3306
      username: "root"
      password: "123456"
      database: "dms"
      debug: true
      auto_migrate: true
      log:
      level: DEBUG
      path: logs
      max_size_mb: 100
      max_backup_number: 10
      cloudbeaver:
      enable_https: false
      host: "127.0.0.1"
      port: 8978
      admin_user: "cbadmin"
      admin_password: "123456"
      database_driver_options:
      - db_type: MySQL
      logo_path: "/logo/mysql.png"
      params:
      - db_type: Postgres
      logo_path: "/static/logo/pg.png"
      params:
      - db_type: Oracle
      logo_path: "/static/logo/oracle.png"
      params: [
      {
      "key":"service_name",
      "value":"XE",
      "desc":"service name",
      "type":"string"
      },
      ]
      sqle:
      id: 1
      dms_server_address: "http://127.0.0.1:10000"
      api:
      addr: "127.0.0.1"
      port: 10001
      enable_https: false
      cert_file_path: './etc/cert.pem'
      key_file_path: './etc/key.pem'
      secret_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
      service:
      auto_migrate_table: true
      debug_log: false
      log_path: './logs'
      log_max_size_mb: 1024
      log_max_backup_number: 2
      plugin_path: './plugins'
      database:
      mysql_host: '127.0.0.1'
      mysql_port: 3306
      mysql_user: 'root'
      mysql_password: '123456'
      mysql_schema: 'sqle'

      配置说明

      通用配置

      参数说明
      idserver id,辨识集群节点,集群内不重复即可
      api当前服务的web接口参数
      secret_key全局AES加密秘钥,影响登录和用户密码等的存储;生产环境建议配置该值替换掉程序默认值,不然会存在安全风险;格式是32位随机字符串

      通用配置.api

      参数说明
      addr访问服务器时需要的网络地址
      port当前服务的web接口参数
      enable_https是否开启https,默认不开启
      cert_file_pathhttps 证书路径
      key_file_pathhttps 私钥路径

      DMS 配置

      参数说明
      id通用配置
      api通用配置
      secret_key通用配置
      service服务
      cloudbeaverSQL工作台

      DMS.service.database

      参数说明
      hostDMS 后端数据库地址
      portDMS 后端数据库地址
      usernameDMS 后端数据库用户
      passwordDMS 后端数据库密码
      databaseDMS 后端数据库 schema
      debug

      DMS.service.log

      参数说明
      levelDMS日志级别
      pathDMS日志存在路径
      max_size_mbDMS日志文件大小
      max_backup_numberDMS保留日志文件数

      DMS.cloudbeaver

      SQL工作台的配置,配置则代表开启SQL工作台。

      参数说明
      enable_https是否是https连接
      hostcloudbeaver 地址
      portcloudbeaver 端口
      admin_usercloudbeaver 超级管理员名称
      admin_passwordcloudbeaver 超级管理员密码

      SQLE 配置

      参数说明
      id通用配置
      api通用配置
      secret_key通用配置
      service服务

      SQLE.service

      参数说明
      auto_migrate_table自动创建表结构,初始化数据
      debug_log开启debug模式,打印更多日志,会打印业务SQL,开发环境可开启
      log_path日志目录
      log_max_size_mb单个日志文件最大大小,单位MB
      log_max_backup_number日志文件最大备份数量
      plugin_pathSQL审核插件的加载地址

      SQLE.service.database

      参数说明
      mysql_hostSQLE存储库的地址
      mysql_portSQLE存储库的端口
      mysql_userSQLE存储库的数据库用户
      mysql_passwordSQLE存储库的数据库密码
      mysql_schemaSQLE存储库的数据库 schema

      数据库插件配置请参考:如何配置数据库审核插件

      - + \ No newline at end of file diff --git a/docs/deploy-manual/intro/index.html b/docs/deploy-manual/intro/index.html index 9a3829c7..58084ecf 100644 --- a/docs/deploy-manual/intro/index.html +++ b/docs/deploy-manual/intro/index.html @@ -4,13 +4,13 @@ 安装说明 | SQLE 文档 - +
      版本:v3

      安装说明

      SQLE 提供了多种安装部署的方式,用户可以结合自己的环境和现状选择。初次体验或者测试使用的话建议使用docker-compose 或 docker 快速部署。

      安装方式

      1. 源码安装
      2. RPM 部署
      3. Docker 部署
      4. Docker Compsoe 部署

      如何访问

      SQLE 对外提供 web 服务,在程序部署完成后,即可通过 SQLE UI 访问:http://127.0.0.1:10000, 地址和端口为配置文件内 dms.api 配置项。

      提示

      ps:ip 和端口请根据前面的配置自行替换,默认端口是10000。

      初始用户

      • 用户名:admin
      • 密码:admin
      - + \ No newline at end of file diff --git a/docs/deploy-manual/rpm/index.html b/docs/deploy-manual/rpm/index.html index eb85f4e7..11280491 100644 --- a/docs/deploy-manual/rpm/index.html +++ b/docs/deploy-manual/rpm/index.html @@ -4,13 +4,13 @@ RPM 安装 | SQLE 文档 - +
      版本:v3

      RPM安装

      环境准备

      • CentOS 7
      • MySQL 5.7

      下载安装包

      下载 SQLE 的 RPM 安装包,下载连接点击这里

      安装 SQLE

      执行 RPM 的安装命令:

      rpm -ivh /path/to/sqle-ce-${version}.qa.el7.x86_64.rpm --prefix=/opt/sqle

      创建数据库

      准备一台 MySQL5.7 作为 SQLE 的后端存储数据库。执行下面命令创建 SQLE 需要的 schema:

      CREATE DATABASE IF NOT EXISTS sqle default character set utf8mb4 collate utf8mb4_unicode_ci;
      CREATE DATABASE IF NOT EXISTS dms default character set utf8mb4 collate utf8mb4_unicode_ci;
      提示

      创建好的 Schema 将在下面修改SQLE配置时使用到。

      修改 SQLE 配置文件

      安装完 SQLE 后,需要根据实际情况修改SQLE的配置,参考:配置文件说明。SQLE安装完成后提供一个配置模版可直接修改。

      cd /opt/sqle/etc
      vim config.yml
      提示

      确保 config.yml 的文件 owner 为 actiontech-universe:actiontech

      启动 SQLE

      SQLE 进程通过 Systemd 管理。在成功安装 RPM 后,执行启动命令:

      cd /opt/sqle
      chmod +x scripts/init_start.sh
      ./scripts/init_start.sh

      访问SQLE

      SQLE 对外提供 web 服务,在程序部署完成后,即可通过 SQLE UI 访问:http://127.0.0.1:10000, 地址和端口为配置文件内 dms.api 配置项。

      启动失败问题诊断

      参考:https://github.com/actiontech/sqle/discussions/1239

      - + \ No newline at end of file diff --git a/docs/deploy-manual/source/index.html b/docs/deploy-manual/source/index.html index 27010f86..800afe50 100644 --- a/docs/deploy-manual/source/index.html +++ b/docs/deploy-manual/source/index.html @@ -4,13 +4,13 @@ 源码安装 | SQLE 文档 - +
      版本:v3

      源码安装

      环境准备

      • CentOS 7
      • MySQL 5.7
      • Docker
      • Docker Compose(可选)

      获取源码

      SQLE 前端与后端代码分两个仓库维护,所以想要通过源码安装,需要构建前后端代码。

      首先选择一个源码安装的工作目录,例如 ~/sqle-build/。

      获取后端源码:

      cd ~/sqle-build/
      git clone https://github.com/actiontech/sqle.git
      cd sqle && git checkout -b release-3.2310.x

      cd ~/sqle-build/
      git clone https://github.com/actiontech/dms.git
      cd dms && git checkout -b release-3.2310.x

      获取前端源码:

      cd ~/sqle-build/
      git clone https://github.com/actiontech/dms-ui.git

      编译源码

      编译前端代码,并将前端代码拷贝至后端代码目录:

      cd ~/sqle-build/dms-ui
      docker run --rm -v $PWD:/app -w /app gplane/pnpm:8.3.1 sh -c "git config --global --add safe.directory /app && pnpm config set registry https://registry.npm.taobao.org && pnpm install --no-frozen-lockfile && pnpm build"
      rm -rf ~/sqle-build/sqle/static && cp -r ~/sqle-build/dms-ui/packages/base/dist ~/sqle-build/sqle/static

      编译后端代码并打包:

      cd ~/sqle-build/dms
      make docker_install
      cp -r ~/sqle-build/dms/bin ~/sqle-build/sqle/bin
      cd ~/sqle-build/sqle
      make docker_rpm_with_dms

      打包完成后会在当前目录下生成一个 SQLE 的 RPM 包,后续的步骤参考:RPM 部署

      - + \ No newline at end of file diff --git a/docs/dev-manual/OpenAPI/dmstoken/index.html b/docs/dev-manual/OpenAPI/dmstoken/index.html index b88d8181..b0a14c0f 100644 --- a/docs/dev-manual/OpenAPI/dmstoken/index.html +++ b/docs/dev-manual/OpenAPI/dmstoken/index.html @@ -3,16 +3,16 @@ -SQLE如何鉴权 | SQLE 文档 - +如何对接SQLE | SQLE 文档 +
      -
      版本:v3

      SQLE如何鉴权

      本文档旨在介绍如何将您的应用与 SQLE 进行对接,将 SQLE 成为应用生态中的一环,并利用其提供的 SQL 审核和智能扫描等能力。对接 SQLE 是 SQLE 社区中常见的需求之一。为了帮助开发者顺利完成应用与 SQLE 的对接,本文档提供了对接 SQLE 的基本思路,并记录了一些常见问题的解答。本文档也会持续更新。如果您需要进一步的支持,请加入 SQLE 社区服务群,提出您的需求,我们将竭诚为您服务。👉社区支持

      调用登录SQLE的接口获取dms-token

      在SQLE更新到3.0之后,DMS接管了SQLE的部分功能,前端通过访问DMS来访问SQLE,用于鉴权的token存放在Cookie的dms-token中,若要获取到dms-token,需要先调用登录SQLE的接口,使用SQLE中存在的账号及其密码登录SQLE,从响应体或响应的Cookie中获取dms-token

      请求

      • 请求URL: http://{ip:port}/v1/dms/sessions
      • 请求方法: POST
      • Content-Type: application/json

      请求体/负载示例:

      {
      "session":{
      "username":"用户名称",
      "password":"用户密码"
      }
      }

      响应

      您可以在Cookie中获取到dms-token

      NameValueDomainPathExpiresMaxAgeHttpOnlySecure
      dms-token{dms-token值}{ip地址}-{dms-token过期时间}---

      igcookie

      您也可以在响应体中获取到dms-token值

      {
      "data": {
      "token": "{dms-token值}"
      },
      "code": 0,
      "message": ""
      }

      igpreview

      使用dms-token调用SQLE的接口

      在接下来请求的Cookie中带上 dms-token。SQLE会使用dms-token进行鉴权。

      以进行SQL审核的接口为例:

      Method: POST 
      URL: http://dms_ip:dms_port/sqle/v1/projects/default/sql_audit_records
      Content-Type: multipart/form-data;
      Cookie: dms-token={dms-token值}
      Payload:
      instance_name: MySQL
      instance_schema: test_schema
      sqls: show tables;

      注意事项

      SQLE的大部分接口都会对dms-token进行校验,若未携带dms-token或携带错误的dms-token,请求都会被拦截,从而导致失败。 -请求未携带dms-token时,响应如下:

      {
      "message": "can not find dms-token"
      }

      请求携带错误的dms-token时,响应如下:

      {
      "message": "invalid or expired jwt"
      }

      对接SQLE的功能

      确认接口调用流程:

      若您需要对接某个SQLE的功能,可以打开SQLE的前端界面,点击F12打开开发人员工具,对您想要对接的功能进行操作,然后参考前端界面的接口调用流。即可确认接口调用的流程。

      使用dms-token调用SQLE的接口中,示例的SQL审核的接口是创建SQL审核的http调用流程的其中一步,要完整的对接SQL审核功能,可以参考前端的调用 -usepreview

      确认接口参数

      接口可以参考在github上的开源项目的swagger接口文档。

      1. SQLE的Swagger文档地址:https://github.com/actiontech/sqle/tree/main/sqle/docs
      2. DMS的Swagger文档地址:https://github.com/actiontech/dms/tree/main/api

      喜欢的话可以给我们一个Star呢!(●'◡'●)

      - +
      版本:v3

      如何对接SQLE

      本文档旨在介绍如何将您的应用与 SQLE 进行对接,将 SQLE 成为应用生态中的一环,并利用其提供的 SQL 审核和智能扫描等能力。对接 SQLE 是 SQLE 社区中常见的需求之一。为了帮助开发者顺利完成应用与 SQLE 的对接,本文档提供了对接 SQLE 的基本思路,并记录了一些常见问题的解答。本文档也会持续更新。如果您需要进一步的支持,请加入 SQLE 社区服务群,提出您的需求,我们将竭诚为您服务。👉社区支持

      调用登录SQLE的接口获取dms-token

      在SQLE更新到3.0之后,DMS接管了SQLE的部分功能,前端通过访问DMS来访问SQLE,用于鉴权的token存放在Cookie的dms-token中,若要获取到dms-token,需要先调用登录SQLE的接口,使用SQLE中存在的账号及其密码登录SQLE,从响应体或响应的Cookie中获取dms-token

      请求

      • 请求URL: http://{ip:port}/v1/dms/sessions
      • 请求方法: POST
      • Content-Type: application/json

      请求体/负载示例:

      {
      "session":{
      "username":"用户名称",
      "password":"用户密码"
      }
      }

      响应

      您可以在Cookie中获取到dms-token

      NameValueDomainPathExpiresMaxAgeHttpOnlySecure
      dms-token{dms-token值}{ip地址}-{dms-token过期时间}---

      igcookie

      您也可以在响应体中获取到dms-token值

      {
      "data": {
      "token": "{dms-token值}"
      },
      "code": 0,
      "message": ""
      }

      igpreview

      使用dms-token调用SQLE的接口

      在接下来请求的Cookie中带上 dms-token。SQLE会使用dms-token进行鉴权。

      以进行SQL审核的接口为例:

      Method: POST 
      URL: http://dms_ip:dms_port/sqle/v1/projects/default/sql_audit_records
      Content-Type: multipart/form-data;
      Cookie: dms-token={dms-token值}
      Payload:
      instance_name: MySQL
      instance_schema: test_schema
      sqls: show tables;

      注意事项

      SQLE的大部分接口都会对dms-token进行校验,若未携带dms-token或携带错误的dms-token,请求都会被拦截,从而导致失败。 +请求未携带dms-token时,响应如下:

      {
      "message": "can not find dms-token"
      }

      请求携带错误的dms-token时,响应如下:

      {
      "message": "invalid or expired jwt"
      }

      对接SQLE的功能

      确认接口调用流程

      若您需要对接某个SQLE的功能,可以打开SQLE的前端界面,点击F12打开开发人员工具,对您想要对接的功能进行操作,然后参考前端界面的接口调用流。即可确认接口调用的流程。

      使用dms-token调用SQLE的接口中,示例的SQL审核的接口是创建SQL审核的http调用流程的其中一步,要完整的对接SQL审核功能,可以参考前端的调用 +usepreview

      确认接口参数

      接口可以参考在github上的开源项目的swagger接口文档。

      1. SQLE的Swagger文档地址:https://github.com/actiontech/sqle/tree/main/sqle/docs
      2. DMS的Swagger文档地址:https://github.com/actiontech/dms/tree/main/api

      喜欢的话可以给我们一个Star呢!(●'◡'●)

      + \ No newline at end of file diff --git a/docs/dev-manual/intro/index.html b/docs/dev-manual/intro/index.html index 4ec89255..fc44acb5 100644 --- a/docs/dev-manual/intro/index.html +++ b/docs/dev-manual/intro/index.html @@ -4,13 +4,13 @@ 产品架构 | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/dev-manual/plugins/howtodev/index.html b/docs/dev-manual/plugins/howtodev/index.html index b1b90609..1d7b88e9 100644 --- a/docs/dev-manual/plugins/howtodev/index.html +++ b/docs/dev-manual/plugins/howtodev/index.html @@ -4,15 +4,15 @@ 数据库审核插件开发 | SQLE 文档 - +
      版本:v3

      数据库审核插件开发

      在本篇文档中,会介绍如何开发一个数据库审核插件,分为快速开始部分和详细部分。

      • 如果你是一个对 Go 语言不太了解的人,可以先通过快速开始部分的文档,实现一个简单的数据库审核插件。
      • 当你对插件开发有了一定的了解之后,可以通过详细部分的文档,通过更多自定义的方式,实现更加复杂的数据库审核插件。

      快速开始

      前置

      1. 语法

      由于 SQLE 是一个用 Go 语言开发的开源项目,如果你对 Go 语言完全不了解,需要先了解 Go 语言的基础语法,建议使用官方的 Go 语言快速开始文档(Go Tour 或者 Go 语言之旅),如果你已经了解了 Go 语言的基础语法,可以直接跳过本部分。

      2. 包管理

      SQLE 插件是一个独立于 SQLE 的进程,所以编写插件的方式与开发一个新的 Go 语言项目并没有什么差异。Go 语言项目使用 Go Modules 来管理包,所以在开始之前你需要先了解一下 Go Modules 的使用方法。建议参考这篇文档,文档中大致介绍了如果开始一个新的 Go 语言项目,并通过 Go Modules 的方式来调用其他项目的包,如果你已经了解了 Go Modules 的使用方法,可以直接跳过本部分。

      3. Go语言项目构建

      编写插件

      这一小节会假设你已经创建了一个由 Go Modules 管理的审核插件项目。下面开始介绍插件核心代码的开发。

      1. 数据库插件介绍

      SQLE 为了方便插件的开发,在自身的插件层之上做了一层封装(Adaptor),插件开发者可以使用这个封装库来快速的开发一个数据库审核插件。

      在开发之前,你需要先引入 SQLE:

      go get github.com/actiontech/sqle@v2.2305.0-pre2 # 此版本为该文档编辑时的最新版本

      选择 SQLE 中两个库插件相关的库:

      • github.com/actiontech/sqle/sqle/driver
      • github.com/actiontech/sqle/sqle/pkg/driver
      提示
      • 第一个库定义了插件规则的结构体,在你编写插件规则时需要用到这个库。
      • 第二个库中实现了一些默认的插件,在引入这个库后,只需要实现相应的规则与规则处理函数即可。其中三个默认的插件为:
        • PostgreSQL
        • Oracle
        • SQL Server
      • 如果这三个默认的插件不能满足需求,可以自己实现一个插件,参考本篇文档自定义插件小节。

      2. 选择插件

      下面假设你想要实现一个 SQL Server 的审核插件。在 main 函数中创建一个空的 SQL Server 审核插件,这时你的 main 文件应该是这样的:

      package main

      import (
      "github.com/actiontech/sqle/sqle/driver"
      adaptor "github.com/actiontech/sqle/sqle/pkg/driver"
      )

      func main() {
      plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})
      }

      3. 编写插件规则与规则处理函数

      假设你需要实现一个规则,该规则检查 SQL 是否使用了 select *。定义规则如下:

      Rule{
      Name: "aviod_select_all_column", # 规则ID,该值会与插件类型一起作为这条规则在 SQLE 的唯一标识
      Desc: "避免查询所有的列", # 规则描述
      Category: "DQL规范", # 规则分类,用于分组,相同类型的规则会在 SQLE 的页面上展示在一起
      Level: driver.RuleLevelError, # 规则等级,表示该规则的严重程度。在插件注册阶段,会使用所有 RuleLevelError 级别的规则创建一个默认的规则模板。
      }

      规则的处理函数如下:

      func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {
      if strings.Contains(sql, "select *") {
      return rule.Desc, nil
      }
      return "", nil
      }

      这里为了演示,这个处理函数只是简单的使用了字符串匹配的方式,你也可以使用正则或者 AST 语法树的方式来检查 SQL 语句(AST 的方式会在自定义SQL解析器一小节中介绍)。

      最后将插件规则与规则处理函数通过 plugin.AddRule()函数注册到 SQLE 中,注册完成后,你的 main 文件应该是这样的:

      package main

      import (
      "github.com/actiontech/sqle/sqle/driver"
      adaptor "github.com/actiontech/sqle/sqle/pkg/driver"
      )

      func main() {
      plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})
      aviodSelectAllColumn := &driver.Rule{
      Name: "aviod_select_all_column",
      Desc: "避免查询所有的列",
      Category: "DQL规范",
      Level: driver.RuleLevelError,
      }
      aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {
      if strings.Contains(sql, "select *") {
      return rule.Desc, nil
      }
      return "", nil
      }
      plugin.AddRule(aviodSelectAllColumn, aviodSelectAllColumnHandler)

      ////////////////////////////////////////////
      // ... 编写更多规则并通过 AddRule 注册到 SQLE 中
      ////////////////////////////////////////////

      // 最后关键一步,调用 `plugin.Serve()` 启动插件:
      plugin.Serve()
      }

      4. 构建并使用插件

      和通常的程序编写流程一样,编写完插件代码后,需要将其构建成二进制文件,然后才能将其注册到 SQLE 中。执行 go build -o ${二进制名} main.go 将插件代码构建成二进制文件。最后参考数据库审核插件使用 来使用你的自定义插件。

      自定义部分

      1.自定义SQL解析器

      前面介绍的审核规则都是通过字符串匹配的方式来解析 SQL 的内容。这种方式适合规则较少且 SQL 简单的情况下使用。

      如果需要对 SQL 进行更复杂的解析匹配,恰好你选择的数据库插件又有相应的 SQL 解析器,这时可以使用自定义 SQL 解析器的方式来编写插件。

      首先通过调用 WithSQLParser() 注册自己的 SQL 解析器。在添加规则时则使用 plugin.AddRuleWithSQLParser() 添加带有解析器的处理函数。在处理函数中,将 interface{} 断言成具体的 AST 语法树,通过语法树级别的操作来更加精细的处理 SQL。PostgreSQL 提供了基于 cgo 调用的解析器(见:PostgreSQL SQL 解析器),下面的代码展示了如何写一个 SQL 解析器的插件:

      func main() {
      plugin := adaptor.NewAdaptor(&adaptor.PostgresDialector{})

      // 依然是定义规则
      aviodSelectAllColumn := &driver.Rule{
      Name: "aviod_select_all_column",
      Desc: "避免查询所有的列",
      Category: "DQL规范",
      Level: driver.RuleLevelError,
      }

      // 依然是定义处理函数,这时处理函数的参数是 interface{} 类型,需要将其断言成 AST 语法树。
      aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, ast interface{}) (string, error) {
      node, ok := ast.(*parser.RawStmt)
      if !ok {
      return "", errors.New("ast is not *parser.RawStmt")
      }

      switch stmt := node.GetStmt().GetNode().(type) {
      case *parser.Node_SelectStmt:
      for _, target := range stmt.SelectStmt.GetTargetList() {
      column, ok := target.GetResTarget().GetVal().GetNode().(*parser.Node_ColumnRef)
      if !ok {
      continue
      }
      for _, filed := range column.ColumnRef.GetFields() {
      _, ok = filed.GetNode().(*parser.Node_AStar)
      if ok {
      return rule.Desc, nil
      }
      }
      }
      }
      return "", nil
      }

      // 依然是注册规则,与前面的例子不同的是,这时使用的是 `plugin.AddRuleWithSQLParser()` 。
      plugin.AddRuleWithSQLParser(aviodSelectAllColumn, aviodSelectAllColumnHandler)

      // 依然是启动插件,与前面的例子不同的是,需要将 SQL 解析的方法注册到插件中。
      plugin.Serve(adaptor.WithSQLParser(func(sql string) (ast interface{}, err error) {
      // parser.Parse 使用 PostgreSQL 的解析器,将 sql 解析成 AST 语法树。
      result, err := parser.Parse(sql)
      if err != nil {
      return nil, errors.Wrap(err, "parse sql error")
      }
      if len(result.Stmts) != 1 {
      return nil, fmt.Errorf("unexpected statement count: %d", len(result.Stmts))
      }

      // 将 SQL 的语法树返回。
      return result.Stmts[0], nil
      }))
      }

      2.自定义插件

      如果 driver 包中默认的 PostgreSQL、Oracle 与 SQL Server 插件不能满足你的需求的话,你也可以自定义一个数据库插件。方法就是实现一个接口:

      type Dialector interface {
      Dialect(dsn *driver.DSN) (driverName string, dsnDetail string)
      ShowDatabaseSQL() string
      String() string
      }

      在实现这个接口前,你需要先了解一下 Go 语言原生 Driver 的概念(以 MySQL Driver 为例)。

      下面介绍 Dialector 接口的含义:

      • Dialect:实现该方法,通过 DSN 提供的 Host Port User Password Database 信息和你选择的数据库 driver,构造出 driverName 与 dsnDetail。driverName 是你引入的数据库 driver 名称;dsnDetail 是连接数据库驱动的必要信息。这两个参数最终会通过 sql.Open() 来创建一个数据库连接。
      • ShowDatabaseSQL:实现该方法,可以自定义你数据源中默认展示的数据库列表,该数据库列表最终会展示在工单审核列表的数据库下拉框中,如下图: pluginworkflow
      • String:实现该方法,该方法的返回值会作为你实现的数据库审核插件名展示在 SQLE 的相关下拉框中,如下图: -plugintype

      将你的实现作为 NewAdaptor 的参数传入即可,后续的步骤与前面规则相关的介绍一致。

      详细

      SQLE与插件的交互图

      sqleplugin

      插件接口说明

      1.注册接口说明

      该接口定义了该插件的名称和实现的规则,SQLE启动的时候会调用该接口获取插件名称和该插件支持的规则列表。

      type Registerer interface {
      Name() string
      Rules() []*model.Rule
      }
      • Name: 插件名,最终会展示在 SQLE 页面的数据源类型的下拉框中;
      • Rules: 插件支持的规则,在启动 SQLE 时,会调用插件获取这些规则,你将在规则模板内看到它们。

      2.审核接口说明

      该接口定义了SQLE进行审核时,由插件完成的和具体数据库底层交互的操作

      type Driver interface {
      Close(ctx context.Context)
      Ping(ctx context.Context) error
      Exec(ctx context.Context, query string) (driver.Result, error)
      Tx(ctx context.Context, queries ...string) ([]driver.Result, error)
      Schemas(ctx context.Context) ([]string, error)
      Parse(ctx context.Context, sqlText string) ([]Node, error)
      Audit(ctx context.Context, sql string) (*AuditResult, error)
      GenRollbackSQL(ctx context.Context, sql string) (string, string, error)
      }
      • Close: 关闭审核插件使用的相关资源,通常是完成一次审核后,关闭数据库连接等资源;
      • Ping: 检测数据库的连接性,通常在添加数据源时,为了检测填写的数据是否正确,会调用此方法;
      • Exec: 执行 SQL 上线时执行此方法;
      • Tx: 执行 SQL 上线时执行此方法,一般当SQL是DML时且需要事务执行时会批量执行SQL;
      • Schemas: 返回审核插件展示给用户的 Schema 列表;
      • Parse: 解析审核插件支持的 SQL 格式;
      • Audit: 根据指定的SQL语句生成审核建议;
      • GenRollbackSQL: 生成 SQL 的回滚语句。

      3.插件的配置信息说明

      type Config struct {
      DSN *DSN
      Rules []*Rule
      }
      • DSN: 数据源信息, 待审核的数据库;
      • Rules: 本次审核制定的规则列表。

      4.初始化函数说明

      插件的主进程入口,由插件的 main 函数调用即可实现插件

      func ServePlugin(r Registerer, newDriver func(cfg *Config) Driver)
      • r: 传入 Registerer 的接口实现, 由插件侧实现;
      • newDriver: 传入 Driver 的初始化函数,该函数的入参是 Config 是由 SQLE 向插件传递的配置信息,函数的出参是 Driver 的接口实现,由插件侧实现。
      - +plugintype

      将你的实现作为 NewAdaptor 的参数传入即可,后续的步骤与前面规则相关的介绍一致。

      详细

      SQLE与插件的交互图

      sqleplugin

      插件接口说明

      1.注册接口说明

      该接口定义了该插件的名称和实现的规则,SQLE启动的时候会调用该接口获取插件名称和该插件支持的规则列表。

      type Registerer interface {
      Name() string
      Rules() []*model.Rule
      }
      • Name: 插件名,最终会展示在 SQLE 页面的数据源类型的下拉框中;
      • Rules: 插件支持的规则,在启动 SQLE 时,会调用插件获取这些规则,你将在规则模板内看到它们。

      2.审核接口说明

      该接口定义了SQLE进行审核时,由插件完成的和具体数据库底层交互的操作

      type Driver interface {
      Close(ctx context.Context)
      Ping(ctx context.Context) error
      Exec(ctx context.Context, query string) (driver.Result, error)
      Tx(ctx context.Context, queries ...string) ([]driver.Result, error)
      Schemas(ctx context.Context) ([]string, error)
      Parse(ctx context.Context, sqlText string) ([]Node, error)
      Audit(ctx context.Context, sql string) (*AuditResult, error)
      GenRollbackSQL(ctx context.Context, sql string) (string, string, error)
      }
      • Close: 关闭审核插件使用的相关资源,通常是完成一次审核后,关闭数据库连接等资源;
      • Ping: 检测数据库的连接性,通常在添加数据源时,为了检测填写的数据是否正确,会调用此方法;
      • Exec: 执行 SQL 上线时执行此方法;
      • Tx: 执行 SQL 上线时执行此方法,一般当SQL是DML时且需要事务执行时会批量执行SQL;
      • Schemas: 返回审核插件展示给用户的 Schema 列表;
      • Parse: 解析审核插件支持的 SQL 格式;
      • Audit: 根据指定的SQL语句生成审核建议;
      • GenRollbackSQL: 生成 SQL 的回滚语句。

      3.插件的配置信息说明

      type Config struct {
      DSN *DSN
      Rules []*Rule
      }
      • DSN: 数据源信息, 待审核的数据库;
      • Rules: 本次审核制定的规则列表。

      4.初始化函数说明

      插件的主进程入口,由插件的 main 函数调用即可实现插件

      func ServePlugin(r Registerer, newDriver func(cfg *Config) Driver)
      • r: 传入 Registerer 的接口实现, 由插件侧实现;
      • newDriver: 传入 Driver 的初始化函数,该函数的入参是 Config 是由 SQLE 向插件传递的配置信息,函数的出参是 Driver 的接口实现,由插件侧实现。
      + \ No newline at end of file diff --git a/docs/dev-manual/plugins/howtouse/index.html b/docs/dev-manual/plugins/howtouse/index.html index 38250186..4aaba549 100644 --- a/docs/dev-manual/plugins/howtouse/index.html +++ b/docs/dev-manual/plugins/howtouse/index.html @@ -4,7 +4,7 @@ 数据库审核插件使用 | SQLE 文档 - + @@ -14,7 +14,7 @@ pluginrules 验证能否添加插件类型的数据源:添加数据源,显示已经可以添加 PostgreSQL 类型的数据源。 plugintype

      - + \ No newline at end of file diff --git a/docs/dev-manual/plugins/intro/index.html b/docs/dev-manual/plugins/intro/index.html index e4025e7a..dddb931b 100644 --- a/docs/dev-manual/plugins/intro/index.html +++ b/docs/dev-manual/plugins/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v3

      功能说明

      SQLE 使用 go-plugin 来实现审核插件化。插件只需实现两个接口,即可实现与 SQLE 主进程通信(详情见审核插件开发)。

      将 SQLE 的数据库审核插件化主要有以下目的:

      • 将审核流程(业务)的代码和具体审核实现的代码进行分离,支持多数据源类型的审核
      • 审核插件在满足基本规范情况下,与 SQLE 独立开发

      部分插件项目地址

      - + \ No newline at end of file diff --git a/docs/guide/index.html b/docs/guide/index.html index 7dcbd8f4..6c3dbdaf 100644 --- a/docs/guide/index.html +++ b/docs/guide/index.html @@ -4,13 +4,13 @@ 用户指南 | SQLE 文档 - +
      版本:v3

      用户指南

      产品概述

      SQLE 是爱可生自主研发支持多元数据库的 SQL 质量管理平台。应用于开发、测试、上线发布、生产运行阶段的 SQL 质量治理。通过 “建立规范、事前控制、事后监督、标准发布” 的方式,为企业提供 SQL 全生命周期质量管控能力,规避业务 SQL 不规范引起的生产事故,提高业务稳定性,也可推动企业内部开发规范快速落地。

      - + \ No newline at end of file diff --git a/docs/intro/index.html b/docs/intro/index.html index 660868f6..e11f8d97 100644 --- a/docs/intro/index.html +++ b/docs/intro/index.html @@ -4,13 +4,13 @@ 产品介绍 | SQLE 文档 - +
      版本:v3

      产品介绍

      SQLE 是爱可生自主研发支持多元数据库的 SQL 质量管理平台。应用于开发、测试、上线发布、生产运行阶段的 SQL 质量治理。通过 “建立规范、事前控制、事后监督、标准发布” 的方式,为企业提供 SQL 全生命周期质量管控能力,规避业务 SQL 不规范引起的生产事故,提高业务稳定性,也可推动企业内部开发规范快速落地。

      产品特性

      更丰富的数据源支持

      支持主流商业和开源数据库,包括 MySQL、PostgreSQL、Oracle、SQL Server、DB2、TiDB、OceanBase 等,持续增加新的数据源类型,以满足您不同的需求。

      更全面的审核规则

      审核规则源自我们经验丰富的 DBA 运维专家团队多年的技术积累。您可以借助我们的审核规则快速达到专家级的 SQL 诊断能力,并且我们的规则库目前已经拥有规则 700+,并在不断增加中。

      更智能的 SQL 采集

      提供多种智能扫描方式,例如慢日志、JAVA 应用等,以满足您的事前和事后 SQL 采集需求。一旦配置完成,我们的系统会自动持续采集各业务库中的 SQL,极大地减轻了您对 SQL 监督的压力,并及时发现问题 SQL。

      更高效的审批流转路径

      提供标准化的工作流,化解了在沟通和进度追踪上的难题,从而提升了上线效率。您可以通过与飞书、钉钉等多种消息通道的对接,及时了解更新进度,减少了沟通交流的成本。

      更便捷的 SQL 数据操作

      提供审核管控的SQL客户端,杜绝执行不合规SQL

      全生命周期的 SQL 管控

      提供 SQL 全流程的管控视角,帮助您统一管理SQL质量。您可以追踪问题SQL的解决进度,并提供快捷的优化功能,以提升 SQL 的效率。

      使用场景

      SQL 太复杂,执行性能低,如何优化?
      知识赋能,助您构建质量规范、提升 SQL 质量。提供审核规则及规则知识库,将专家经验赋能开发,快速提升问题 SQL 诊断能力,并支持私有云用户自主沉淀。
      • 从审核结果看 SQL 优化方向

        平台提供丰富的审核规则,用以覆盖不同 SQL 审核场景,您可以根据触发的规则,有针对性地优化 SQL。

      • 从知识库了解问题解决经验

        每个规则包含对应的知识库,是运维专家的经验沉淀,您可以借鉴并强化自身的运维认知。

      • 对知识库做自主沉淀

        除了平台提供的知识库信息,我们还支持私有云用户在知识库中进行自主沉淀,建立您的质量规范。

      应用数量多,SQL 采集难,如何摆脱重复劳动?

      提供智能扫描任务,可以自动持续采集不同来源的 SQL,帮助您摆脱重复劳动,极大地降低 SQL 采集难度。同时,根据不同业务要求定期巡检和生成审核报告,快速发现问题并提供优化建议。

      • 配置扫描任务,释放 SQL 采集负担

        平台支持十余种扫描任务类型,支持采集不同来源的 SQL,如:JAVA 应用程序、慢日志文件、TopSQL、MyBatis 文件等。

      • 定期持续巡检,提前发现问题 SQL

        平台将根据配置的采集周期,为您自动、持续采集相应 SQL。

        平台将根据配置的审核规则模板,定期巡检和生成审核报告,有助于您及时发现问题 SQL,并提供优化方向。

      公司规模大,流程周转长,如何有效追踪进度?
      提供标准化工作流,帮助提高工作透明度和上线效率。您可以根据实际组织架构配置自定义审批流程模板,化解沟通和进度追踪难题。同时,平台支持与多种消息通道对接,可以及时更新进度,减少沟通成本。
      • 生成您的自定义审批流程

        平台支持您根据自身实际业务,配置SQL审批、上线流程,适配不同业务的上线节奏,提升业务响应效率。

      • 配置消息推送渠道,快捷订阅变更

        平台支持对接多种主流IM应用,您可以将 SQL 审核集成到日常工作流中,协同办公,提升工作效率。

      SQL 变更频,审批瓶颈大,如何分散审核压力?
      将审核环节灵活嵌入到研发流程,从研发环节入手,减轻 DBA 审核压力。平台支持多种事前审核场景,将 SQL 审核前置到代码阶段,从源头实现降本增效。
      • 使用 IDE 插件,前置规范检查

        可以使用 IDE 审核插件,在代码编写过程中进行实时审核和规范检查,实现编码即审核的效果。

      • 对接 CI/CD 流程,保证应用代码上线无忧

        可以配置 CI/CD 审核流程,自动抓取代码变更中的 SQL,减少人工错误和代码缺陷,提高开发团队的效率和代码质量。

      - + \ No newline at end of file diff --git a/docs/online-demo/index.html b/docs/online-demo/index.html index 64e5368b..c71a63ef 100644 --- a/docs/online-demo/index.html +++ b/docs/online-demo/index.html @@ -4,13 +4,13 @@ 在线体验 | SQLE 文档 - +
      版本:v3

      在线体验

      地址

      登录用户

      userpassword
      adminadmin

      测试 MySQL

      variablevalue
      host20.20.20.3
      port3306
      userroot
      passtest

      注意事项

      1. 该服务仅用于在线功能体验,请勿在生产环境使用;
      2. 该测试服务数据会定期清理。
      - + \ No newline at end of file diff --git a/docs/quick-usage/index.html b/docs/quick-usage/index.html index c52a68a1..0a7a7cd9 100644 --- a/docs/quick-usage/index.html +++ b/docs/quick-usage/index.html @@ -4,7 +4,7 @@ 快速开始 | SQLE 文档 - + @@ -21,7 +21,7 @@ project-workflow-1 点击批量立即上线,完成SQL上线操作。 project-workflow-1

      提示

      SQLE 支持通过邮件,微信企业号等途径推送工单通知。也可以配置工单对接,在钉钉、飞书上进行工单审批

      - + \ No newline at end of file diff --git a/docs/support/commercial-support/index.html b/docs/support/commercial-support/index.html index 102ee362..00d736d3 100644 --- a/docs/support/commercial-support/index.html +++ b/docs/support/commercial-support/index.html @@ -4,13 +4,13 @@ 商业支持 | SQLE 文档 - +
      版本:v3

      商业支持

      如果想获得 SQLE 的商业支持, 您可以扫描下方的微信扫描小程序码,进行在线咨询预约:

      commercial-support

      此外,您也可以直接联系我们的商业支持团队获取更多信息,联系方式如下:

      400-820-6580 / 13916131869 / 18930110869

      - + \ No newline at end of file diff --git a/docs/support/community-support/index.html b/docs/support/community-support/index.html index b76ca4a4..01c5560c 100644 --- a/docs/support/community-support/index.html +++ b/docs/support/community-support/index.html @@ -4,13 +4,13 @@ 社区支持 | SQLE 文档 - +
      版本:v3

      社区支持

      微信技术交流群

      欢迎加入微信群进行交流,反馈使用中遇到的问题或者使用建议。

      进群方式:添加管理员微信 ActionOpenSource

      爱可生社区公众号

      关注爱可生社区公众号,获取最新SQLE动态包括新功能清单与产品规划。

      项目列表

      - + \ No newline at end of file diff --git a/docs/support/compare/index.html b/docs/support/compare/index.html index 64c1f4e1..4c414848 100644 --- a/docs/support/compare/index.html +++ b/docs/support/compare/index.html @@ -4,13 +4,13 @@ 功能对比 | SQLE 文档 - +
      版本:v3

      功能对比

      社区版及企业版功能对比

      模块功能企业版社区版
      平台基础能力资源管理
      权限管理
      用户对接:LDAP
      用户对接:Oauth2.0单点登录
      对接钉钉在线审批
      支持爱可生云树DMP数据源同步
      量化管理项目管理
      报表统计
      Dashboard
      SQL管控
      支持的数据源类型MySQL
      Mycat
      TDSQL for InnoDB
      OceanBase For MySQL
      DB2
      TiDB
      PostgreSQL
      Oracle
      OceanBase For Oracle
      SQL Server
      达梦
      SQL审核同一工单多数据源
      多种SQL上传方式
      IDE审核插件
      快捷审核
      工单审核
      SQL美化
      动态配置审核规则模板
      规则知识库
      审核白名单
      基于规则的审核建议
      审核建议去重展示
      SQL下钻分析
      大表进行 Online DDL
      SQL上下文关联
      生成回滚语句
      审核评分
      审核报告下载
      SQL语句下载
      工单上线自定义审核流程
      多数据源批量上线
      立即上线
      定时上线
      线下执行,线上标记
      中止上线
      智能扫描MySQL|MyBatis 扫描
      MySQL|库表元数据
      MySQL|阿里云 RDS慢日志
      MySQL|阿里云 RDS审计日志
      MySQL|百度云RDS慢日志
      MySQL|华为云RDS慢日志
      MySQL|慢日志审核
      MySQL|会话SQL扫描
      SQL文件扫描
      应用程序SQL抓取
      支持JAVA探针采集JAVA应用SQL
      Oracle TopSQL
      TiDB审计日志
      OceanBase for MySQL|MyBatis 扫描
      OceanBase for MySQL|Top SQL
      自定义(通过调用接口推送bash脚本、python程序中的SQL)
      告警通知邮件告警
      微信企业号告警
      飞书告警
      webhook告警
      SQL工作台集成CloudBeaver-提供在线SQL客户端
      安全管控
      OpenAPI提供完整的标准接口方案
      专家服务提供数据对接、SQL规范制定、SQL优化建议等7x24小时服务

      各数据源支持程度对比

      提示

      目前支持的数据源类型中,除MySQL为社区版,其他均为企业版。

      MySQL系

      MySQLMycatTDSQL for InnoDBOceanBase For MySQLTiDB
      功能SQL分析
      SQL上下文
      元数据检查
      SQL回滚
      上线中止
      扫描任务库表元数据
      慢日志
      Processlist
      TopSQL
      TiDB审计日志
      MyBatis
      阿里RDS MySQL慢日志
      阿里RDS MySQL审计日志
      百度云RDS MySQL慢日志扫描
      SQL文件扫描
      应用程序抓取
      自定义
      其他规则数量155122146117119

      非MySQL系

      OracleOceanBase For OracleDB2PostgreSQLSQL server达梦
      功能SQL分析
      SQL上下文
      元数据检查
      SQL回滚
      上线中止
      扫描任务库表元数据
      慢日志
      Processlist
      TopSQL
      TiDB审计日志
      MyBatis
      阿里RDS MySQL慢日志
      阿里RDS MySQL审计日志
      百度云RDS MySQL慢日志扫描
      SQL文件扫描
      应用程序抓取
      自定义
      其他规则数量8583602123
      - + \ No newline at end of file diff --git a/docs/user-manual/customrule/index.html b/docs/user-manual/customrule/index.html index 4f6bff00..b69da89e 100644 --- a/docs/user-manual/customrule/index.html +++ b/docs/user-manual/customrule/index.html @@ -4,7 +4,7 @@ 自定义审核规则 | SQLE 文档 - + @@ -13,7 +13,7 @@ customrule-regex

      提示

      当前支持golang正则语法。

      应用自定义规则

      1.编辑数据源应用的规则模板,启用新建的自定义规则; 2.创建工单,新建表customers123,从工单审核结果中可以看到自定义规则已生效; customrule-result

      提示

      目前仅支持在SQLE平台新建自定义规则,暂不支持导入导出规则模板时携带自定义规则。

      后续操作

      目前,自定义规则也支持编辑知识库页面,以进一步优化审核规则的使用。可以参考知识库

      - + \ No newline at end of file diff --git a/docs/user-manual/intro/index.html b/docs/user-manual/intro/index.html index 81fba53b..b31cc1f7 100644 --- a/docs/user-manual/intro/index.html +++ b/docs/user-manual/intro/index.html @@ -4,13 +4,13 @@ 用户手册 | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/user-manual/jetbrains/index.html b/docs/user-manual/jetbrains/index.html index 9ebc0070..be182408 100644 --- a/docs/user-manual/jetbrains/index.html +++ b/docs/user-manual/jetbrains/index.html @@ -4,7 +4,7 @@ IDEA审核插件 | SQLE 文档 - + @@ -15,7 +15,7 @@ ide-install-use

      2.用户也可以选中文件后,点击右键, 选中 [SQLE] - [Audit],将获得对文件中SQL的审核结果,支持一次性审核整个文件夹下的MyBatis文件; ide-install-use2

      审核结果

      插件会以弹窗的形式将审核结果进行展示,用户可查看SQL触发的审核规则,并查看对应的知识库说明。 ide-install-result

      常见问题解答

      为什么插件配置项中的 [DB Type] 点击时偶尔会卡一下

      这是因为点击下拉框时下拉框会连接SQLE获取支持的实例类型, 这个过程可能会出现网络延迟

      SQLE在审核时使用的规则模板是什么

      SQLE会根据设置中指定的数据库类型, 选择对应类型的默认模板进行审核, 且只会使用默认模板中的静态审核规则

      我没有SQLE环境可以使用这个插件吗

      SQLE有演示环境, 如果只是想尝试一下这个插件可以连接演示环境

      插件支持哪些IDE

      Jetbrains家的所有软件和 [Android Studio] 都是支持的

      SQLE插件的配置存在什么地方

       {用户根目录}\AppData\Roaming\JetBrains\{idea版本号对应目录}\options\SQLESettings.xml
      变量说明
      用户根目录一般为 C:\Users 目录下和用户名同名的目录, 内部一般包含 '桌面', '下载' 等文件夹
      idea版本号对应目录一般为 软件名版本号 的格式, 如社区版idea 2022.1版本对应目录名为 IdealC2022.1
      - + \ No newline at end of file diff --git a/docs/user-manual/knowledgebase/index.html b/docs/user-manual/knowledgebase/index.html index a2ee1154..b49acc2e 100644 --- a/docs/user-manual/knowledgebase/index.html +++ b/docs/user-manual/knowledgebase/index.html @@ -4,13 +4,13 @@ 规则知识库 | SQLE 文档 - +
      版本:v3

      规则知识库

      使用场景

      规则知识库是用于帮助用户理解规则背景、原理、优化建议以及规范SQL示例的页面。通过规则知识库,用户可以更深入和全面地了解规则,以实现更高效的开发和优化工作。

      使用入口

      1. 在系统设置中点击查看规则,点击具体规则,再点击规则知识库标签下的查看更多按钮,即可进入规则知识库详情;
      2. 在SQL审核、工单、扫描任务详情页面中,点击触发的规则说明后的查看更多按钮,即可进入规则知识库详情;

      范围

      规则知识库目前支持内置规则和自定义规则的编辑和查看。

      编辑步骤

      限制

      目前,只有平台管理员具有规则知识库的编辑权限,以确保知识库中的信息准确且权威。

      编辑

      平台管理员可以按照以下步骤编辑规则知识库内容:

      1. 登录平台并进入规则知识库页面,入口可以参考使用入口
      2. 点击'编辑'按钮,即可修改规则对应的知识库内容。

      操作结果

      knowledgebase-use

      提示

      目前,平台已为MySQL和TDSQL两种数据库类型的规则填充了规则知识库,并正致力于为其他数据库类型提供相应的知识库内容。

      - + \ No newline at end of file diff --git a/docs/user-manual/project/analysis/index.html b/docs/user-manual/project/analysis/index.html index 2a1ddf5e..0436a3d8 100644 --- a/docs/user-manual/project/analysis/index.html +++ b/docs/user-manual/project/analysis/index.html @@ -4,13 +4,13 @@ SQL分析 | SQLE 文档 - +
      版本:v3

      SQL分析

      SQL分析是什么

      当用户需要了解执行SQL的对象情况时,可以点击SQL后的分析操作,进入SQL分析页面

      使用场景

      操作步骤

      使用限制

      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/SQLfile_audit/index.html b/docs/user-manual/project/audit_task/SQLfile_audit/index.html index 4fc1d28d..a8ecd28e 100644 --- a/docs/user-manual/project/audit_task/SQLfile_audit/index.html +++ b/docs/user-manual/project/audit_task/SQLfile_audit/index.html @@ -4,14 +4,14 @@ SQL文件扫描 | SQLE 文档 - +
      版本:v3

      SQL文件扫描

      本节介绍SQL文件扫描的应用场景及配置方法。

      备注

      平台已支持的所有数据源类型均支持SQL文件扫描

      使用场景

      当用户需要在批量执行SQL前扫描SQL,发现潜在的安全漏洞、提高数据库性能及数据库开发质量时,可以使用SQL文件进行批量扫描。

      使用方式

      前置条件

      在后端环境中准备SQL文件

      新建智能扫描任务

      进入智能扫描任务列表,点击新建,选择SQL文件扫描任务类型。

      执行Scannerd文件

      提示

      注意:使用rpm或docker部署的情况下,scannerd通常在SQLE的bin目录下。

      示例如下:

      ./scannerd sqlFile -H127.0.0.1 -N"SQLfile" -P"10000" -J"default" -D/root/sqle/sqle/cmd/scannerd/scanners/mybatis/testdata/ -A"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJ0ZXN0MDcyNCIsImV4cCI6MTcyMTcyODU0NywibmFtZSI6ImFkbWluIn0.CojdTvBkr-iN_26tWI-Kr6mMnJt1NIDr-Y3v7m9ySuM"

      参数解释如下:

      • -J, --project:说明扫描任务所在项目,例如“default”;
      • -H, --host string:指定SQLE主机所在地址;
      • -P, --port string:指定SQLE所在端口;
      • -N, --name string:指定扫描任务名称,scannerd会将获得的SQL传至指定的任务池中审核;
      • -D, --dir string:指定要扫描的SQL文件路径;
      • -A, --token string:输入扫描任务凭证token;
      • -K, --skip-sql-file-audit:只上传sql,不审核sql;
      • -S, --skip-error-sql-file; 跳过无法解析的sql文件;

      获得执行结果: sqlfile_audit

      平台查看执行结果

      • 用户进入扫描任务详情,可以查看SQLw文件中已采集到的SQL信息;
      • 用户点击立即审核,可以在扫描任务报告中获取当前SQL的审核结果;
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/baiduyunrds/index.html b/docs/user-manual/project/audit_task/baiduyunrds/index.html index 61f08433..a78ba590 100644 --- a/docs/user-manual/project/audit_task/baiduyunrds/index.html +++ b/docs/user-manual/project/audit_task/baiduyunrds/index.html @@ -4,14 +4,14 @@ 百度云RDS慢日志扫描 | SQLE 文档 - +
      版本:v3

      百度云RDS慢日志扫描

      本节介绍如何在SQLE平台监管百度云RDS实例上产生的慢SQL。

      支持的数据源类型

      • MySQL

      使用场景

      如果用户使用百度云RDS实例,并且想要监管实例上产生的慢SQL,可以通过创建一个百度云RDS慢日志扫描任务来实现。该任务将会定期扫描百度云RDS实例上的慢日志,并将扫描结果发送到SQLE中进行分析。

      前置操作

      • 用户需创建双机高可用版本的百度云RDS实例;
      • 对该实例开通慢日志;

      baiduyunrds

      操作步骤

      新建智能扫描任务

      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择百度云RDS MySQL慢日志
      • 实例ID:填写百度云RDS实例的ID。
      • Access Key:为账号安全认证中的Access Key,用于登录百度云RDS,需要与Secret Key一同使用。
      • Access Secret Key:账号安全认证中Access Key对应的Secret Key。
      • 启动任务时拉取慢日志时间范围(单位:小时,最大7天):扫描任务读取慢日志的时间范围,单位为小时,最大范围为7天。
      • 审核过去时间段内抓取的SQL(分钟): 审核该时间段内抓取到的慢SQL。
      • RDS Open API地址:RDS的地址前缀,用以调用RDS服务,需根据实例所在区域进行填写。如当前实例在华东-上海范围,则应填写rds.fsh.baidubce.com baiduyunrdsurl

      点击提交,完成扫描任务创建。

      执行结果

      • 用户进入扫描任务详情,可以查看扫描任务抓取到的慢SQL。
      • 点击立即审核,可查看对慢SQL的审核结果。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/huaweiyunrds/index.html b/docs/user-manual/project/audit_task/huaweiyunrds/index.html index a073c403..636aa6aa 100644 --- a/docs/user-manual/project/audit_task/huaweiyunrds/index.html +++ b/docs/user-manual/project/audit_task/huaweiyunrds/index.html @@ -4,14 +4,14 @@ 华为云RDS慢日志扫描 | SQLE 文档 - +
      版本:v3

      华为云RDS慢日志扫描

      本节介绍如何通过华为云SQLE平台监管华为云RDS实例上产生的慢SQL,并进行相应的分析和审核。

      支持的数据源类型

      • MySQL

      使用场景

      如果用户正在使用华为云RDS实例,并且希望监管实例上产生的慢SQL,可以通过创建华为云RDS慢日志扫描任务实现。该任务会定期扫描华为云RDS实例上的慢日志,并将扫描结果发送到SQLE平台进行分析。

      前置操作

      在进行以下操作之前,请确保已完成以下步骤:

      • 创建华为云RDS实例,并获取实例的项目ID和实例ID。
      • 开启慢日志明文显示,并设置慢查询时间阈值。参考华为云用户手册
      • 获取访问密钥。访问密钥文件需要下载至本地查看。参考华为云用户手册

      操作步骤

      新建智能扫描任务

      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择华为云RDS MySQL慢日志
      • 项目ID:实例所在项目ID;
      • 实例ID:实例ID;
      • Access Key ID:在步骤3中获取的访问密钥 ID;
      • Access Key Secret:在步骤3中获取的访问密钥Secret;
      • 启动慢日志时拉取慢日志时间范围(小时):由于开启明文显示后,华为云平台会自动删除30天前的日志,所以时间范围上限是30天;
      • 当前API开放的地区:参考华为云用户手册

      点击提交,完成扫描任务创建。

      执行结果

      • 用户进入扫描任务详情,可以查看扫描任务抓取到的慢SQL。
      • 点击立即审核,可查看对慢SQL的审核结果。

      以下是华为云RDS慢日志扫描示意图: huaweiyunrds

      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/intro/index.html b/docs/user-manual/project/audit_task/intro/index.html index e15f2169..bcd5e283 100644 --- a/docs/user-manual/project/audit_task/intro/index.html +++ b/docs/user-manual/project/audit_task/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v3

      功能介绍

      背景

      在审核工单中我们介绍了如何通过 SQLE 进行 SQL 审核并上线的流程。审核工单管理,主要解决 SQL 上线的规范化流程化的问题,它能够帮助 DBA 自动化处理整个 SQL 上线过程中一些重复繁琐的工作。

      不过审核工单管理也有它的局限性。

      • 第一,通常工单中的审核是一次性操作。上线后,通常还会有业务 SQL访问数据库。这时可能会遇到一些执行效率较低的业务 SQL 造成数据库的性能问题,因而这类业务型SQL同样需要审核。
      • 第二,临近发版,如果这时审核出 SQL 存在一些问题,是否修复这些问题,可能会受到很多因素的影响(如 SQL 问题的影响面大小,项目发版的紧急程度等),因而需要对即将上线的SQL做全量扫描。

      因而,需要引入扫描任务,进行周期性的SQL审核,用以补充工单审核覆盖不到的场景。

      SQLE扫描任务支持的采集模式

      1.SQLE 自动抓取

      • 功能说明
        • 使用SQLE自动抓取,将由SQLE获取指定的SQL文件,传输至指定审核池后,由SQLE进行审核并展示审核结果。
      • 支持的任务类型
        • 库表元数据
        • TopSQL
        • processlist列表

      2.Scanner 抓取

      • 功能说明
        • 使用Scanner抓取,可利用scanner插件获取指定的SQL文件,传输至指定审核池后,由SQLE进行审核并展示审核结果。
      • 支持的任务类型
        • 慢日志
        • Mybatis扫描

      3.OpenAPI 推送

      • 功能说明
        • 使用应用程序SQL抓取,可利用api接口动态获取指定应用程序中的SQL,传输至指定审核池后,由SQLE进行审核并展示审核结果。
      • 支持的任务类型
        • openapi推送
        • 自定义
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/java_agent_audit/index.html b/docs/user-manual/project/audit_task/java_agent_audit/index.html index b36bcc00..54b73ea3 100644 --- a/docs/user-manual/project/audit_task/java_agent_audit/index.html +++ b/docs/user-manual/project/audit_task/java_agent_audit/index.html @@ -4,13 +4,13 @@ Java探针版应用程序SQL抓取【企业版】 | SQLE 文档 - +
      版本:v3

      Java探针版应用程序SQL抓取【企业版】

      本节介绍如何利用SQLE平台抓取java应用中的SQL,选取的例子是一个开源的问卷调查java应用,架构简单,上手相对容易。

      支持的数据源类型

      • MySQL
      • Oracle
      • DB2
      • OceanBase for MySQL
      • PostgreSQL
      • TiDB
      • SQL Server

      前置准备

      环境准备

      准备一台 linux 服务器,ubuntu即可,架构版本暂无要求

      1. 安装JAVA
      sudo apt install default-jdk
      1. 部署并启动MySQL服务

      部署java应用

      • 准备Java应用
      • 准备Java应用SQL初始化文件
      • 准备SQLE定制的JAVA agent JAR包
        提示

        JAVA agent JAR包为企业版功能,如有使用需求,请联系SQLE商业支持

      Java应用前置步骤

      1、初始化Java应用

      mysql -h127.0.0.1 -P3306 -uroot -p -e "CREATE DATABASE IF NOT EXISTS jw default character set utf8mb4 collate utf8mb4_unicode_ci"
      mysql -h127.0.0.1 -P3306 -uroot -D jw -p < init-mysql.sql

      2、将Java应用Jar包,定制jdbc上传服务器指定目录下,可以放在 /opt/surveyking 目录下,示例:

      root@ubuntu:/opt/surveyking# pwd
      /opt/surveyking
      root@ubuntu:/opt/surveyking# ls -l
      total 55652
      -rw-r--r-- 1 root root 2932784 Feb 24 08:38 sql-agent-1.0-SNAPSHOT.jar
      -rw-r--r-- 1 root root 54508748 Feb 24 08:37 surveyking-v0.3.0-beta.4.jar

      使用方式

      创建扫描任务

      进入智能扫描任务列表,点击新建,扫描任务类型选择应用程序SQL抓取。

      启动Java应用

      提示

      以下命令需要在本地编辑替换完参数后,一次性拷贝到环境内执行

      SQLE_COLLECT_ENABLE=true \
      SQLE_BASE_URL=http://10.186.62.16:10000 \
      SQLE_TASK_NAME=jw_app \
      SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI \
      SQLE_EXCLUDE_JAVA_FILE=UserServiceImpl.java \
      SQLE_LOG_FILE=/tmp/collect.log \
      java -javaagent:sql-agent-1.0-SNAPSHOT.jar \
      -jar surveyking-v0.3.0-beta.4.sqle.jar \
      --server.port=1991 \
      --spring.datasource.url=jdbc:mysql://10.186.62.18:3306/jw \
      --spring.datasource.username=root \
      --spring.datasource.password=mysqlpass \
      & >>/opt/surveyking/std.log

      参数说明(环境变量)

      • SQLE_COLLECT_ENABLE=true :是否开启SQL采集,默认不推送到SQLE只输出本地日志
      • SQLE_BASE_URL:SQLE 服务地址,格式“http://ip:port”
      • SQLE_TASK_NAME:SQLE 审核任务的名称
      • SQLE_TASK_TOKEN:审核任务的token,从SQLE页面复制
      • SQLE_PROJECT_NAME:SQLE JDBC配置:项目名
      • SQLE_LOG_FILE:指定SQLE 采集日志文件,不指定则代表输出到标准输出
      • SQLE_EXCLUDE_JAVA_FILE:忽略部分JAVA文件不插桩,主要是兼容性问题,当修改字节码失败时为了保障能运行抓取。文件按逗号分隔

      参数说明(java 参数)

      • server.port:web服务启用端口
      • spring.datasource.url:jdbc url
      • spring.datasource.username:jdbc user name
      • spring.datasource.password:jdbc password

      访问Java应用

      • 访问地址:如果配置的网页端口是1991则通过网页访问http://xx.xx.xx.xx:1991
      • 用户名:admin
      • 密码:123456
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/java_application_audit/index.html b/docs/user-manual/project/audit_task/java_application_audit/index.html index 2fb9d392..8056f238 100644 --- a/docs/user-manual/project/audit_task/java_application_audit/index.html +++ b/docs/user-manual/project/audit_task/java_application_audit/index.html @@ -4,13 +4,13 @@ 应用程序SQL抓取【企业版】 | SQLE 文档 - +
      版本:v3

      应用程序SQL抓取【企业版】

      本节介绍如何利用SQLE平台抓取JAVA应用中的SQL,选取的例子是一个开源的问卷调查java应用,架构简单,上手相对容易。

      支持的数据源类型

      • MySQL
      • Oracle
      • DB2
      • OceanBase for MySQL
      • PostgreSQL
      • TiDB
      • SQL Server

      前置准备

      环境准备

      准备一台 linux 服务器,ubuntu即可,架构版本暂无要求

      1. 安装JAVA
      sudo apt install default-jdk
      1. 部署并启动MySQL服务

      部署java应用

      • 准备Java应用
      • 准备Java应用SQL初始化文件
      • 准备SQLE定制的JDBC jar 包
        提示

        JDBC jar包为企业版功能,如有使用需求,请联系SQLE商业支持

      Java应用前置步骤

      1、初始化Java应用

      mysql -h127.0.0.1 -P3306 -uroot -p -e "CREATE DATABASE IF NOT EXISTS jw default character set utf8mb4 collate utf8mb4_unicode_ci"
      mysql -h127.0.0.1 -P3306 -uroot -D jw -p < init-mysql.sql

      2、将Java应用Jar包,定制jdbc上传服务器指定目录下,可以放在 /opt/surveyking 目录下,示例:

      root@ubuntu:/opt/surveyking# pwd
      /opt/surveyking
      root@ubuntu:/opt/surveyking# ls -l
      total 55652
      -rw-r--r-- 1 root root 2477925 Feb 24 08:38 mysql-connector-java-8.0.28-SQLE.jar
      -rw-r--r-- 1 root root 54508748 Feb 24 08:37 surveyking-v0.3.0-beta.4.jar

      3、替换Java应用Jar包的MySQL jdbc jar 包

      cd /opt/surveyking/
      mkdir jar
      cp surveyking-v0.3.0-beta.4.jar jar/
      cd jar/
      jar xvf surveyking-v0.3.0-beta.4.jar # 解压jar包,如果执行失败也可使用 unzip surveyking-v0.3.0-beta.4.jar 代替
      cp ../mysql-connector-java-8.0.28-SQLE.jar BOOT-INF/lib/mysql-connector-java-8.0.26.jar # 替换jdbc
      rm -rf surveyking-v0.3.0-beta.4.jar
      jar cvfM0 surveyking-v0.3.0-beta.4.sqle.jar * # 打包
      mv surveyking-v0.3.0-beta.4.sqle.jar ../
      cd ..
      rm -rf jar/

      使用方式

      创建扫描任务

      进入智能扫描任务列表,点击新建,扫描任务类型选择应用程序SQL抓取。

      启动Java应用

      提示

      以下命令需要在本地编辑替换完参数后,一次性拷贝到环境内执行

      cd /opt/surveyking/
      SQLE_COLLECT_ENABLE=true SQLE_HOST=10.186.62.18:10000 SQLE_TASK_NAME=jw_app SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI \
      java -jar surveyking-v0.3.0-beta.4.sqle.jar \
      --server.port=1991 \
      --spring.datasource.url=jdbc:mysql://10.186.62.18:3306/jw \
      --spring.datasource.username=root \
      --spring.datasource.password=mysqlpass \
      & >>/opt/surveyking/std.log

      参数说明(环境变量):

      • SQLE_COLLECT_ENABLE:是否开启SQL采集
      • SQLE_HOST=10.186.62.18:10000:SQLE 服务地址 ip:port
      • SQLE_TASK_NAME=jw_app :审核任务的名称
      • SQLE_TASK_TOKEN:审核任务的token,从SQLE页面复制
      • SQLE_PROJECT_NAME:SQLE JDBC配置:项目名

      参数说明(java 参数)

      • server.port:web服务启用端口
      • spring.datasource.url:jdbc url
      • spring.datasource.username:jdbc user name
      • spring.datasource.password:jdbc password

      访问Java应用

      • 访问地址:如果配置的网页端口是1991则通过网页访问http://xx.xx.xx.xx:1991
      • 用户名:admin
      • 密码:123456
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/metadata_audit/index.html b/docs/user-manual/project/audit_task/metadata_audit/index.html index ac727367..9056fb37 100644 --- a/docs/user-manual/project/audit_task/metadata_audit/index.html +++ b/docs/user-manual/project/audit_task/metadata_audit/index.html @@ -4,7 +4,7 @@ 库表元数据 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v3

      库表元数据

      本节介绍库表元数据扫描的应用场景、以及如何创建库表元数据的扫描任务。

      支持的数据源类型

      • MySQL
      • DB2
      • TDSQL

      使用场景:

      1. 需要检查已上线业务对应数据源的建库建表语句是否符合 统一的SQL质量规范。
      2. 需要定期检查上线业务的库表变更是否符合 统一的SQL质量规范。

      前置条件

      已添加对应数据源。

      操作步骤

      1. 新建智能扫描任务
      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择库表元数据;
      • 采集周期(分钟):将采集设定时间内产生的SQL;
      • 是否采集视图信息:默认不采集视图信息,若开启,则将一并扫描数据源上的视图SQL;
      • 审核规则模板:如果未指定此项会优先使用数据源绑定的模板;
      • 任务审核周期:配置的是SQLE对审核任务进行自动审核的执行时间;
      1. 进入扫描任务详情页,刷新,获得SQL采集结果

      执行结果

      在扫描任务列表页面查看新建的库表元数据扫描任务。 list

      在扫描任务详情中查看该扫描任务采集的SQL,及生成的扫描任务报告。 result

      后续步骤

      • 查看审核记录,查看不同时间点的审核结果,包括审核的SQL语句、审核结果。
      • 分析语句,用户可对SQL语句进行分析操作,获取优化建议。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/mybatis/index.html b/docs/user-manual/project/audit_task/mybatis/index.html index 76280da9..b8c42d67 100644 --- a/docs/user-manual/project/audit_task/mybatis/index.html +++ b/docs/user-manual/project/audit_task/mybatis/index.html @@ -4,7 +4,7 @@ MyBatis扫描 | SQLE 文档 - + @@ -21,7 +21,7 @@ coding-editinfo

      编辑后点击保存,完成构建计划。

      触发构建,获得审核结果

      在构建计划中点击立即构建按钮; coding-do

      可以在在构建过程中查看构建结果,也可以在SQLE平台的扫描任务中查看审核结果。 coding-result

      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/processlist_audit/index.html b/docs/user-manual/project/audit_task/processlist_audit/index.html index 9a939baa..aee931bf 100644 --- a/docs/user-manual/project/audit_task/processlist_audit/index.html +++ b/docs/user-manual/project/audit_task/processlist_audit/index.html @@ -4,14 +4,14 @@ 会话SQL扫描 | SQLE 文档 - +
      版本:v3

      会话SQL扫描

      本节介绍如何对MySQL进行中的会话SQL进行监督及审核。

      支持的数据源类型

      • MySQL

      使用场景

      除了上线前和上线后的审核,在SQL语句执行过程中,用户往往也需要对其进行监控和审核,用以及时识别出潜在的问题SQL。然而,当前的审核场景往往无法覆盖事中这一环节的审核。为此,SQLE新增了processlist列表审核扫描任务,实现了事前、事中、事后的全覆盖,使得用户可以在SQL语句的整个生命周期内进行审核和管理,从而减少审核时间和工作量。

      操作步骤

      新建智能扫描任务

      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择processlist列表扫描任务;
      • 采集周期(秒):表示SQLE对 MySQL processlist表的采集频率,SQLE将按照该时间间隔进行SQL采集。如果该值过低,会影响实例性能;
      • SQL最小执行时间(秒):表示SQLE对 MySQL processlist 的采集过滤条件,只有大于等于该时间的SQL才会被采集记录。如果为0,则表示不进行过滤;
      • 审核过去时间段内抓取的SQL(分钟):processlist列表扫描任务是增量审核,不在该时间段内执行的SQL将不会被再次采集;
      • 审核规则模板:如果未指定此项会优先使用数据源绑定的模板;
      • 任务审核周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      执行结果

      • 用户进入扫描任务详情,可以查看已采集到的processlist列表中的SQL信息;
      • 用户点击立即审核,可以在扫描任务报告中获取processlist列表中当前采集周期内产生的SQL及审核结果; processlist-audit
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/slowlog_audit/index.html b/docs/user-manual/project/audit_task/slowlog_audit/index.html index 93a82153..6fbf4210 100644 --- a/docs/user-manual/project/audit_task/slowlog_audit/index.html +++ b/docs/user-manual/project/audit_task/slowlog_audit/index.html @@ -4,13 +4,13 @@ 慢日志 | SQLE 文档 - +
      版本:v3

      慢日志

      本节介绍慢日志扫描的应用场景、以及如何创建慢日志扫描任务。

      当前SQLE支持两种慢日志采集方式,一种由scanner采集慢日志文件中的慢查询,一种由SQLE直接采集慢查表中的慢查询,用户可在编辑页面选取需要的采集方式,您可选择需要的方式采集产生的慢查询。

      支持的数据源类型

      • MySQL

      使用场景

      需要检查已上线业务是否有超过指定时长的慢SQL产生。

      采集方式

      方式一:采集慢日志文件

      前置条件

      • 已添加对应数据源;
      • 修改配置文件my.cnf,在文件中设置以下内容:
      my.cnf
      slow_query_log = ON //开启慢日志
      slow_query_log_file = /var/lib/mysql/tmp_slow.log //设置慢日志文件路径
      long_query_time = 1 //设置慢查询时间阈值,当前示例时间为1s,可根据实际业务变更

      步骤一:新建智能扫描任务

      新建智能扫描任务,填写以下字段信息:

      • 任务名称:指定扫描任务的名称,当前仅支持英文名称;
      • 数据源名称:选择扫描任务对应的数据源;
      • 数据库:选择扫描任务使用的数据库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择慢日志;
      • 审核过去时间段内抓取的SQL(分钟):扫描的时间覆盖范围;
      • 采集来源:填写0,代表采集mysql-slow.log 文件;
      • 审核规则模板:选择对应的审核规则模板;
      • 审核任务周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      点击提交,完成慢日志扫描任务创建。

      步骤二:执行scannerd文件

      提示

      注意:scannerd文件通常在SQLE的bin目录下,需将scannerd文件放在数据源环境下执行。

      示例如下:

      ./scannerd slowquery -H "127.0.0.1" -P "10000" -N "slowlog_of_GRADE1" -J "default" -A eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJzbG93bG9nX29mX0dSQURFMSIsImV4cCI6MTcwODA3MjMzNSwibmFtZSI6ImFkbWluIn0.ArU5HpU7aSSVrRutxSAwRFYahSx0_4RNzD4KB6LTfpM --log-file /var/lib/mysql/mysql-for-test-slow.log

      参数解释如下:

      • -J, --project:说明扫描任务所在项目,例“default”;
      • -H, --host string:指定SQLE主机所在地址;
      • -N, --name string:指定扫描任务名称,scannerd会将获得的慢SQL传至指定的任务池中审核;
      • -P, --port string:指定SQLE所在端口;
      • -A, --token string:输入扫描任务凭证token;
      • --log-file:指定慢日志文件,scannerd从该文件中获取慢SQL;

      方式二:采集慢日志表

      前置条件

      • 已添加数据源
      • 在MySQL中设置以下内容:
      set global long_query_time=1; // 需根据实际业务调整慢查询时间阈值,此处仅供参考
      set global slow_query_log=1; // 开启慢日志查询
      SET GLOBAL log_output='FILE,TABLE';// 开启 MySQL 的慢日志收集功能,并且确认将慢日志内容写入文件 mysql-slow.log 和表 mysql.slow_log
      提示

      为了优化查询性能,使用这一采集方式时,需要用户手动运行下面的SQL,将mysql.slow_log表的引擎改为MyISAM,并添加索引。

      ALTER TABLE mysql.slow_log ENGINE = MyISAM;
      ALTER TABLE mysql.slow_log ADD INDEX idx_start_time (start_time);

      新建智能扫描任务

      新建智能扫描任务,填写以下字段信息:

      • 任务名称:指定扫描任务的名称,当前仅支持英文名称;
      • 数据源名称:选择扫描任务对应的数据源核;
      • 数据库:选择扫描任务使用的数据库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择慢日志扫描任务;
      • 采集周期(分钟):SQLE进行采集的周期,若设置为10分钟,则SQLE将每隔10分钟去采集慢日志表中生成的慢查询;
      • 审核过去时间段内抓取的SQL(分钟):扫描的时间覆盖范围;
      • 采集来源:填写1,代表采集mysql.slow_log 表;
      • 审核规则模板:选择对应的审核规则模板;
      • 审核任务周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      点击提交,完成慢日志扫描任务创建。

      执行结果

      在扫描任务详情查看扫描的SQL语句及审核报告。

      后续步骤

      1. 分析扫描任务报告中出现的慢SQL:用户可以重点关注慢SQL的部分,这些SQL可能需要进行性能优化或数据库结构调整,以提升系统的响应速度。
      2. 过滤不关心的SQL:用户可以通过在sqle.black_list_audit_plan_sqls表中添加需要过滤的SQL片段,实现对scanner扫描任务中不关心的SQL的过滤。这样,在SQLE的增量和全量接口中包含了指定关键字的SQL将被自动过滤掉,减少冗余的结果展示。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/audit_task/topsql/index.html b/docs/user-manual/project/audit_task/topsql/index.html index 56eff9e5..3117c302 100644 --- a/docs/user-manual/project/audit_task/topsql/index.html +++ b/docs/user-manual/project/audit_task/topsql/index.html @@ -4,13 +4,13 @@ TopSQL | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/user-manual/project/data_access_control/authorization_list/index.html b/docs/user-manual/project/data_access_control/authorization_list/index.html index 8c6e744a..84091c15 100644 --- a/docs/user-manual/project/data_access_control/authorization_list/index.html +++ b/docs/user-manual/project/data_access_control/authorization_list/index.html @@ -4,14 +4,14 @@ 授权清单 | SQLE 文档 - +
      版本:v3

      授权清单

      通过统一分配指定权限操作用户,避免出现因业务多导致权限管理分散的困境,同时追溯权限发放原因。

      使用场景

      在数据库权限的发放过程中,通常需要进行追溯和审计,特别是对于安全要求较高的系统。授权清单功能可以追溯记录权限发放的详细信息,如授权模板、有效期、授权目的、备注等,以满足对权限发放过程的审计和跟踪需求,保障系统的安全性和合规性。

      前置条件

      在执行授权清单操作之前,请确保已完成以下步骤:

      • 已添加权限模板;
      • 已添加成员;

      操作步骤

      步骤一:进入授权清单列表并点击授权

      步骤二:填写授权基本信息

      • 选择授权模板
        • 选择权限模板
        • 设置授权有效期
      • 配置授权目的
        • 选择使用人
        • 输入授权目的或用途
        • 填写授权备注信息
      • 新建数据库连接账号
        • 输入连接账号名
        • 输入连接域
        • 输入连接密码并确认

      完成以上步骤后,点击确认,即可完成当前的授权操作。

      执行结果

      授权操作完成后,您将在授权清单列表中看到相应的执行结果。可以参考下方的示意图 auth_list

      更多操作

      除了上述的基本操作之外,还可以进行以下操作:

      • 回收权限:回收当前授权产生的数据库连接账号,绑定用户不再拥有权限模板中的数据操作能力;
      • 续期授权:延期数据库连接账号的可用时间;
      - + \ No newline at end of file diff --git a/docs/user-manual/project/data_access_control/intro/index.html b/docs/user-manual/project/data_access_control/intro/index.html index 79916ee3..1d1bcdb5 100644 --- a/docs/user-manual/project/data_access_control/intro/index.html +++ b/docs/user-manual/project/data_access_control/intro/index.html @@ -4,13 +4,13 @@ intro | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/user-manual/project/data_access_control/permission_template/index.html b/docs/user-manual/project/data_access_control/permission_template/index.html index 0664f80d..cf377d84 100644 --- a/docs/user-manual/project/data_access_control/permission_template/index.html +++ b/docs/user-manual/project/data_access_control/permission_template/index.html @@ -4,13 +4,13 @@ 权限模板 | SQLE 文档 - +
      版本:v3

      权限模板

      权限模板支持灵活分组,按集合组织权限模板,以减少重复分配相同权限的工作量,提高权限管理效率。

      使用场景

      当需要对大量用户进行授权时,权限模板可以帮助您快速批量分配相同的权限。您只需创建一个权限模板,在模板中组合不同数据源的数据操作权限,然后将该模板应用于所需的用户。这样可以节省大量手动分配权限的时间和工作量。

      前置条件

      • 已添加数据源

      操作步骤

      步骤一:进入权限模板列表,点击添加模板

      步骤二:填写模板名称

      步骤三:填写模板数据权限

      • 选择数据源对应的业务:必选,用以确定数据源的可选范围;
      • 选择该业务下可用的数据源:必选,用以限制可操作的数据源;
      • 选择数据源下的库和表:非必选,如果不选,则对整个数据源的所有库表均有权限;
      • 选择该数据源上可用的数据操作权限:非必选,如果不选,则对整个数据库的所有数据表均有权限;

      点击保存后,可以继续向权限模板中添加数据权限,或完成当前权限模板配置。

      执行结果

      permission_template

      更多操作

      • 授权:指定拥有该模板权限的用户及数据库操作账号;
      • 类似创建:克隆当前规则模板;
      - + \ No newline at end of file diff --git a/docs/user-manual/project/group_member/index.html b/docs/user-manual/project/group_member/index.html index 7c07731e..d4163b51 100644 --- a/docs/user-manual/project/group_member/index.html +++ b/docs/user-manual/project/group_member/index.html @@ -4,7 +4,7 @@ 成员/成员组管理 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v3

      成员/成员组管理

      本文介绍项目内添加成员、成员组的步骤,以及其他管理操作。

      前置条件

      • 项目管理员进入指定的项目;
      • 平台管理员已完成用户的添加;
      • 平台管理员已完成角色的添加;

      成员管理

      成员由项目管理员添加,只有被添加为成员后,才可查看、操作项目内资源。

      使用场景

      • 一个业务以项目的形式管理SQL工单、扫描任务等资源,若用户需要在指定项目中执行SQL工单、扫描任务等相关操作,则需要成为该项目的成员,并具有相应角色操作权限。

      添加成员

      步骤

      项目管理员点击成员标签,点击添加成员按钮;

      字段说明

      • 用户名:选择平台已添加的用户;
      • 选择是否为项目管理员:项目管理员将负责项目管理行为,例如添加数据源和成员等;
        • 若将当前成员设为项目管理员,则该成员将对项目内所有数据源拥有所有操作权限,无需额外配置权限;
        • 若未设置,则当前成员在项目内的操作权限将根据下一步添加角色与数据源的绑定获得;
      • 添加角色与数据源的绑定;
        • 添加数据源:指定当前成员能操作的数据源;
        • 添加角色:指定当前成员在该数据源上的角色权限,角色设置请参见角色管理
      • 删除角色与数据源的绑定;

      执行结果

      项目管理员可查看当前项目中添加的成员列表。 成员列表

      后续步骤

      配置项目审核流程模板:可以指定成员作为审核/上线环节的操作人,请参见审核流程模板

      更多操作

      • 编辑成员:添加成员后,项目管理员可修改成员可用的数据源及对应角色权限;
        • 限制:编辑之前产生的工单不受影响,编辑之后工单创建时将应用最新的数据源及权限对应关系;
      • 删除成员:项目管理员可删除项目中的成员;
        • 限制:若成员已不在项目内,则无权操作工单;

      成员组管理

      使用场景

      • 如果若干用户在项目内具备相同的操作权限或访问权限,可以通过将他们加入同一个成员组来配置他们对项目资源的权限。

      添加成员组

      步骤

      项目管理员点击成员组标签,点击添加成员组按钮;

      字段说明

      • 成员组名:填写成员组的名称;
      • 用户名:选择需要加入为组员的用户;
      • 选择是否为项目管理员:项目管理员将负责项目管理行为,例如添加数据源和成员等;
        • 若将当前成员设为项目管理员,则该成员将对项目内所有数据源拥有所有操作权限,无需额外配置权限;
        • 若未设置,则当前成员在项目内的操作权限将根据下一步添加角色与数据源的绑定获得;
      • 添加角色与数据源的绑定;
        • 添加数据源:指定当前成员能操作的数据源;
        • 添加角色:指定当前成员在该数据源上的角色权限,平台默认提供DEV、DBA两种角色,负责SQL语句的提交、审核及上线操作;更多角色设置请参见角色管理
      • 删除角色与数据源的绑定;

      执行结果

      项目管理员可查看当前项目中添加的成员组列表。 成员组列表

      后续步骤

      • 配置项目审核流程模板:可以批量匹配具有同一权限的成员作为审核/上线环节的操作人,,请参见审核流程模板

      更多操作

      • 编辑成员组:添加成员组后,项目管理员可修改成员组可用的数据源及对应角色权限;
        • 限制:编辑之前创建的工单不受影响,之后创建的工单将依据新的数据源及权限;
      • 删除成员组:项目管理员可删除项目中的成员组;
        • 限制:若成员组内成员已不在项目内,则无权操作工单;
      - + \ No newline at end of file diff --git a/docs/user-manual/project/instance-manager/index.html b/docs/user-manual/project/instance-manager/index.html index c77eed82..ec41a875 100644 --- a/docs/user-manual/project/instance-manager/index.html +++ b/docs/user-manual/project/instance-manager/index.html @@ -4,14 +4,14 @@ 数据源管理 | SQLE 文档 - +
      版本:v3

      数据源管理

      本文介绍如何在项目中进行数据源管理,包括数据源的增加、删除、编辑操作。 数据源是工单和扫描任务的实施对象,用户在平台创建的工单和扫描任务都将针对指定的数据源执行。因而项目创建后需要首先配置项目内可用的数据源。

      提示

      数据源是SQLE连库审核的对象,任何审核的场景下若可以不选数据源则代表将进行脱库审核。

      使用场景

      实际生产中,如果需要针对某个数据源下发SQL或创建扫描任务,需要首先将数据源添加至SQLE平台,测试连通成功后才可创建工单、创建扫描任务。

      添加数据源

      前置操作

      项目管理员进入指定的项目

      操作步骤

      点击左侧导航栏的数据源菜单,进入数据源管理页面后,点击添加数据源,填写数据源相关信息

      • 数据源名称:命名当前新建的数据源,如:actionsky-test;
      • 数据源描述:用户可对数据源补充更多描述,便于用户通过名称+描述快速更精准地区分数据源;
      • 数据库类型:选择数据库实例对应的数据库类型,当前支持的数据库类型包括MySQL、PostgreSQL、Oracle、SQL server、DB2、TiDB、OceanBase For MySQL、OceanBase For Oracle、Mycat、TDSQL for InnoDB、达梦;
      • 数据库地址:输入数据库实例的连接地址,支持IP地址、域名两种方式;
      • 数据库端口:添加数据源时根据数据源类型自动切换默认端口;
      • 连接用户:输入数据库实例的连接用户,SQLE在执行SQL审核以及SQL上线时,会通过该连接用户访问数据库实例及下发SQL;
      • 密码:输入数据库实例的连接用户密码;
      • 审核规则模板:审核规则模板将用于创建工单时的审核、扫描任务的审核、SQL查询的审核;
      • 运维时间:如果配置了运维时间, 工单将只能在运维时间内上线(立即上线和定时上线都受此影响), 支持配置多个运维时间, 默认无运维时间,即不限制上线时间;
      • SQL查询是否需要审核:默认不审核;如用户选择开启该功能,则用户在SQL工作台中提交的SQL语句,将匹配审核规则模板进行SQL审核操作;
      • 运行查询的最高审核等级:只有开启 SQL查询的审核功能才生效;支持四种审核等级:normal、notice、warn、error,如设置运行查询的最高审核等级为warn,则触发了warn等级规则以上的SQL语句将报错,并不予执行;未触发warn等级规则以上的SQL语句将被执行;

      执行结果

      数据源添加成功后,可在数据源列表查看新增的数据源信息。

      数据源列表

      后续步骤

      • 创建审核规则:添加数据源后,可针对指定数据源创建适用的审核规则,请参见审核规则模板管理
      • 添加成员/成员组:添加数据源后,需要引入成员/成员组对数据源进行操作,请参见成员/成员组管理

      更多管理功能

      • 编辑数据源:点击数据源列表页面对应数据源条目后的编辑按钮,可以修改指定数据源。
        • 限制:数据源名称及数据库类型不支持修改,其他信息均可修改
      • 删除数据源:点击数据源列表页面对应数据源条目后的删除按钮,可以删除指定数据源。
        • 限制:若数据源上还有相应工单未完成,则该数据源暂时不可删除
      • 连通性测试:点击更多按钮,选择连通性测试,测试是否可以用当前的数据源地址及用户密码成功连入数据源。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/instance_syn/index.html b/docs/user-manual/project/instance_syn/index.html index f02d312d..3e40b0b5 100644 --- a/docs/user-manual/project/instance_syn/index.html +++ b/docs/user-manual/project/instance_syn/index.html @@ -4,7 +4,7 @@ 外部数据源同步【企业版】 | SQLE 文档 - + @@ -14,7 +14,7 @@ sip

      3.针对需要同步的实例组添加项目标签

      为需要同步的数据源组,添加业务标签,SQLE同步时,将依据项目标签值,将实例同步至指定项目中,并赋予指定业务属性。 tag

      操作步骤

      • 进入SQLE平台,展开数据源管理,点击外部数据源同步,进入同步任务页面
      • 添加同步任务,填写以下相关信息
        • 来源:目前仅支持DMP平台;
        • 地址:默认格式为http://ip:port;
        • 数据源类型:选择需要同步的实例对应的数据源类型,如MySQL;
        • 审核规则模板:选择数据源使用的规则模板;
        • 设置同步间隔:SQLE平台将按照指定的同步时间执行数据源同步任务;
      • 点击提交 按钮,SQLE会立即进行一次数据源同步。

      操作结果

      同步成功后进入对应项目,查看数据源列表页面,可以看到DMP上配置了SIP的数据源组已经被添加到SQLE平台,可以对这个数据源进行创建工单或创建扫描任务等操作。

      syn-result instance-syn

      后续操作

      管理员可编辑或删除同步任务,也可在同步周期之外,手动执行同步任务。

      - + \ No newline at end of file diff --git a/docs/user-manual/project/intro/index.html b/docs/user-manual/project/intro/index.html index 6d8072d6..652635d1 100644 --- a/docs/user-manual/project/intro/index.html +++ b/docs/user-manual/project/intro/index.html @@ -4,7 +4,7 @@ 功能介绍 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v3

      功能介绍

      自2.22.11.0版本起,平台引入项目管理概念,与SQL审核相关的资源均以项目的形式进行资源隔离。创建工单前,需要由项目管理员设置好项目内部必要的资源环境,包括项目使用的数据源、用户、流程模板、规则模板、白名单信息等,随后,项目成员才可在项目内提交工单并审核上线,或设置智能扫描任务。 本文介绍项目管理的使用场景以及如何以项目形式管理SQL工单、扫描任务等项目资源。在进行项目管理之前,需要由管理员进行创建项目,具体操作请参见创建项目

      说明

      提示

      社区版仅支持一个默认项目,项目管理员是admin,企业版可创建多个项目,有创建项目权限的用户可以创建项目,创建项目后,可指定其他项目成员为项目管理员。

      使用场景

      企业内容存在多个业务,且各个业务之间的数据源、工单、扫描任务可能由不同团队在负责,希望不同团队之间的数据相互隔离。此时,可在平台内以不同项目的行为去管理多个业务资源(数据源、工单、扫描任务等)。

      项目内资源调度

      资源调度 项目内的主要业务为工单审核及智能扫描任务审核。围绕工单及智能扫描任务,涉及到数据源管理、审核规则模板管理、白名单管理、审核流程管理、成员管理。

      以工单审核为例

      工单是为了满足下发SQL时审核、上线环节的流程化需求。

      工单的完整生命周期包括创建、审核、上线,其中涉及数据源、审核流程、审核规则模板、白名单的操作。

      备注
      • 审核流程:一个项目可绑定一个审核流程,该审核流程将应用于该项目下的所有工单审核。
      • 数据源:工单作用于具体的数据源,创建工单时,需要指定一个或多个数据源。
      • 审核规则模板:创建工单时,平台会基于该数据源应用的审核规则模板,对成员提交的SQL语句进行审核,满足应用的审核规则后,才可创建工单。
      • 白名单:创建工单时,若存在不需要审核的SQL语句,可将该SQL语句添加至白名单,提交该SQL时平台将不做审核。

      以智能扫描任务为例

      智能扫描任务是为了满足长期的SQL审核,平台支持的扫描任务类型包括库表元数据、TopSQL、慢日志、Mybatis扫描、应用程序SQL抓取及其他自定义扫描任务。

      智能扫描任务的完整生命周期包括创建、查看扫描任务报告,其中涉及数据源、审核规则模板、白名单的操作。

      备注
      • 数据源:智能扫描任务作用于具体的数据源,创建智能扫描任务时,需要指定一个数据源。
      • 审核规则模板:创建的智能扫描任务,将基于该任务下数据源应用的审核规则模板,审核任务中的SQL语句,并生成报告。
      • 白名单:创建扫描任务时,若存在不需要审核的SQL语句,可将该SQL语句添加至白名单,执行扫描任务时,将略过该语句。

      项目内资源权限

      资源权限

      项目内由成员执行工单及扫描任务。

      前置条件

      • 需要将平台创建的用户/用户组引入项目,成为项目成员/项目成员组后,才可在项目内进行操作。平台用户/用户组的创建,请参见平台用户管理
      • 引入项目成员/成员组时,需要指定成员/成员组在对应数据源上的操作角色,成员/成员组将继承角色对应的操作权限。角色的配置,请参见平台角色管理

      资源权限说明

      • 一个项目内可引入多个成员/成员组
      • 成员/成员组将依据自身绑定的数据源及对应角色权限,对指定数据源进行指定的操作。
      • 如当前项目引入了成员user1,并在user1上绑定了数据源local,并指定角色为DEV(创建工单),那么user1在当前项目中可执行的操作为:针对数据源local创建工单/管理自己创建的工单。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/operation_records/index.html b/docs/user-manual/project/operation_records/index.html index 01681795..48c57ba0 100644 --- a/docs/user-manual/project/operation_records/index.html +++ b/docs/user-manual/project/operation_records/index.html @@ -4,13 +4,13 @@ 操作记录 | SQLE 文档 - +
      版本:v3

      操作记录

      使用场景

      SQLE平台提供操作记录,当审核/上线产生问题时,用户需要从操作行为判定问题责任方。此时,用户可以使用平台的操作记录功能,查看平台行为的操作人、操作时间。

      入口

      用户点击操作与审计标签,进入操作记录页面,查看权限范围内可见的操作记录。

      • 用户可对操作记录进行筛选,查看符合条件的操作记录;
      • 用户也可在当前筛选条件下,导出平台操作记录,用以线下审计;

      操作记录

      更多操作

      SQLE会定时回收已产生的操作记录,目前该过期时间默认为90天。如果用户需要自定义过期时间,可以在全局配置中修改。

      - + \ No newline at end of file diff --git a/docs/user-manual/project/project_create/index.html b/docs/user-manual/project/project_create/index.html index 308cecf6..4d92c922 100644 --- a/docs/user-manual/project/project_create/index.html +++ b/docs/user-manual/project/project_create/index.html @@ -4,7 +4,7 @@ 创建项目【企业版】 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v3

      创建项目【企业版】

      本文介绍如何在SQLE平台创建项目。 SQLE平台通过引入项目实现业务、资源的隔离,项目内创建的工单及扫描任务都将带有项目属性,仅项目成员可查看、操作。

      使用场景

      企业内容存在多个业务,且各个业务之间的数据源、工单、扫描任务可能由不同团队在负责,希望不同团队之间的数据相互隔离。此时,可在平台内以不同项目的行为去管理多个业务资源(数据源、工单、扫描任务等)。

      前置条件

      创建新项目时,需要用户拥有创建项目的权限,这部分内容可通过管理员账号配置,请参见平台用户管理,或由平台管理员直接创建项目。

      操作步骤

      拥有项目创建权限的用户/平台管理员点击页面顶部菜单栏项目,选择查看所有项目,点击列表右上角创建项目按钮

      • 输入项目名称。如:actionsky;
      • 输入项目描述。如:处理爱可生项目的数据源、工单及扫描任务;
      • 点击提交;

      执行结果

      • 项目创建完成后,可在项目列表中查看当前用户创建的项目。
      • 选中指定项目,可进入项目详情页面,查看并管理项目内的数据源、成员、审核规则模板、审核流程模板等内容。

      项目列表

      提示

      项目创建人在创建项目后会成为项目成员,承担项目管理员的身份,支持指定其他成员成为项目管理员,一个项目可对应多个项目管理员。

      后续步骤

      项目创建后,用户在进行创建工单、创建扫描任务的核心业务之前,还需要做如下操作:

      • 初始化工单、扫描任务的实施对象即数据源,具体操作请参见数据源管理
      • 初始化工单、扫描任务的使用人员以及使用人员的操作权限即项目成员,具体操作请参见成员管理
      • 初始化工单、扫描任务的审核规则模板,一个项目内可为不同数据源定义不同的规则模板,具体操作请参见规则模板管理
      • 若存在无需审核的SQL,可在白名单管理中初始化白名单,请参见白名单管理; 初始化工单的项目审核流程模板,一个项目内所有工单共用一个审核流程,具体操作请参见流程模板管理

      更多管理功能

      项目管理包含编辑及删除操作。

      • 项目编辑:项目创建人/平台管理员可在项目列表编辑项目条目信息,可编辑项为项目描述。
      • 项目删除:项目创建人/平台管理员可在项目列表删除项目条目。
        • 限制:删除项目前,需要确保项目下没有进行中的工单,才可成功删除。
        • 影响:删除项目后,该项目下的数据源、工单及扫描任务信息都将被删除。
      • 冻结项目:若有项目需要临时停用,项目创建人/平台管理员可在项目列表点击冻结项目。
        • 限制:冻结项目前,需要确保项目内没有未完成的工单。
        • 影响:冻结项目后,项目内所有操作均不可执行。
        • 后续:用户可点击启用操作,重新启用该项目。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/quick_audit/index.html b/docs/user-manual/project/quick_audit/index.html index baa240d2..c489b65c 100644 --- a/docs/user-manual/project/quick_audit/index.html +++ b/docs/user-manual/project/quick_audit/index.html @@ -4,14 +4,14 @@ SQL审核 | SQLE 文档 - +
      版本:v3

      SQL快捷审核

      本文介绍平台的SQL审核功能,该功能可以帮助用户快速审核SQL并了解优化建议。

      使用场景

      当用户需要快速审核SQL并了解可优化点时,可以使用平台的SQL审核功能,快速获取审核结果。相较于SQL工单,SQL审核更注重用户快速自检,其目的是获取审核结果。而SQL工单除了获取平台的审核结果外,更侧重SQL的标准化上线。

      前置条件

      用户需要进入项目页面才能使用SQL审核功能。

      操作步骤

      用户点击左侧菜单栏的SQL审核标签,进入SQL审核列表页面,点击'新建'按钮。

      输入审核标签

      • 用户可以使用标签来区分SQL的性质、来源等特性;
      • 平台默认提供两种标签,用户可根据需要新建标签;

      选择审核模式

      平台默认提供两种审核模式

      • 静态审核:脱库审核,无需选择数据源和数据库,但需要选择SQL对应的数据源类型。
      • 动态审核:连库审核,需要指定数据源、数据库;

      输入待审核SQL

      平台当前提供5种审核方式,以满足不同的SQL场景。

      • 在线输入:直接在界面上输入SQL。
      • 上传XML文件:上传包含SQL的XML文件。
      • 上传SQL文件:上传SQL文件进行审核。
      • 上传ZIP文件:上传包含多个SQL文件的ZIP文件进行审核。
      • 配置GIT仓库:从GIT仓库中获取SQL文件进行审核。

      点击立即审核,获得审核结果

      完成SQL输入后,用户点击立即审核按钮,获得平台给出的审核建议

      执行结果

      审核完成后,用户可以查看审核结果并在SQL审核列表中查看生成的审核记录。 quick-audit

      后续操作

      添加了标签的SQL审核记录将进入SQL管控列表页面,用户可以在管控列表页面统一管理SQL。

      - + \ No newline at end of file diff --git a/docs/user-manual/project/rule-template-manager/index.html b/docs/user-manual/project/rule-template-manager/index.html index aa907320..e36b46bb 100644 --- a/docs/user-manual/project/rule-template-manager/index.html +++ b/docs/user-manual/project/rule-template-manager/index.html @@ -4,13 +4,13 @@ 审核规则模板 | SQLE 文档 - +
      版本:v3

      规则模版

      本文将介绍如何管理项目中的审核规则模板。

      规则模版分为全局模版和项目模版:

      • 全局模版 为超级管理员配置,所有项目都可见和使用;
      • 项目模版 由超级管理员或者项目拥有者配置,仅在项目内使用

      使用场景

      SQLE平台提供不同数据库类型的审核规则,是在长期实践中依据数据库特性总结出的一些规范。用户可以根据需要,将这些规则进行聚合,生成不同的规则模板,通过审核规则模板为不同的数据源配置不同的审核规则,用以应对不同场景、不同业务的审核需求。

      提示

      每个规则模版内可独立配置规则的级别和参数

      前置条件

      项目管理员进入指定的项目

      创建规则模板

      入口

      项目管理员点击左侧导航栏规则模板菜单,点击创建规则模板按钮。

      步骤一:输入基本信息

      • 模板名称:命名当前规则模板,须以字母开头,只能包含字母、数字、中划线和下划线。如:test
      • 模板描述:补充描述模板的其他信息。如:用于测试规则模板触发的告警等级
      • 数据库类型:选择该规则模板应用的数据库类型,当前支持的数据库类型可参考数据源管理

      步骤二:选择要启用/禁用的规则

      • 启用/禁用规则
      • 编辑规则告警等级:当前可设置项为普通、提示、警告、告警
      • 编辑规则参数默认值

      步骤三:提交规则模板

      执行结果

      成功创建自定义审核规则模板后,项目管理员可查看已创建的自定义规则模板及其对应的数据库类型。

      审核规则模板

      后续步骤

      • 设置数据源的审核规则模板:用户可为不同数据源设置相同或者不同的审核规则模板,具体操作请参见数据源管理
      • 创建工单:工单中SQL的审核将依据该数据源配置的审核规则模板,请参见工单说明
      • 创建智能扫描任务:智能扫描任务中SQL的审核将依据该数据源配置的审核规则模板,请参见扫描任务说明

      更多操作

      • 导入规则模板:可以导入其他项目中形成的规则模板文件
      • 编辑规则模板:编辑规则模板的基本信息及应用的规则
      • 删除规则模板:删除自行创建的规则模板
        • 限制:当已有数据源绑定了该规则模板,该规则模板不可被删除
      • 克隆规则模板:克隆当前的模板,克隆的规则模版只会继承源模版所有启用的规则、以及变更过的规则等级和阈值。克隆出的新规则模版的模版名称等基本信息需要手动填写。
      • 导出规则模板:导出当前选中的规则模板,以json格式下载规则模板内容。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/sqlmanage/index.html b/docs/user-manual/project/sqlmanage/index.html index 14a245ca..9fee207a 100644 --- a/docs/user-manual/project/sqlmanage/index.html +++ b/docs/user-manual/project/sqlmanage/index.html @@ -4,14 +4,14 @@ SQL管控 | SQLE 文档 - +
      版本:v3

      SQL全生命周期管控

      SQL管控页面集中了用户在SQL审核和扫描任务中生成的SQL,方便进行集中的管理。用户可以快速发现审核出问题的SQL,并将其分配给其他成员处理,或将不关心的SQL设为忽略状态,从而实现高效的SQL管理。

      使用场景

      当用户的SQL来源多且分散时,需要将这些SQL集中到一个页面进行管理,以避免遗漏问题SQL,并方便追溯问题SQL的产生及后续解决方式

      前置条件

      用户需要登录平台并生成审核记录,满足以下条件之一:

      • 在使用SQL快捷审核时,为SQL附加了审核标签。
      • 成功配置了扫描任务并生成了审核记录。

      使用步骤

      用户点击左侧菜单栏的SQL管控标签,进入SQL管控页面。

      SQL筛选

      平台提供多种筛选方式,帮助用户快速找到符合条件的SQL:

      • SQL来源:根据SQL的来源方式进行筛选,如SQL审核、扫描任务;
      • 数据源:根据SQL所属的数据源进行筛选;
      • Schema:根据SQL所属的Schema进行筛选;
      • 审核规则等级:根据审核规则的等级进行筛选,如error、warning、notice、normal;
      • 时间范围:根据SQL生成的时间范围进行筛选;
      • SQL状态:根据SQL的状态进行筛选,如待处理、已解决、已忽略等;
      • 与我相关:根据SQL是否与当前用户相关进行筛选,可以选择只显示与当前用户有关的SQL。
      • 端点信息:根据SQL的来源端点进行筛选

      SQL操作

      除了展示和过滤SQL,平台还提供多种SQL操作方式,帮助用户快捷处理SQL:

      • 按指纹查看SQL:支持按SQL指纹做聚合,跳转查看SQL审核列表;
      • 查看SQL执行计划:支持查看SQL分析结果,快速了解SQL的执行计划;
      • 指派负责人:可以将SQL指派给对应负责人处理;
      • 变更状态:可以将表单中的SQL标记为已解决、已忽略或已人工审核的状态;
      • 导出:可以根据当前筛选条件导出SQL管控列表的信息。

      操作结果

      通过以上步骤,用户可以使用SQL管控功能集中管理SQL,快速发现问题SQL并进行处理。 sqlmanage

      - + \ No newline at end of file diff --git a/docs/user-manual/project/whitelist-manager/index.html b/docs/user-manual/project/whitelist-manager/index.html index 189ffd15..e533156d 100644 --- a/docs/user-manual/project/whitelist-manager/index.html +++ b/docs/user-manual/project/whitelist-manager/index.html @@ -4,14 +4,14 @@ 白名单管理 | SQLE 文档 - +
      版本:v3

      白名单企业版

      本文介绍如何增加、编辑、删除项目中的白名单。

      SQLE在企业版中提供白名单功能,便于用户在特定场景下规避具体规则的审核。添加在SQL审核白名单中的语句,在提交工单申请时,不受审核规则的约束。

      提示

      白名单目前支持两种方式匹配SQL,字符串匹配和SQL指纹匹配,字符串匹配需要SQL内容一致,SQL指纹匹配匹配同类型的SQL。

      使用场景

      当已知一些 SQL 存在不规范之处,但又想忽略时,可以将SQL语句添加至白名单。

      前置条件

      项目管理员进入指定的项目。

      添加白名单

      项目管理员点击左侧导航栏白名单菜单,点击白名单列表右上角的添加白名单按钮。

      • 选择匹配模式:提供以下两种方式
        • 字符串匹配:若选择通过字符串匹配,则将应用于指定SQL语句。
        • SQL指纹匹配:若选择通过SQL指纹匹配,则应用于语句结构一致的SQL。
      • 输入白名单描述:用以提示该条白名单SQL的应用场景
      • 输入SQL语句

      执行结果

      成功添加白名单后,您可以在当前项目中查看所有的项目白名单及其匹配模式。

      whitelist

      此时,审核对应的SQL语句,审核结果处将出现白名单的提示。 whitelist

      后续步骤

      • 创建工单:添加白名单后,可继续创建工单,白名单中的语句将不会触发审核,请参见工单说明
      • 创建智能扫描任务:添加白名单后,审核将跳过白名单中的语句,请参见扫描任务说明

      更多操作

      • 编辑白名单
      • 删除白名单
      - + \ No newline at end of file diff --git a/docs/user-manual/project/workflow-template-manager/index.html b/docs/user-manual/project/workflow-template-manager/index.html index 376a3f16..d1c4bc3e 100644 --- a/docs/user-manual/project/workflow-template-manager/index.html +++ b/docs/user-manual/project/workflow-template-manager/index.html @@ -4,14 +4,14 @@ 审核流程模板 | SQLE 文档 - +
      版本:v3

      流程模版

      本文介绍项目中的审核流程模板管理。

      SQLE平台应用审核流程模板来规范项目内工单审核、上线的流程,项目管理员可配置审核涉及的节点、上线节点,及对应的操作用户。

      提示

      一个项目有且仅有一个审核流程模板。项目创建后会初始化一个默认模版,用户可根据实际情况调整。

      警告

      修改流程模版仅对之后的工单有效,之前的工单流程步骤不变

      使用场景

      一个业务团队中,开发需要在指定数据源上执行SQL,上线的SQL需要符合DBA约定了的安全以及性能规范。因此,SQLE为工单场景提供了不同人员之间的协作工作流,即审核流程。

      前置条件

      • 项目管理员进入指定的项目;
      • 项目管理员已添加项目成员/成员组;

      配置审核流程

      项目管理员点击左侧导航栏流程模板菜单, 点击修改当前审批流程模板按钮

      设定模板的基本信息

      设置允许创建工单的最高审核等级

      当前提供四种审核等级,包括:

      • 普通normal
      • 提示notice
      • 告警warn
      • 错误error

      若设置“运行查询的最高审核等级”为告警warn,则审核结果小于等于warn的SQL都可以执行.

      设置流程节点

      审核流程自工单发起开始,通过设置的审核步骤后,最后以执行上线结束

      第一步 工单发起

      这一步骤通常指代项目成员创建工单

      第二步 工单审核

      配置审核节点后,对应审核操作人在该步骤可以执行审核通过或驳回操作

      • 选择审核人类型,可以选择指定审核人或匹配拥有数据源审核权限的成员
      • 添加步骤描述:用以补充说明步骤信息
      • 添加审核步骤:审核流程模板最多可设置4个审核节点,也可不设置审核步骤
      提示
      • 若选择指定审核人
        • 需要项目管理员指定项目成员
        • 最少需要添加一个指定人,最多只能添加三个指定人
        • 指定的审核人可以没有工单审核权限
      • 若选择匹配拥有数据源审核权限的成员
        • 将按实例匹配数据源上拥有审核权限的成员
        • 如果创建工单时没有任何用户拥有此数据源工单审核权限, 则项目管理员将会被指定为工单审核人

      第三步 工单上线:执行人在该步骤可以执行上线或驳回操作。

      • 选择审核人类型,当前提供两种方式:指定上线人或匹配拥有数据源上线权限的成员
      • 添加步骤描述
      提示
      • 若选择指定审核人
        • 需要项目管理员指定项目成员
        • 最少需要添加一个指定人,最多只能添加三个指定人
        • 指定的上线人可以没有工单上线权限
      • 若选择匹配拥有数据源上线权限的成员
        • 将按实例匹配数据源上拥有上线权限的成员
        • 如果创建工单时没有任何用户拥有此数据源工单上线权限, 则项目管理员将会被指定为工单上线人

      第四步 提交审核流程模板

      提交审核流程后,流程修改之前创建的工单仍以提交工单时的审核流程执行,流程修改后的创建的工单将以当前的审核流程执行流转。

      执行结果

      提交审核流程模板后,可查看当前设置的审批流程模板涉及的步骤节点,及各步骤的审核人。 审核流程模板

      后续步骤

      创建工单:创建审核流程模板后,成员可进入项目中创建工单,请参见:创建工单

      - + \ No newline at end of file diff --git a/docs/user-manual/project/workflow/audit-workflow/index.html b/docs/user-manual/project/workflow/audit-workflow/index.html index 349e4f94..e6187d9d 100644 --- a/docs/user-manual/project/workflow/audit-workflow/index.html +++ b/docs/user-manual/project/workflow/audit-workflow/index.html @@ -4,7 +4,7 @@ 审核工单 | SQLE 文档 - + @@ -13,7 +13,7 @@ 自动审核通常在创建工单时执行,本节主要介绍人工审核部分。

      使用场景

      实际生产中会存在业务变更、业务上线,比如初始化构建业务库、跑批等,当工单创建后,通常需要审核人员执行审批操作,审批过程中,审批用户可选择审核通过或全部驳回。

      前置条件

      工单已被创建。

      操作步骤

      步骤一 查看待审核的工单

      • 入口一:您可在dashboard中查看待自己审核的工单
      • 入口二:进入项目的工单列表,筛选工单状态为待审核,查看项目内待审核的工单

      步骤二 点击待审核的工单名称,进入查看工单详情

      工单详情页信息包含以下几个方面:

      • 工单基础信息:包括工单名称、工单创建人、工单创建时间及工单描述;
      • 工单进度:查看当前工单的执行进度,及工单整体流经的流程节点,流程节点与审核流程模板中设置的节点保持一致;
      • 工单审核结果查看:
        • 概览:查看工单的整体概况信息,显示工单整体应用的数据源及审核情况
        • 按数据源查看:按数据源查看数据源上的SQL及其审核结果,并查看分析结果,也可下载审核报告、下载SQL语句、去重SQL;

      步骤三 审核通过或驳回工单

      • 审核通过:成员查看工单详情后,若审核通过,可点击审核通过按钮,完成审核;
      • 全部驳回:若审核不通过,可点击全部驳回按钮,并填写驳回原因,工单将返回至工单创建人处;

      执行结果

      • 审核通过:若点击审核通过,工单将按照审核流程模板流转至下一操作节点,状态变更为待审核或待上线; approve
      • 全部驳回:若点击全部驳回,工单状态将变更为已驳回,工单进度栏将提示提交的驳回原因,工单将返回至创建人处。 deny

      后续步骤

      • 审核工单:若工单涉及其他审核流程节点,工单将继续流转至下一审核节点审核
      • 上线工单:若工单不涉及其他审核流程节点,工单将流转至上线人处执行上线,可参考上线工单
      - + \ No newline at end of file diff --git a/docs/user-manual/project/workflow/create-workflow/index.html b/docs/user-manual/project/workflow/create-workflow/index.html index 78d70e18..6f59b5b6 100644 --- a/docs/user-manual/project/workflow/create-workflow/index.html +++ b/docs/user-manual/project/workflow/create-workflow/index.html @@ -4,7 +4,7 @@ 创建工单 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v3

      创建工单

      工单是SQLE提供的在线化SQL上线方式。研发人员可通过创建工单,提请需要审批的SQL语句。

      使用场景

      实际生产中会存在业务变更、业务上线,比如初始化构建业务库、跑批。此时,需要针对某个数据库执行一批SQL。用户可通过SQLE创建工单,输入SQL语句或者上传SQL脚本。

      前置条件

      • 项目管理员已添加数据源;

      操作步骤

      步骤一:填写工单基本信息

      创建工单前,需要为工单指定唯一的工单名称,并填写工单说明。

      • 填写工单名称:
        • 工单名称支持中英文;
        • 若未填写,平台将根据使用的数据源及添加时间组合填充工单名称;
      • 填写工单描述:输入工单描述信息,限3000个字符;

      步骤二:上传SQL语句并审核

      需要填写工单中涉及的SQL语句,执行审核操作,SQLE会根据数据源配置的审核规则模板,自动进行SQL语句的规则审核,并在线反馈审核结果。

      • 选择数据源:表示当前SQL最终会应用到哪个数据源;
        • 社区版:一个工单内仅支持选择一个数据源;
        • 企业版:一个工单内支持添加多个数据源;
      • 是否选择相同SQL:当添加多个数据源时,可设置是否选择相同SQL;
        • 使用相同SQL模式,
          • 限制:数据源的数据库类型须相同;
          • 效果:对不同数据源下发相同SQL;
        • 若不使用相同SQL模式
          • 效果:对不同数据源下发不同SQL;
      • 选择数据库:选择要执行SQL的数据库,相当于执行 use 语句;
      • 选择审核SQL语句上传方式:平台提供三种上传方式,包括在线输入SQL语句、上传SQL文件、上传MyBatis的XML文件;
        • 在线输入SQL语句:项目成员可在平台编辑器中直接输入SQL;
        • 上传SQL文件:项目成员可选择本地的SQL文件上传;
        • 上传Mybatis的XML文件:项目成员可选择本地的XML文件上传;
          • 限制:平台仅支持审核XML文件中上传的SQL语句,尚不支持对其创建工单;
      • 点击审核,显示平台审核结果;
      提示

      在线输入SQL的场景下,平台支持对输入框中的SQL进行美化,以此提高SQL可读性。

      注:当前支持SQL美化的数据源类型包括:

      • MySQL
      • DB2
      • SQL Server
      • Oceanbase For MySQL
      • Oracle
      • PostgreSQL

      步骤三:查看审核结果

      将根据数据源不同,展示不同数据源下的SQL审核结果。 审核结果由以下几部分组成:

      • 数据源标签:显示当前SQL操作的数据源,当有多个数据源时,可切换数据源标签,查看不同数据源上的审核情况;
      • 数据源上SQL的整体审核通过率、审核结果评分及操作的数据库;
      • 数据源上每条SQL的审核结果,包括
        • SQL语句:查看原始SQL
        • 审核结果:查看SQL触发的规则及规则等级;
          • 点击SQL及审核结果栏,可以在右侧抽屉中查看完整信息;
          • 在GIT仓库审核及ZIP文件审核时,可以查看SQL具体的来源路径;
        • SQL分析:企业版用户支持查看SQL分析结果;
      • 功能区:
        • 下载审核报告:查看当前数据源下审核的sql语句及其审核结果;
        • 下载SQL语句:下载文件,可查看当前数据源下审核的SQL语句及其审核结果;
        • 设置是否去重:若SQL语句结构一致,去重后将仅显示去重后的SQL;
      审核通过率计算方式
      审核通过率=正常sql/sql总数
      审核结果等级为notice,warn,err的sql均为非正常sql
      审核结果评分计算方式
      1.Error以上级别SQL出现率 = Error级别SQL/SQL
      2.Warn以上级别SQL出现率 = (Error级别SQL+ Warn级别SQL) /SQL
      3.Warn以上级别SQL出现率 = (Error级别SQL+ Warn级别SQL+ Notice级别SQL) /SQL
      4.总分 = 审核通过率 x 30 +
      (1 - Error以上级别SQL出现率) x 15 +
      (1 - Warn以上级别SQL出现率) x 10 +
      (1 - Notice以上级别SQL出现率) x 5 +
      (Error以上级别SQL出现概率 == 0 ? 15 : 0) +
      (Warn以上级别SQL出现概率 == 0 ? 10 : 0) +
      (Notice以上级别SQL出现概率 == 0 ? 5 : 0) +
      (Error以上级别SQL出现概率 <0.1 ? 5 : 0) +
      (Warn以上级别SQL出现概率 <0.1? 3 : 0) +
      (Notice以上级别SQL出现概率 <0.1 ? 2 : 0)

      备注: 三元表达式 ==> ( 条件 ? 如果条件为真则为此值 : 如果条件为假则为此值 )

      步骤四:点击创建工单

      完成创建后,进入工单列表,即可看到该工单显示为待审核。

      执行结果

      创建工单后,可在工单列表查看已创建的所有工单。 list

      后续步骤

      • 审核工单:工单创建完成后,将依据审核流程模板的设定,流转至指定的审核成员处,审核成员需登录后进行审核操作,详情可参见审核工单
      • 导出工单:当用户需要审计当前已创建的工单时,可选择筛选条件后,点击工单列表的导出工单按钮,以csv格式导出满足条件的工单信息。
      - + \ No newline at end of file diff --git a/docs/user-manual/project/workflow/exec-workflow/index.html b/docs/user-manual/project/workflow/exec-workflow/index.html index 0acad6c0..56f61413 100644 --- a/docs/user-manual/project/workflow/exec-workflow/index.html +++ b/docs/user-manual/project/workflow/exec-workflow/index.html @@ -4,14 +4,14 @@ 上线工单 | SQLE 文档 - +
      版本:v3

      上线工单

      本章详细介绍用户如何进行上线。

      • 从数据源角度,支持多数据源同时上线、单数据源分别上线;
      • 从上线时间角度,支持立即上线、定时上线;
      • 从上线方式角度,支持平台直接上线,也支持后台执行后,线上标记为人工上线;

      使用场景

      实际生产中上线环节也会存在业务变更等诸多情况,除了对工单做整体上线操作外,还存在以下需求:

      • 需要根据数据源分别上线;
      • 需要避开业务高峰期,在指定时间上线;
      • 已在后台执行SQL,需要线上标记为人工上线;

      为此,SQLE平台也提供了多种上线方式,满足用户的上线需求。

      前置条件

      工单状态为待上线;

      操作步骤

      步骤一 进入待上线的工单

      • 方式一:上线操作人可在dashboard中点击“需上线”标签,查看当前需要上线的工单;
      • 方式二:上线操作人也可在项目的工单列表中,筛选工单状态为“待上线”的工单,查看当前需要上线的工单;

      步骤二 设置工单上线

      根据使用场景,区分为以下四种工单上线方式;

      1.批量立即上线

      针对一个工单内涉及多个数据源,且多个数据源需要同时立即上线的,点击批量上线,平台将对工单内涉及的所有数据源执行上线操作;

      2.单个数据源立即上线

      点击立即上线后,平台将立即连入指定数据源,并执行SQL变更;

      3.单个数据源定时上线

      点击定时上线,并设置上线时间,平台将于指定时间上线SQL; 用户也可取消定时上线,重新设置上线方式。

      4.标记为人工上线

      针对已经线下执行过的工单SQL,用户可点击标记为人工上线按钮,切换工单状态;

      提示

      上线人仍可选择全部驳回:用户判定工单中存在不合规、性能问题等SQL语句时,则可点击全部驳回,让工单创建人修正后再次进入审核流程。

      备注

      针对上线中的工单,用户可点击“中止上线”按钮,中断上线流程,以避免当前的上线操作影响正常业务。

      执行结果

      result

      - + \ No newline at end of file diff --git a/docs/user-manual/project/workflow/intro/index.html b/docs/user-manual/project/workflow/intro/index.html index b934dadc..82cef227 100644 --- a/docs/user-manual/project/workflow/intro/index.html +++ b/docs/user-manual/project/workflow/intro/index.html @@ -4,14 +4,14 @@ 功能说明 | SQLE 文档 - +
      版本:v3

      功能说明

      很多公司通常设有 DBA(Database administrator) 这个职位,他们负责在系统上运行数据库,执行备份,执行安全策略等日常数据库运维的工作。其中,DBA一项重要的工作是规范研发人员在应用程序中使用的 SQL 语句。

      场景举例:

      产品在迭代过程中,某个表需要新增一个字段,这会涉及到改表操作。 当前处理方法:DBA 依据数据库规范评估SQL语句的合理性。如果评估没有问题,则将修改操作应用到线上数据库。如果公司对于这类操作比较严格,在上线前,可能还需要经过层层审批。所有上线流程中的人都同意后,再将修改操作应用到数据库。

      由此引出的问题:

      • SQL上线牵涉范围较广,缺乏规范化流程支撑
      • 工单运转节点不透明,需要DBA去手动通知

      定位

      SQLE审核工单的出现主要是为了解决上述整个过程中的规范化、流程化的问题。

      • 通过引入审核规则模板,在人工审核前,首先利用规范化的DBA审核经验进行平台预审,提高整体审核效率
      • 通过引入审核流程模板,将SQL语句的流程节点透明化,并明确操作权限归属,提供规范化流程支持

      流程

      process

      状态说明
      待审核创建完的工单自动进入「待审核」状态;该状态的工单将由项目流程设置的审核人进行审核。
      待上线工单的每一道审核流程均执行通过后,工单状态将由「待审核」状态变更为「待上线」状态;上线人此时可选择立即上线或批量驳回,或针对具体数据源进行立即上线或定时上线。设置定时上线后,工单状态仍为「待上线」,到达预设的上线时间后,变更为「正在上线」状态;设置定时上线但还未到达上线时间的工单,可以由上线人取消定时上线,可以再次对工单进关闭、定时上线/立即上线等操作。
      正在上线当上线人进行立即上线,工单会短暂的进入「正在上线」阶段,该阶段的时间取决于SQL是否上线完毕;当上线人选择定时上线,定时上线的工单到预设时间会自动执行SQL上线,此时工单也会由「待上线」状态变更为「正在上线」状态;SQL上线遇到阻塞的工单会一直处于「正在上线」状态。
      上线成功SQL上线成功的工单会进入「上线成功」状态;上线成功标志工单流转结束,无法再对工单进行操作。
      上线失败SQL上线失败的工单会进入「上线失败」状态;上线失败同样标志工单流转结束,无法再对工单进行操作
      已驳回「待审核」的工单可以由每级的审批人进行审核,若审核不通过,被驳回,工单将进入「已驳回」状态;此状态的工单可以由创建人或者超管用户进行修改并重新提交工单,流程将被重置。
      已关闭状态为「待审核」、「待上线」或「已驳回」的工单可以由创建人或者超管用户在任何时刻关闭工单,「已关闭」状态标志工单流转结束,无法再对工单进行操作;已经进入上线流程的工单无法关闭。
      - + \ No newline at end of file diff --git a/docs/user-manual/sql-workbench/how-to-configure/index.html b/docs/user-manual/sql-workbench/how-to-configure/index.html index 62602946..e654100b 100644 --- a/docs/user-manual/sql-workbench/how-to-configure/index.html +++ b/docs/user-manual/sql-workbench/how-to-configure/index.html @@ -4,14 +4,14 @@ 配置方法 | SQLE 文档 - +
      版本:v3

      配置方法

      安装CloudBeaver

      提示

      SQLE目前支持的CloudBeaver版本包括22.2.0、22.2.1、22.2.3、22.3.1、23.2.1版本

      docker 部署:https://github.com/dbeaver/cloudbeaver/wiki/Run-Docker-Container

      源码安装:https://github.com/dbeaver/cloudbeaver/wiki/Build-and-deploy

      配置CloudBeaver

      步骤一 修改CloudBeaver配置文件cloudbeaver.conf

      cloudbeaver.conf配置文件通常在conf路径下

      配置文件名是否必须修改修改内容修改原因
      cloudbeaver.conf将server.rootURI的值改为'/sql_query';将server.serviceURI 的值改为 '/api/'(server.serviceURI默认就是/api/)SQLE目前只支持代理这个路由

      config

      步骤二 重启CloudBeaver

      配置cloudbeaver后,需要重启cloudbeaver以使配置项生效

      步骤三 初始化CloudBeaver

      • 使用 http://{IP}:8978/sql_query#/ 可以进入CloudBeaver即代表配置正确
      • 设置管理员用户名及密码:该用户名及密码将用于后续SQLE配置文件中
      • 确认security服务开启
      • 完成设置,登录管理员账号成功,则初始化成功

      步骤四 配置完成后检查

      • 确认角色正确:[访问管理] - [角色] 处应当只有admin和user两个角色

      • 确认没有冲突用户:[访问管理] - [用户] 处不应当有名称格式为 sqle-xxx的用户存在, 这会与SQLE自动创建的用户冲突

      提示

      用admin 跳转Cloudbeaver的时候,SQLE会在Cloudbeaver创建一个新的用户叫sqle-admin ,同时把这个用户缓存到数据库里,每次跳转先去数据库里找这个用户,如果已经存在,就会拿这个用户直接去登陆cb

      配置SQLE

      步骤一 修改SQLE配置文件, 增加SQL工作台参数

      打开SQLE配置文件,配置文件一般位于SQLE工作目录的etc目录下, 文件名一般为sqled.yml 配置文件新增参数sql_query_config

      参数字段参数说明
      sql_query_configsql工作台参数, 此参数与 sqle_config在同一级

      在sql_query_config参数下增加子参数,子参数在 sql_query_config 的下一级, 需要注意缩进

      参数字段参数说明
      cloud_beaver_hostcloudbeaver IP地址
      cloud_beaver_portcloudbeaver访问端口
      cloud_beaver_admin_usercloudbeaver管理员账户
      cloud_beaver_admin_passwordcloudbeaver管理员密码

      配置文件内容参考:

      sqleconfig

      步骤二 重启SQLE

      需要重启以使配置项生效。

      步骤三 检查SQLE是否已成功集成CloudBeaver

      SQLE重启后进入平台,点击打开SQL工作台,若成功跳转,则说明当前SQLE平台已成功集成CloudBeaver。

      提示
      • 平台管理员账户需要有 [添加/修改/删除][用户/实例/权限] 的权限
      • SQLE集成CloudBeaver后请勿使用CloudBeaver的管理员账户直接操作CloudBeaver的用户/实例/权限

      常见问题

      如果在配置CloudBeaver时,出现跳转不正确等问题,可参考如何解决CloudBeaver跳转不正确的问题

      - + \ No newline at end of file diff --git a/docs/user-manual/sql-workbench/how-to-quick-deploy/index.html b/docs/user-manual/sql-workbench/how-to-quick-deploy/index.html index caa3f37b..6d1b83f3 100644 --- a/docs/user-manual/sql-workbench/how-to-quick-deploy/index.html +++ b/docs/user-manual/sql-workbench/how-to-quick-deploy/index.html @@ -4,13 +4,13 @@ 使用定制包快速搭建环境 | SQLE 文档 - +
      版本:v3

      使用定制包快速搭建环境

      SQLE在原有CloudBeaver release_22_2_0 分支的基础上, 增加了对OceanBase 和 TiDB 的支持, 用户无需再手动配置环境,可直接使用SQL工作台功能。

      cb

      定制分支与原分支区别详情

      • 支持并默认启用 OceanBase 驱动
      • 支持并默认启用 TiDB 驱动
      • 默认访问路由调整为 /sql_query, 便于与SQLE集成
      • 默认会话超时时间调整为12小时(之前是30分钟)
      • 移除了默认创建的 PG 演示实例和 SQLite 演示实例
      • docker镜像名调整为 actiontech/sqle-cloudbeaver:22_2_0
      • 优化打包方式, 大幅提高打包效率
      • 默认主题改为暗色

      项目地址

      定制包下载地址

      https://github.com/actiontech/cloudbeaver/releases/tag/sqle.22.2.0

      使用说明

      编译和运行项目

      与原项目编译运行方式保持一致

      编译docker镜像

      进入项目的 deploy/docker 目录, 然后执行 ./make-docker-container.sh

      运行docker镜像

      • 方式一: 进入项目的 deploy/docker 目录, 然后执行 ./run-docker-container.sh
      • 方式二: 手动启动镜像, 镜像参数和 原项目镜像参数 保持一致

      已有CloudBeaver环境升级为定制环境

      CloudBeaver程序目录下应当有以下几个文件

      cb

      将CloudBeaver程序目录下的conf目录和workspace目录移动到定制CloudBeaver程序目录下(覆盖原目录), 随后停止旧CloudBeaver, 运行新CloudBeaver即可

      - + \ No newline at end of file diff --git a/docs/user-manual/sql-workbench/how-to-use/index.html b/docs/user-manual/sql-workbench/how-to-use/index.html index ffff5ea7..8f920acc 100644 --- a/docs/user-manual/sql-workbench/how-to-use/index.html +++ b/docs/user-manual/sql-workbench/how-to-use/index.html @@ -4,13 +4,13 @@ 使用定制包快速搭建环境 | SQLE 文档 - +
      版本:v3

      使用定制包快速搭建环境

      SQLE在原有CloudBeaver release_22_2_0 分支的基础上, 增加了对OceanBase 和 TiDB 的支持, 用户无需再手动配置环境,可直接使用SQL工作台功能。

      cb

      定制分支与原分支区别详情

      • 支持并默认启用 OceanBase 驱动
      • 支持并默认启用 TiDB 驱动
      • 默认访问路由调整为 /sql_query, 便于与SQLE集成
      • 默认会话超时时间调整为12小时(之前是30分钟)
      • 移除了默认创建的 PG 演示实例和 SQLite 演示实例
      • docker镜像名调整为 actiontech/sqle-cloudbeaver:22_2_0
      • 优化打包方式, 大幅提高打包效率
      • 默认主题改为暗色

      项目地址

      定制包下载地址

      https://github.com/actiontech/cloudbeaver/releases/tag/sqle.22.2.0

      使用说明

      编译和运行项目

      与 原项目编译运行方式 保持一致

      编译docker镜像

      进入项目的 deploy/docker 目录, 然后执行 ./make-docker-container.sh

      运行docker镜像

      • 方式一: 进入项目的 deploy/docker 目录, 然后执行 ./run-docker-container.sh
      • 方式二: 手动启动镜像, 镜像参数和 原项目镜像参数 保持一致

      已有CloudBeaver环境升级为定制环境

      CloudBeaver程序目录下应当有以下几个文件

      cb

      将CloudBeaver程序目录下的conf目录和workspace目录移动到定制CloudBeaver程序目录下(覆盖原目录), 随后停止旧CloudBeaver, 运行新CloudBeaver即可

      - + \ No newline at end of file diff --git a/docs/user-manual/sql-workbench/introduction/index.html b/docs/user-manual/sql-workbench/introduction/index.html index a8db6431..82082318 100644 --- a/docs/user-manual/sql-workbench/introduction/index.html +++ b/docs/user-manual/sql-workbench/introduction/index.html @@ -4,7 +4,7 @@ 功能说明 | SQLE 文档 - + @@ -13,7 +13,7 @@ error

      审核拦截场景

      步骤一 SQLE平台配置用户及角色

      • 创建一个用户A;
      • 创建一个有SQL查询权限的角色:SQL查询;

      步骤二 SQLE平台配置数据库实例审核等级

      进入项目,创建/修改一个数据源实例A, 在配置中开启SQL查询,并设置运行查询的最高审核等级;

      参数名参数含义
      SQL查询是否需要审核只有开启此项,才会在执行SQL查询时进行审核
      运行查询的最高审核等级如果审核等级低于或等于这个等级将会放行, 高于这个等级将无法执行

      步骤三 SQLE平台配置成员权限

      • 在项目内添加成员A,并设置A在实例test上有SQL查询的角色;

      步骤四 登录CloudBeaver

      切换成员A账号后,点击SQL工作台跳转CloudBeaver,SQLE将会自动使用当前SQLE用户登录CloudBeaver。

      警告

      若当前用户无SQL查询权限,则无权登录。

      步骤五 下发SQL

      选择需要操作的数据源,并输入SQL语句点击运行,可查看SQL查询结果

      操作结果

      审核失败的SQL将会被拦截, 并报出错误, 可以点击详情查看错误详情 error

      按要求修改SQL, 再次执行, 如果审核通过将会执行当前SQL success

      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/configuration/index.html b/docs/user-manual/sys-configuration/configuration/index.html index b87bde1f..86fc2b86 100644 --- a/docs/user-manual/sys-configuration/configuration/index.html +++ b/docs/user-manual/sys-configuration/configuration/index.html @@ -4,14 +4,14 @@ 全局配置 | SQLE 文档 - +
      版本:v3

      全局配置

      SQLE支持管理员对平台基础配置进行统一管理,目前支持修改的配置项包括:

      • 已完成的工单自动过期时间;
      • 操作记录过期时间;
      • URL地址前缀;

      已完成的工单自动过期时间

      使用场景

      SQLE会定时回收已完成的工单,目前该过期时间默认为30天。如果用户需要自定义过期时间,可在全局配置中修改。

      填写范例

      • 进入全局配置页面,点击修改
      • 点击已完成的工单过期时间输入框;
      • 输入预期的过期时间,例如:360小时;
      • 点击提交,保存配置;
      • 此时查看项目工单列表,已完成15天以上的工单将被删除;

      操作记录过期时间

      使用场景

      SQLE会定时回收已产生的操作记录,目前该过期时间默认为90天。如果用户需要自定义过期时间,可在全局配置中修改。

      填写范例

      • 进入全局配置页面,点击修改
      • 点击操作记录过期时间输入框;
      • 输入预期的过期时间,例如:2小时;
      • 点击提交,保存配置;
      • 此时查看平台操作记录,仅显示2个小时内产生的操作行为;

      URL地址前缀

      使用场景

      配置消息推送或流程对接后,用户可以从外部应用程序中直接查看待操作提示。此时,如果用户需要跳转到SQLE,进一步查看工单详细信息,则可以在全局配置中更改URL地址前缀,以满足访问需求。

      填写范例

      • 进入全局配置页面,点击修改
      • 点击URL地址前缀输入框;
      • 输入URL前缀,格式为http://ip:port,例如:http://localhost:10000 ;
      • 点击提交,保存配置;
      • 创建一条工单,待审批人在第三方应用中可查看工单链接,点击链接可快速跳转至SQLE平台; configuration-url
      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/customize/index.html b/docs/user-manual/sys-configuration/customize/index.html index ee1178a9..0f2416ad 100644 --- a/docs/user-manual/sys-configuration/customize/index.html +++ b/docs/user-manual/sys-configuration/customize/index.html @@ -4,13 +4,13 @@ 个性化设置【企业版】 | SQLE 文档 - +
      版本:v3

      个性化设置【企业版】

      SQLE支持对网站logo及标题进行自定义设置,满足企业用户的个性化需求。

      使用场景

      若用户对企业一致性有需求,需要变更所使用的网站LOGO及标题,以增加企业辨识度时,可以使用平台的个性化设置进行变更。

      操作步骤

      • 用户点击系统设置,选择个性化设置
      • 编辑个性化标题:用户点击个性化标题后的编辑icon,输入新名称,回车键保存后,页面标题将即时变更;
      • 编辑个性化logo:用户点击上传及更新icon后,登录页logo将变更为所选图片;
        • 限制:图片大小不可超过102,400 Bytes;

      customize

      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/intro/index.html b/docs/user-manual/sys-configuration/intro/index.html index 55db3875..b393a296 100644 --- a/docs/user-manual/sys-configuration/intro/index.html +++ b/docs/user-manual/sys-configuration/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v3

      功能说明

      系统设置中可配置的内容包括全局配置、登录对接、流程对接、消息推送。

      • 全局配置:当前可配置工单过期时间及外部URL;
        • 工单失效时间:平台会定期清理已完成的工单,管理员可自定义工单过期的时间;
        • URL地址前缀:当使用流程对接时,通常由外部平台访问SQLE工单详情,需要配置URL地址前缀,配置能访问SQLE的URL地址信息;
      • 登录对接:用户除使用SQLE账号登录平台,也可使用LDAP及OAuth2.0的方式实现对接登录,可参考登录对接
      • 流程对接:使用流程对接,可在外部工作平台审批工单,目前支持钉钉审批及飞书审批,可参考流程对接
      • 消息推送:使用消息推送,可将工单状态变更推送到外部工作平台,目前支持对接邮箱、企业微信、飞书、Webhook的方式,可参考消息推送
      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/login_syn/index.html b/docs/user-manual/sys-configuration/login_syn/index.html index 9b0ca326..2ec3a2b2 100644 --- a/docs/user-manual/sys-configuration/login_syn/index.html +++ b/docs/user-manual/sys-configuration/login_syn/index.html @@ -4,14 +4,14 @@ 登录对接 | SQLE 文档 - +
      版本:v3

      登录对接

      当前登录对接已实现LDAP方式及Oauth2.0方式

      入口

      管理员账号,点击更多按钮,点击系统设置,跳转系统设置页面后,点击“对接登录”标签

      推送方式

      LDAP

      功能说明

      SQLE中支持通过配置的方式接入LDAP系统, 如同其他系统一样接受统一的用户管理, 以便于管理员管理SQLE中的用户, 也使得员工无需在使用一套公司内通用账号密码的同时单独记录SQLE的账号密码。 在SQLE中, 如果正确配置并启用了LDAP功能, 用户就可以在登录界面使用LDAP中记录的账号密码进行登录, SQLE会在员工第一次登录时同步此员工的账号和邮箱, 并在以后的登录中均通过LDAP校验此账户

      使用场景

      当组织配置了LDAP对接登录系统时,平台管理员可进行相关配置。

      前置操作

      已配置LDAP

      操作步骤

      点击修改,选择启用LDAP

      • LDAP服务器地址:用于LDAP登陆时SQLE找到LDAP服务器的位置
      • LDAP服务器端口:用于LDAP登陆时SQLE找到LDAP服务的工作端口
      • 连接用户DN:当用户登录时需要先使用管理用户登录到LDAP中查找出登录用户在LDAP中的DN, 再使用查找出的DN和登录用户填写的密码进行LDAP登录校验
      • 连接用户密码:连接用户DN登录时的密码
      • 查询根DN:用于限定SQLE中LDAP登录的作用范围
      • 用户属性名:用于LDAP用户登录时查询登录用户的DN, LDAP中此属性对应的值也将用作此用户第一次登录SQLE自动注册时的用户名
      • 用户邮箱属性名:SQLE将根据此属性名从LDAP中获取到用户的邮箱, 并将此邮箱用于此用户第一次登录SQLE自动注册时的用户邮箱

      后续操作

      修改后用户即可通过LDAP账号登录SQLE平台

      OAuth 2.0【企业版】

      功能说明

      SQLE中支持通过配置的方式接入OAuth 2.0系统, 如同其他系统一样接受统一的用户管理, 以便于管理员管理SQLE中的用户, 也使得员工无需在使用一套公司内通用账号密码的同时单独记录SQLE的账号密码

      在SQLE中, 如果正确配置并启用了OAuth 2.0功能, 用户就可以在登录界面使用第三方登录, SQLE会在员工第一次登录时要求用户绑定或自动创建一个SQLE用户, 并在以后的登录中可以使用OAuth 2.0用户登录, 也可以用绑定的SQLE用户账号密码登录

      使用场景

      当组织配置了OAuth 2.0对接登录系统时,平台管理员可进行相关配置。

      前置操作

      已配置OAuth 2.0

      操作步骤

      点击修改,选择启用OAuth 2.0

      • 应用ID:应用的唯一标识, 从要对接的平台申请 , 在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值
      • 应用密钥:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值
      • 外部访问SQLE的地址:格式为 http(s)://ip:port
      • oauth2登录授权页面地址:格式类似于 http(s)://ip:port/xxx
      • oauth2 access_token 获取地址:格式类似于 http(s)://ip:port/xxx
      • oauth2 user id 获取地址:格式类似于 http(s)://ip:port/xxx
      • 请求资源范围:此范围由验证服务器定义
      • access_token放置位置:SQLE会在获取用户ID时将access_token放在这个key对应的value中, 此参数会作为get请求的参数发送给用户ID获取地址
      • 用户ID保存位置:SQLE会尝试使用此key从第三方平台的响应中解析出用户ID,用户ID应当为唯一ID
      • 登录按钮文字
      提示

      当仅允许内网访问SQLE服务时,请确保回调地址的后缀为"/v1/oauth2/callback"。

      后续操作

      启用后SQLE登录界面出现其他方式跳转登录入口,点击,可跳转至对应登录页面

      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/message_syn/index.html b/docs/user-manual/sys-configuration/message_syn/index.html index b2ff3ba4..055ff904 100644 --- a/docs/user-manual/sys-configuration/message_syn/index.html +++ b/docs/user-manual/sys-configuration/message_syn/index.html @@ -4,7 +4,7 @@ 消息推送 | SQLE 文档 - + @@ -18,7 +18,7 @@ example
    1. 当t1审核通过后,成员admin作为待上线人, admin手机号绑定的飞书账号下,收到一则待上线的工单通知; example
    2. 当admin上线成功后,工单创建人将收到一则工单上线成功的消息; example
    3. 根据以上示例,用户可了解飞书消息推送的部分场景。

      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/process_syn/index.html b/docs/user-manual/sys-configuration/process_syn/index.html index 4a97e18e..9abb9da7 100644 --- a/docs/user-manual/sys-configuration/process_syn/index.html +++ b/docs/user-manual/sys-configuration/process_syn/index.html @@ -4,7 +4,7 @@ 流程对接 | SQLE 文档 - + @@ -25,7 +25,7 @@ dingding-telconfig

      打开全局配置,配置SQLE的URL地址,配置URL地址后,用户可从飞书跳转访问SQLE工单详情页面; globalurl

      利用飞书进行审批

      当发生工单变化时,工单关联成员可在对应飞书账号中收到通知,并进行相应的审批操作; dingding-flow

      - + \ No newline at end of file diff --git a/docs/user-manual/sys-configuration/webhook/index.html b/docs/user-manual/sys-configuration/webhook/index.html index 643da5e4..ac2968b3 100644 --- a/docs/user-manual/sys-configuration/webhook/index.html +++ b/docs/user-manual/sys-configuration/webhook/index.html @@ -4,14 +4,14 @@ webhook配置 | SQLE 文档 - +
      版本:v3

      webhook配置

      Webhook是用户定义的自定义HTTP回调。它们通常由事件触发,例如SQLE中存在工单状态的变化,则会自动向用户配置的webhook URL发送HTTP请求。

      使用场景

      当用户配置了自定义API服务,想要在API服务中实时获取工单执行状态时,可在系统设置中配置webhook服务。在SQLE中配置回调地址后,工单状态一旦发生变更,即可在API服务中获取状态通知信息,无需定时登录SQLE平台以查询结果。

      提示

      当前会触发通知的事件有:

      • 有新工单被创建
      • 工单审核被通过
      • 工单审核被驳回
      • 工单被成功上线
      • 工单上线失败

      前置操作

      用户需在使用的API服务中生成用于接收回调通知的webhook url。

      备注

      当前webhook url仅支持http格式。

      操作步骤

      1. 以平台管理员账号登录, 进入系统设置-消息推送,选择webhook配置,并点击修改;
      2. 选择启用webhook;
      3. 填写webhook url:用于工单消息推送的 API 地址;
      4. 填写最大重试次数:默认3次,取值范围0-5。如果推送存在失败,每一个事件请求将最多连续3次执行推送,如3次都失败,则不再推送本次事件;
      5. 填写重试间隔:默认1秒,取值范围1-5。如果推送存在失败,重试时将以1s的时间间隔进行重试;
      6. 填写Token:云服务在发送通知时使用的访问令牌,参考规范:https://datatracker.ietf.org/doc/html/rfc6750;
      7. 提交保存配置;

      后续步骤

      用户点击“测试”,如配置正确,能在API服务端收到正确的调用测试信息: "This is a SQLE test notification\nIf you receive this message, it only means that the message can be pushed".

      接口文档

      SQLE POST 请求格式
      POST / HTTP/1.1
      Host: 192.168.21.34:8000
      Accept-Encoding: gzip
      Authorization: Bearer test123
      Content-Length: 239
      User-Agent: Go-http-client/1.1

      {"event":"workflow","action":"create","timestamp":"2023-05-18T15:45:25+08:00","payload":{"workflow":{"project_name":"test_project","workflow_id":"1658637666259832832","workflow_subject":"test_workflow","workflow_status":"wait_for_audit"}}}
      • "event":当前取值恒为 "workflow"(目前SQLE只支持工单通知);
      • "action":可能的取值有 ["create", "approve", "reject", "exec_success", "exec_failed"]。分别对应「工单创建」、「审核通过」、「审核驳回」、「上线成功」、「上线失败」;
      • "timestamp":表示请求发出的时间,RFC3339 格式;
      • "payload":表示该请求的主要业务内容,目前仅支持工单;
      • "workflow":表示该工单的当前信息,与 sqle 后端数据库中记录保持一致;

      注意事项

      • 用户配置的 token 会被放置在请求 Header 中的 Authorization 字段。参考规范:https://datatracker.ietf.org/doc/html/rfc6750 。SQLE对token字段没有任何限制。需要接受端根据自身情况决定是否使用 token;
      • 接收请求的服务端在收到请求后,需要返回 200 响应。否则 sqle 会打印返回 body 中的文本信息。
      • 在发送测试请求时,请确保接收请求的服务端运行正常。否则可能出现如下问题:
      {
      "code": 0,
      "message": "ok",
      "data": {
      "send_error_message": "Post \"http://192.168.21.34:8000\": dial tcp 192.168.21.34:8000: connect: connection refused"
      }
      }
      - + \ No newline at end of file diff --git a/docs/user-manual/user-manager/intro/index.html b/docs/user-manual/user-manager/intro/index.html index e425b984..1809a8e2 100644 --- a/docs/user-manual/user-manager/intro/index.html +++ b/docs/user-manual/user-manager/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v3

      功能说明

      用户中心包含用户管理、角色管理及操作权限列表,由平台管理员操作,涉及用户及角色权限的配置。

      • 用户管理:指平台用户的管理,由管理员创建用户或编辑用户基本信息,可参考用户管理
      • 角色管理:SQLE平台使用角色管理来实现操作权限组合,由管理员创建,可参考角色管理

      使用场景

      • 在添加项目成员、成员组之前,需要由管理员首先创建平台用户,项目管理员才可将用户添加为项目成员。
      • 为项目成员绑定数据源与角色操作权限前,需要由管理员创建相应权限的角色模板,项目管理员可为成员绑定配置的角色模板。
      - + \ No newline at end of file diff --git a/docs/user-manual/user-manager/role/index.html b/docs/user-manual/user-manager/role/index.html index 80c51a33..5a50309e 100644 --- a/docs/user-manual/user-manager/role/index.html +++ b/docs/user-manual/user-manager/role/index.html @@ -4,13 +4,13 @@ 角色管理 | SQLE 文档 - +
      版本:v3

      角色管理

      当需要为用户设置动作权限时,可使用角色管理配置动作组合。

      如用户需要有创建工单、审核工单、SQL查询的动作权限,管理员可以在角色管理创建一个角色,并绑定创建工单、审核工单、SQL查询这三个动作,随后只需将此角色关联至指定成员,即可完成用户的动作权限设置。

      操作步骤

      • 点击顶部导航栏更多按钮,点击平台管理栏目下的用户中心选项,查看角色管理标签。
      • 点击列表右上角创建角色按钮,填写相关信息
        • 角色名
        • 角色描述
        • 选择动作权限:配置该角色所拥有的操作权限,SQLE平台支持的动作权限如下:
      权限名权限码权限说明
      查看他人工单20100当角色拥有该动作权限时,角色可以查看绑定的数据源上其他用户创建的工单
      创建/编辑工单20200当角色拥有该动作权限时,角色可以在绑定的数据源上创建工单
      工单审批20300当审核流程模版中的某个审核步骤指定为允许所有有权限的用户审批时, 拥有此权限的用户将可以审批对应工单
      审核任务查看30100拥有此权限的用户可以查看所有审核任务, 无此权限的用户只能查看自己创建审核任务
      审核任务创建30200拥有此权限的用户可以创建审核任务
      sql查询40100拥有此权限的用户可以上线工单

      执行结果

      可在角色列表查看创建的角色信息。

      role

      后续步骤

      • 添加成员/成员组:项目管理员在项目中添加成员/成员组时,需要绑定成员/成员组在对应数据源上的角色权限,可参考成员/成员组管理

      更多操作

      • 编辑角色:点击角色列表的编辑按钮,编辑角色信息。角色名不可更改,可设置角色禁用,则对应权限不会生效。
      • 删除角色:点击角色列表的删除按钮,删除角色信息。
      - + \ No newline at end of file diff --git a/docs/user-manual/user-manager/user/index.html b/docs/user-manual/user-manager/user/index.html index 3e944213..665c3088 100644 --- a/docs/user-manual/user-manager/user/index.html +++ b/docs/user-manual/user-manager/user/index.html @@ -4,13 +4,13 @@ 用户管理 | SQLE 文档 - +
      版本:v3

      用户管理

      当需要创建新的用户,或需要由管理员修改用户基本信息时,可以进行用户管理的相关操作。

      操作步骤

      • 点击顶部导航栏更多按钮,点击平台管理栏目下的用户中心选项,查看用户管理标签。

      • 点击列表右上角创建用户按钮,填写用户相关信息:

        • 用户名
        • 密码
        • 确认密码
        • 邮箱:若开启邮件推送或飞书推送服务,则将会以邮件形式通知对应用户工单的流转状态
        • 微信ID:若开启企业微信推送服务,则将通过企业微信通知对应用户工单的流转状态
        • 平台管理权限:当前可选项为创建项目,若选择该权限,则该用户将具有创建项目的权限
      • 点击提交,完成用户创建

      执行结果

      创建成功后,可在用户列表中查看已创建的用户信息

      userlist

      后续步骤

      • 添加项目成员:项目管理员可进入指定项目,将创建的用户添加为项目成员,可参考成员/成员组管理

      更多操作

      • 编辑用户:其中,用户名不可更改,其他信息项均可更改。
      • 删除用户
      • 修改用户密码:点击用户列表的更多按钮,下拉菜单中点击更修改该用户密码
        提示

        管理员还可以对指定的用户进行禁用或者启用。 当用户被管理员禁用后,该用户将无法登录,也无法进行任何操作。 管理员用户永远无法禁用自己本身。

      - + \ No newline at end of file diff --git a/docs/v2/FAQ/intro/index.html b/docs/v2/FAQ/intro/index.html index b2044683..7ca9f5e2 100644 --- a/docs/v2/FAQ/intro/index.html +++ b/docs/v2/FAQ/intro/index.html @@ -4,13 +4,13 @@ FAQ | SQLE 文档 - +
      版本:v2

      FAQ

      本章将针对使用过程中的常见问题进行解答。

      - + \ No newline at end of file diff --git a/docs/v2/FAQ/whichdatabase/index.html b/docs/v2/FAQ/whichdatabase/index.html index 364ceb1b..417ec571 100644 --- a/docs/v2/FAQ/whichdatabase/index.html +++ b/docs/v2/FAQ/whichdatabase/index.html @@ -4,13 +4,13 @@ 支持哪些数据库 | SQLE 文档 - +
      版本:v2

      支持的数据库及版本

      数据库类型验证可用的版本
      MySQL5.7.25 、8.0.33
      PostgreSQL9.3 – 13
      Oracle11.2、12.1、12.2
      SQL server2008、2012、2016
      DB211.5
      TiDB4.0.8
      OceanBase For MySQL3.5
      达梦V8
      提示

      当前版本为SQLE验证确认可用的版本,若需要使用其他版本,需自行验证

      - + \ No newline at end of file diff --git a/docs/v2/SUMMARY/index.html b/docs/v2/SUMMARY/index.html index 7318964b..b7a964f2 100644 --- a/docs/v2/SUMMARY/index.html +++ b/docs/v2/SUMMARY/index.html @@ -4,13 +4,13 @@ Summary | SQLE 文档 - + - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/cluster/index.html b/docs/v2/deploy-manual/cluster/index.html index 8be40286..f64c49f3 100644 --- a/docs/v2/deploy-manual/cluster/index.html +++ b/docs/v2/deploy-manual/cluster/index.html @@ -4,13 +4,13 @@ 集群部署【企业版】 | SQLE 文档 - +
      版本:v2

      集群部署【企业版】

      SQLE支持集群模式,支持主节点宕机后,从节点能够提升为主并支持后台任务,执行如工单定时上线,智能扫描任务,工单回收,外部数据源对接,钉钉工单对接等任务,保证任务正常执行。

      cluster

      使用场景

      当用户需要对SQLE配置高可用场景,确保任一服务节点宕机均不会影响到业务的正常执行时,用户可开启集群模式。

      配置说明

      开启集群模式仅需用户进入SQLE配置文件,修改如下内容:

      参数说明示例备注
      server:sqle_config:enable_cluster_mode是否开启集群模式true当需要开启集群模式时,新增该参数,并设为开启
      server:sqle_config:server_idSQLE节点的IDnode_1目前未对节点进行全局唯一校验,需要人工确认集群内不能重复,重复会导致出现多leader等情况
      配置文件示例
        server:
      sqle_config:
      server_port: 10000
      auto_migrate_table: true
      debug_log: false
      log_path: './logs'
      plugin_path: './plugins'
      enable_cluster_mode: true # true表示开启集群模式
      server_id: node_1 # 设置当前节点编号
      db_config:
      mysql_cnf:
      mysql_host:
      mysql_port:
      mysql_user:
      mysql_password:
      mysql_schema:
      提示

      修改配置文件后,需要重启SQLE生效。

      - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/config/index.html b/docs/v2/deploy-manual/config/index.html index 11f4dd35..cc5ae29d 100644 --- a/docs/v2/deploy-manual/config/index.html +++ b/docs/v2/deploy-manual/config/index.html @@ -4,13 +4,13 @@ 配置文件说明 | SQLE 文档 - +
      版本:v2

      配置文件说明

      提示

      SQLE的配置文件采用yml的格式,默认情况下位于SQLE安装目录下,路径为./etc/sqled.yml

      默认文件参考

      server:
      sqle_config:
      server_port: 10000
      enable_https: false
      cert_file_path: './etc/cert.pem'
      key_file_path: './etc/key.pem'
      auto_migrate_table: true
      debug_log: false
      log_path: './logs'
      log_max_size_mb: 1024
      log_max_backup_number: 2
      secret_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #从 v1.2203.0 版本引入
      db_config:
      mysql_cnf:
      mysql_host: '127.0.0.1'
      mysql_port: 3306
      mysql_user: 'root'
      mysql_password: '123456'
      mysql_schema: 'sqle'

      配置说明

      sqle_config

      参数说明
      server_portsqle 服务的 http 端口,默认10000
      enable_https是否开启https,默认不开启
      cert_file_pathhttps 证书路径
      key_file_pathhttps 私钥路径
      auto_migrate_table自动创建表结构,初始化数据
      debug_log开启debug模式,打印更多日志,会打印业务SQL,开发环境可开启
      log_path日志目录
      log_max_size_mb单个日志文件最大大小,单位MB
      log_max_backup_number日志文件最大备份数量
      secret_key全局AES加密秘钥,影响登录和用户密码等的存储;生产环境建议配置该值替换掉程序默认值,不然会存在安全风险;格式是32位随机字符串

      db_config

      参数说明
      mysql_hostSQLE存储库的地址
      mysql_portSQLE存储库的端口
      mysql_userSQLE存储库的数据库用户
      mysql_passwordSQLE存储库的数据库密码
      mysql_schemaSQLE存储库的数据库 schema
      - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/docker-compose/index.html b/docs/v2/deploy-manual/docker-compose/index.html index d8181247..17c5a99b 100644 --- a/docs/v2/deploy-manual/docker-compose/index.html +++ b/docs/v2/deploy-manual/docker-compose/index.html @@ -4,13 +4,13 @@ Docker Compose 部署 | SQLE 文档 - +
      版本:v2

      Docker Compose 部署

      使用 docker-compose 部署不需要提前准备 MySQL 环境,可以一键生成 SQLE 环境

      配置文件

      下载地址:docker-compose.yaml

      使用说明

      将 docker-compose.yaml 文件下载到本地目录,并进入目录内,通过环境变量SQLE_IMAGE指定不同版本的 SQLE 镜像,默认是 latest。

      SQLE_IMAGE=actiontech/sqle-ce:latest docker-compose up -d

      访问

      http://127.0.0.1:10000

      - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/docker/index.html b/docs/v2/deploy-manual/docker/index.html index 21758d2c..7bccb8e2 100644 --- a/docs/v2/deploy-manual/docker/index.html +++ b/docs/v2/deploy-manual/docker/index.html @@ -4,13 +4,13 @@ Docker 部署 | SQLE 文档 - +
      版本:v2

      Docker 部署

      Docker hub 地址

      actiontech/sqle-ce

      Docker 参考命令

      docker run -d -it \
      --name sqle-server \
      -p 10000:10000 \
      -e MYSQL_HOST="10.10.10.10" \
      -e MYSQL_PORT=3306 \
      -e MYSQL_USER="username" \
      -e MYSQL_PASSWORD="password" \
      -e MYSQL_SCHEMA="sqle" \
      actiontech/sqle-ce:latest

      参数说明

      使用环境变量传递参数,这些指定的配置会映射到 sqled.yml 配置内,指定数据库的配置等。

      变量说明
      MYSQL_HOST数据库地址
      MYSQL_PORT数据库端口
      MYSQL_USER数据库用户
      MYSQL_PASSWORD数据库密码
      MYSQL_SCHEMASQLE 服务使用的指定的 schema
      DEBUG是否输出 debug 日志,默认为false
      AUTO_MIGRATE_TABLE是否自动创建表格和初始化数据,默认为true

      注意点

      提示

      使用 docker 命令运行容器需要提前准备 MySQL 服务并且创建对应的数据库 schema,创建数据库的SQL可参考:RPM 部署

      提示

      如果 SQLE 容器启动失败可以使用 docker logs sqle-server 查看启用日志,其中 sqle-server是容器名称。

      - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/intro/index.html b/docs/v2/deploy-manual/intro/index.html index d7113a38..d24b9c53 100644 --- a/docs/v2/deploy-manual/intro/index.html +++ b/docs/v2/deploy-manual/intro/index.html @@ -4,13 +4,13 @@ 安装说明 | SQLE 文档 - +
      版本:v2

      安装说明

      SQLE 提供了多种安装部署的方式,用户可以结合自己的环境和现状选择。初次体验或者测试使用的话建议使用docker-compose 或 docker 快速部署。

      安装方式

      1. 源码安装
      2. RPM 部署
      3. Docker 部署
      4. Docker Compsoe 部署

      如何访问

      SQLE 对外提供 web 服务,在程序部署完成后,即可通过 SQLE UI 访问:http://127.0.0.1:10000

      提示

      ps:ip 和端口请根据前面的配置自行替换,默认端口是10000。

      初始用户

      • 用户名:admin
      • 密码:admin
      - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/rpm/index.html b/docs/v2/deploy-manual/rpm/index.html index 0aa19708..35b7ec7d 100644 --- a/docs/v2/deploy-manual/rpm/index.html +++ b/docs/v2/deploy-manual/rpm/index.html @@ -4,13 +4,13 @@ RPM 安装 | SQLE 文档 - +
      版本:v2

      RPM安装

      环境准备

      • CentOS 7
      • MySQL 5.7

      下载安装包

      下载 SQLE 的 RPM 安装包,下载连接点击这里

      安装 SQLE

      执行 RPM 的安装命令:

      rpm -ivh /path/to/sqle-ce-${version}.qa.el7.x86_64.rpm --prefix=/opt/sqle

      创建数据库

      准备一台 MySQL5.7 作为 SQLE 的后端存储数据库。执行下面命令创建 SQLE 需要的 schema:

      CREATE DATABASE IF NOT EXISTS sqle default character set utf8mb4 collate utf8mb4_unicode_ci
      提示

      创建好的 Schema 将在下面修改SQLE配置时使用到。

      修改 SQLE 配置文件

      安装完 SQLE 后,需要根据实际情况修改SQLE的配置,参考:配置文件说明。SQLE安装完成后提供一个配置模版可直接修改。

      cd /opt/sqle/etc
      mv sqled.yml.template sqled.yml
      vim sqled.yml
      提示

      确保 sqled.yml 的文件 owner 为 actiontech-universe:actiontech

      启动 SQLE

      SQLE 进程通过 Systemd 管理。在成功安装 RPM 后,执行启动命令:

      systemctl start sqled

      启动失败问题诊断

      参考:https://github.com/actiontech/sqle/discussions/1239

      - + \ No newline at end of file diff --git a/docs/v2/deploy-manual/source/index.html b/docs/v2/deploy-manual/source/index.html index 4083d568..734f36ac 100644 --- a/docs/v2/deploy-manual/source/index.html +++ b/docs/v2/deploy-manual/source/index.html @@ -4,13 +4,13 @@ 源码安装 | SQLE 文档 - +
      版本:v2

      源码安装

      环境准备

      • CentOS 7
      • MySQL 5.7
      • Docker
      • Docker Compose(可选)

      获取源码

      SQLE 前端与后端代码分两个仓库维护,所以想要通过源码安装,需要构建前后端代码。

      首先选择一个源码安装的工作目录,例如 ~/sqle-build/。

      获取后端源码:

      cd ~/sqle-build/
      git clone https://github.com/actiontech/sqle.git

      获取前端源码:

      cd ~/sqle-build/
      git clone https://github.com/actiontech/sqle-ui.git

      编译源码

      编译前端代码,并将前端代码拷贝至后端代码目录:

      cd ~/sqle-build/sqle-ui
      docker container run --rm -v $PWD:/app -w /app node:15.3.0 sh -c "yarn install && yarn build"
      rm -rf ~/sqle-build/sqle/ui && cp -r ~/sqle-build/sqle-ui/build/ ~/sqle-build/sqle/ui/

      编译后端代码并打包:

      cd ~/sqle-build/sqle
      make docker_rpm

      打包完成后会在当前目录下生成一个 SQLE 的 RPM 包,后续的步骤参考:RPM 部署

      - + \ No newline at end of file diff --git a/docs/v2/dev-manual/intro/index.html b/docs/v2/dev-manual/intro/index.html index 54f89cac..1582b85b 100644 --- a/docs/v2/dev-manual/intro/index.html +++ b/docs/v2/dev-manual/intro/index.html @@ -4,13 +4,13 @@ 产品架构 | SQLE 文档 - +
      - + \ No newline at end of file diff --git a/docs/v2/dev-manual/plugins/howtodev/index.html b/docs/v2/dev-manual/plugins/howtodev/index.html index 149f58ab..998e24af 100644 --- a/docs/v2/dev-manual/plugins/howtodev/index.html +++ b/docs/v2/dev-manual/plugins/howtodev/index.html @@ -4,7 +4,7 @@ 数据库审核插件开发 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      数据库审核插件开发

      在本篇文档中,会介绍如何开发一个数据库审核插件,分为快速开始部分和详细部分。

      • 如果你是一个对 Go 语言不太了解的人,可以先通过快速开始部分的文档,实现一个简单的数据库审核插件。
      • 当你对插件开发有了一定的了解之后,可以通过详细部分的文档,通过更多自定义的方式,实现更加复杂的数据库审核插件。

      快速开始

      前置

      1. 语法

      由于 SQLE 是一个用 Go 语言开发的开源项目,如果你对 Go 语言完全不了解,需要先了解 Go 语言的基础语法,建议使用官方的 Go 语言快速开始文档(Go Tour 或者 Go 语言之旅),如果你已经了解了 Go 语言的基础语法,可以直接跳过本部分。

      2. 包管理

      SQLE 插件是一个独立于 SQLE 的进程,所以编写插件的方式与开发一个新的 Go 语言项目并没有什么差异。Go 语言项目使用 Go Modules 来管理包,所以在开始之前你需要先了解一下 Go Modules 的使用方法。建议参考这篇文档,文档中大致介绍了如果开始一个新的 Go 语言项目,并通过 Go Modules 的方式来调用其他项目的包,如果你已经了解了 Go Modules 的使用方法,可以直接跳过本部分。

      3. Go语言项目构建

      编写插件

      这一小节会假设你已经创建了一个由 Go Modules 管理的审核插件项目。下面开始介绍插件核心代码的开发。

      1. 数据库插件介绍

      SQLE 为了方便插件的开发,在自身的插件层之上做了一层封装(Adaptor),插件开发者可以使用这个封装库来快速的开发一个数据库审核插件。

      在开发之前,你需要先引入 SQLE:

      go get github.com/actiontech/sqle@v2.2305.0-pre2 # 此版本为该文档编辑时的最新版本

      选择 SQLE 中两个库插件相关的库:

      • github.com/actiontech/sqle/sqle/driver
      • github.com/actiontech/sqle/sqle/pkg/driver
      提示
      • 第一个库定义了插件规则的结构体,在你编写插件规则时需要用到这个库。
      • 第二个库中实现了一些默认的插件,在引入这个库后,只需要实现相应的规则与规则处理函数即可。其中三个默认的插件为:
        • PostgreSQL
        • Oracle
        • SQL Server
      • 如果这三个默认的插件不能满足需求,可以自己实现一个插件,参考本篇文档自定义插件小节。

      2. 选择插件

      下面假设你想要实现一个 SQL Server 的审核插件。在 main 函数中创建一个空的 SQL Server 审核插件,这时你的 main 文件应该是这样的:

      package main

      import (
      "github.com/actiontech/sqle/sqle/driver"
      adaptor "github.com/actiontech/sqle/sqle/pkg/driver"
      )

      func main() {
      plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})
      }

      3. 编写插件规则与规则处理函数

      假设你需要实现一个规则,该规则检查 SQL 是否使用了 select *。定义规则如下:

      Rule{
      Name: "aviod_select_all_column", # 规则ID,该值会与插件类型一起作为这条规则在 SQLE 的唯一标识
      Desc: "避免查询所有的列", # 规则描述
      Category: "DQL规范", # 规则分类,用于分组,相同类型的规则会在 SQLE 的页面上展示在一起
      Level: driver.RuleLevelError, # 规则等级,表示该规则的严重程度。在插件注册阶段,会使用所有 RuleLevelError 级别的规则创建一个默认的规则模板。
      }

      规则的处理函数如下:

      func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {
      if strings.Contains(sql, "select *") {
      return rule.Desc, nil
      }
      return "", nil
      }

      这里为了演示,这个处理函数只是简单的使用了字符串匹配的方式,你也可以使用正则或者 AST 语法树的方式来检查 SQL 语句(AST 的方式会在自定义SQL解析器一小节中介绍)。

      最后将插件规则与规则处理函数通过 plugin.AddRule()函数注册到 SQLE 中,注册完成后,你的 main 文件应该是这样的:

      package main

      import (
      "github.com/actiontech/sqle/sqle/driver"
      adaptor "github.com/actiontech/sqle/sqle/pkg/driver"
      )

      func main() {
      plugin := adaptor.NewAdaptor(&adaptor.MssqlDialector{})
      aviodSelectAllColumn := &driver.Rule{
      Name: "aviod_select_all_column",
      Desc: "避免查询所有的列",
      Category: "DQL规范",
      Level: driver.RuleLevelError,
      }
      aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, sql string) (string, error) {
      if strings.Contains(sql, "select *") {
      return rule.Desc, nil
      }
      return "", nil
      }
      plugin.AddRule(aviodSelectAllColumn, aviodSelectAllColumnHandler)

      ////////////////////////////////////////////
      // ... 编写更多规则并通过 AddRule 注册到 SQLE 中
      ////////////////////////////////////////////

      // 最后关键一步,调用 `plugin.Serve()` 启动插件:
      plugin.Serve()
      }

      4. 构建并使用插件

      和通常的程序编写流程一样,编写完插件代码后,需要将其构建成二进制文件,然后才能将其注册到 SQLE 中。执行 go build -o ${二进制名} main.go 将插件代码构建成二进制文件。最后参考数据库审核插件使用 来使用你的自定义插件。

      自定义部分

      1.自定义SQL解析器

      前面介绍的审核规则都是通过字符串匹配的方式来解析 SQL 的内容。这种方式适合规则较少且 SQL 简单的情况下使用。

      如果需要对 SQL 进行更复杂的解析匹配,恰好你选择的数据库插件又有相应的 SQL 解析器,这时可以使用自定义 SQL 解析器的方式来编写插件。

      首先通过调用 WithSQLParser() 注册自己的 SQL 解析器。在添加规则时则使用 plugin.AddRuleWithSQLParser() 添加带有解析器的处理函数。在处理函数中,将 interface{} 断言成具体的 AST 语法树,通过语法树级别的操作来更加精细的处理 SQL。PostgreSQL 提供了基于 cgo 调用的解析器(见:PostgreSQL SQL 解析器),下面的代码展示了如何写一个 SQL 解析器的插件:

      func main() {
      plugin := adaptor.NewAdaptor(&adaptor.PostgresDialector{})

      // 依然是定义规则
      aviodSelectAllColumn := &driver.Rule{
      Name: "aviod_select_all_column",
      Desc: "避免查询所有的列",
      Category: "DQL规范",
      Level: driver.RuleLevelError,
      }

      // 依然是定义处理函数,这时处理函数的参数是 interface{} 类型,需要将其断言成 AST 语法树。
      aviodSelectAllColumnHandler := func(ctx context.Context, rule *driver.Rule, ast interface{}) (string, error) {
      node, ok := ast.(*parser.RawStmt)
      if !ok {
      return "", errors.New("ast is not *parser.RawStmt")
      }

      switch stmt := node.GetStmt().GetNode().(type) {
      case *parser.Node_SelectStmt:
      for _, target := range stmt.SelectStmt.GetTargetList() {
      column, ok := target.GetResTarget().GetVal().GetNode().(*parser.Node_ColumnRef)
      if !ok {
      continue
      }
      for _, filed := range column.ColumnRef.GetFields() {
      _, ok = filed.GetNode().(*parser.Node_AStar)
      if ok {
      return rule.Desc, nil
      }
      }
      }
      }
      return "", nil
      }

      // 依然是注册规则,与前面的例子不同的是,这时使用的是 `plugin.AddRuleWithSQLParser()` 。
      plugin.AddRuleWithSQLParser(aviodSelectAllColumn, aviodSelectAllColumnHandler)

      // 依然是启动插件,与前面的例子不同的是,需要将 SQL 解析的方法注册到插件中。
      plugin.Serve(adaptor.WithSQLParser(func(sql string) (ast interface{}, err error) {
      // parser.Parse 使用 PostgreSQL 的解析器,将 sql 解析成 AST 语法树。
      result, err := parser.Parse(sql)
      if err != nil {
      return nil, errors.Wrap(err, "parse sql error")
      }
      if len(result.Stmts) != 1 {
      return nil, fmt.Errorf("unexpected statement count: %d", len(result.Stmts))
      }

      // 将 SQL 的语法树返回。
      return result.Stmts[0], nil
      }))
      }

      2.自定义插件

      如果 driver 包中默认的 PostgreSQL、Oracle 与 SQL Server 插件不能满足你的需求的话,你也可以自定义一个数据库插件。方法就是实现一个接口:

      type Dialector interface {
      Dialect(dsn *driver.DSN) (driverName string, dsnDetail string)
      ShowDatabaseSQL() string
      String() string
      }

      在实现这个接口前,你需要先了解一下 Go 语言原生 Driver 的概念(以 MySQL Driver 为例)。

      下面介绍 Dialector 接口的含义:

      • Dialect:实现该方法,通过 DSN 提供的 Host Port User Password Database 信息和你选择的数据库 driver,构造出 driverName 与 dsnDetail。driverName 是你引入的数据库 driver 名称;dsnDetail 是连接数据库驱动的必要信息。这两个参数最终会通过 sql.Open() 来创建一个数据库连接。
      • ShowDatabaseSQL:实现该方法,可以自定义你数据源中默认展示的数据库列表,该数据库列表最终会展示在工单审核列表的数据库下拉框中,如下图: pluginworkflow
      • String:实现该方法,该方法的返回值会作为你实现的数据库审核插件名展示在 SQLE 的相关下拉框中,如下图: plugintype

      将你的实现作为 NewAdaptor 的参数传入即可,后续的步骤与前面规则相关的介绍一致。

      详细

      SQLE与插件的交互图

      sqleplugin

      插件接口说明

      1.注册接口说明

      该接口定义了该插件的名称和实现的规则,SQLE启动的时候会调用该接口获取插件名称和该插件支持的规则列表。

      type Registerer interface {
      Name() string
      Rules() []*model.Rule
      }
      • Name: 插件名,最终会展示在 SQLE 页面的数据源类型的下拉框中;
      • Rules: 插件支持的规则,在启动 SQLE 时,会调用插件获取这些规则,你将在规则模板内看到它们。

      2.审核接口说明

      该接口定义了SQLE进行审核时,由插件完成的和具体数据库底层交互的操作

      type Driver interface {
      Close(ctx context.Context)
      Ping(ctx context.Context) error
      Exec(ctx context.Context, query string) (driver.Result, error)
      Tx(ctx context.Context, queries ...string) ([]driver.Result, error)
      Schemas(ctx context.Context) ([]string, error)
      Parse(ctx context.Context, sqlText string) ([]Node, error)
      Audit(ctx context.Context, sql string) (*AuditResult, error)
      GenRollbackSQL(ctx context.Context, sql string) (string, string, error)
      }
      • Close: 关闭审核插件使用的相关资源,通常是完成一次审核后,关闭数据库连接等资源;
      • Ping: 检测数据库的连接性,通常在添加数据源时,为了检测填写的数据是否正确,会调用此方法;
      • Exec: 执行 SQL 上线时执行此方法;
      • Tx: 执行 SQL 上线时执行此方法,一般当SQL是DML时且需要事务执行时会批量执行SQL;
      • Schemas: 返回审核插件展示给用户的 Schema 列表;
      • Parse: 解析审核插件支持的 SQL 格式;
      • Audit: 根据指定的SQL语句生成审核建议;
      • GenRollbackSQL: 生成 SQL 的回滚语句。

      3.插件的配置信息说明

      type Config struct {
      DSN *DSN
      Rules []*Rule
      }
      • DSN: 数据源信息, 待审核的数据库;
      • Rules: 本次审核制定的规则列表。

      4.初始化函数说明

      插件的主进程入口,由插件的 main 函数调用即可实现插件

      func ServePlugin(r Registerer, newDriver func(cfg *Config) Driver)
      • r: 传入 Registerer 的接口实现, 由插件侧实现;
      • newDriver: 传入 Driver 的初始化函数,该函数的入参是 Config 是由 SQLE 向插件传递的配置信息,函数的出参是 Driver 的接口实现,由插件侧实现。
      - + \ No newline at end of file diff --git a/docs/v2/dev-manual/plugins/howtouse/index.html b/docs/v2/dev-manual/plugins/howtouse/index.html index f14afcb9..5f82fa61 100644 --- a/docs/v2/dev-manual/plugins/howtouse/index.html +++ b/docs/v2/dev-manual/plugins/howtouse/index.html @@ -4,7 +4,7 @@ 数据库审核插件使用 | SQLE 文档 - + @@ -13,7 +13,7 @@ pluginrules 验证能否添加插件类型的数据源:添加数据源,显示已经可以添加 PostgreSQL 类型的数据源。 plugintype

      - + \ No newline at end of file diff --git a/docs/v2/dev-manual/plugins/intro/index.html b/docs/v2/dev-manual/plugins/intro/index.html index 23a9c711..a9ff2f67 100644 --- a/docs/v2/dev-manual/plugins/intro/index.html +++ b/docs/v2/dev-manual/plugins/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v2

      功能说明

      SQLE 使用 go-plugin 来实现审核插件化。插件只需实现两个接口,即可实现与 SQLE 主进程通信(详情见审核插件开发)。

      将 SQLE 的数据库审核插件化主要有以下目的:

      • 将审核流程(业务)的代码和具体审核实现的代码进行分离,支持多数据源类型的审核
      • 审核插件在满足基本规范情况下,与 SQLE 独立开发

      部分插件项目地址

      - + \ No newline at end of file diff --git a/docs/v2/guide/index.html b/docs/v2/guide/index.html index 593ae789..2f225d14 100644 --- a/docs/v2/guide/index.html +++ b/docs/v2/guide/index.html @@ -4,13 +4,13 @@ 用户指南 | SQLE 文档 - +
      版本:v2

      用户指南

      产品概述

      SQLE 是由上海爱可生信息技术股份有限公司 开发并开源,支持SQL审核、索引优化、事前审核、事后审核、支持标准化上线流程、原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具

      - + \ No newline at end of file diff --git a/docs/v2/intro/index.html b/docs/v2/intro/index.html index dbbd1fa8..eae63ecc 100644 --- a/docs/v2/intro/index.html +++ b/docs/v2/intro/index.html @@ -4,13 +4,13 @@ 产品介绍 | SQLE 文档 - +
      版本:v2

      产品介绍

      SQLE 是由上海爱可生信息技术股份有限公司 开发并开源,支持SQL审核、索引优化、事前审核、事后审核、支持标准化上线流程、原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具

      产品特性

      SQL审核规范

      1. 审核规则自定义(700+条)
      2. 支持审核结果分级展示,支持生成下载审核报告
      3. 支持规则模版,灵活组合规则
      4. 审核白名单,跳过特例SQL
      5. 支持集成 IDE 自助审核

      多场景审核

      支持事前事后审核,覆盖开发、测试、上线、生产等环节

      标准化上线流程

      1. SQL审核流程按需自定义,满足企业内部不同流程管理要求
      2. 支持定时上线
      3. 支持设置运维时间
      4. 支持Online DDL

      多数据库类型支持

      1. 统一接口,可通过插件进行多数据库审核扩展
      2. 内置MySQL审核插件,官方支持常用数据库类型,包括PostgreSQL、Db2、SQL Server、Oracle、TiDB、OceanBase

      统一的SQL客户端入口

      提供审核管控的SQL客户端,杜绝执行不合规SQL

      丰富的集成能力

      1. 标准HTTP API接口可与客户内部流程系统对接
      2. 支持LDAP,Oauth2用户对接
      3. 支持邮件、微信企业号、webhook 告警对接

      应用场景

      上线前控制

      1. SQLE赋能开发,在代码开发阶段检查SQL质量
      2. SQLE集成专家经验,形成可复用的SQL规范标准规则,用户在平台提交工单后,平台将基于审核规则模板对提交的SQL语句进行初审,用以解决事前审核规范不标准难题

      上线后监督

      1. SQLE提供智能扫描审核功能,实现生产环境下的SQL审核优化
      2. SQLE支持多种类型的扫描任务,基于任务需求执行周期性的扫描任务,并生成扫描结果报告,及时告警
      - + \ No newline at end of file diff --git a/docs/v2/online-demo/index.html b/docs/v2/online-demo/index.html index 1159074a..ddbd8905 100644 --- a/docs/v2/online-demo/index.html +++ b/docs/v2/online-demo/index.html @@ -4,13 +4,13 @@ 在线体验 | SQLE 文档 - +
      版本:v2

      在线体验

      地址

      登录用户

      userpassword
      adminadmin

      测试 MySQL

      variablevalue
      host20.20.20.3
      port3306
      userroot
      passtest

      注意事项

      1. 该服务仅用于在线功能体验,请勿在生产环境使用;
      2. 该测试服务数据会定期清理。
      - + \ No newline at end of file diff --git a/docs/v2/quick-usage/index.html b/docs/v2/quick-usage/index.html index 3a6a7cb6..e956d6bf 100644 --- a/docs/v2/quick-usage/index.html +++ b/docs/v2/quick-usage/index.html @@ -4,7 +4,7 @@ 快速开始 | SQLE 文档 - + @@ -23,7 +23,7 @@ project-workflow-1

      DBA用户 B 上线

      使用 B 用户进入SQLE后,即可看到由A提交的上线工单,点击详情后可进行审批操作。

      提示

      SQLE 支持通过邮件,微信企业号等途径推送工单通知。也可以配置工单对接来在钉钉上进行工单审批

      project-workflow-1 project-workflow-1 project-workflow-1

      - + \ No newline at end of file diff --git a/docs/v2/support/commercial-support/index.html b/docs/v2/support/commercial-support/index.html index bbc42614..c6f6d6ba 100644 --- a/docs/v2/support/commercial-support/index.html +++ b/docs/v2/support/commercial-support/index.html @@ -4,13 +4,13 @@ 商业支持 | SQLE 文档 - +
      版本:v2

      商业支持

      如果想获得 SQLE 的商业支持, 您可以联系我们:

      • 全国支持: 400-820-6580
      • 华北地区: 86-13910506562, 汪先生
      • 华南地区: 86-18503063188, 曹先生
      • 华东地区: 86-18930110869, 梁先生
      • 西南地区: 86-13540040119, 洪先生
      - + \ No newline at end of file diff --git a/docs/v2/support/community-support/index.html b/docs/v2/support/community-support/index.html index 00c4f2a4..1a0bcc8b 100644 --- a/docs/v2/support/community-support/index.html +++ b/docs/v2/support/community-support/index.html @@ -4,13 +4,13 @@ 社区支持 | SQLE 文档 - +
      版本:v2

      社区支持

      微信技术交流群

      欢迎加入微信群进行交流,反馈使用中遇到的问题或者使用建议。

      进群方式:添加管理员微信 ActionOpenSource

      爱可生社区公众号

      关注爱可生社区公众号,获取最新SQLE动态包括新功能清单与产品规划。

      项目列表

      - + \ No newline at end of file diff --git a/docs/v2/support/compare/index.html b/docs/v2/support/compare/index.html index 853f09ab..9fe7672b 100644 --- a/docs/v2/support/compare/index.html +++ b/docs/v2/support/compare/index.html @@ -4,13 +4,13 @@ 功能对比 | SQLE 文档 - +
      版本:v2

      功能对比

      社区版及企业版功能对比

      模块功能企业版社区版
      平台基础能力资源管理
      权限管理
      用户对接:LDAP
      用户对接:Oauth2.0单点登录
      对接钉钉在线审批
      支持爱可生云树DMP数据源同步
      量化管理项目管理
      报表统计
      Dashboard
      支持的数据源类型MySQL
      Mycat
      TDSQL for InnoDB
      OceanBase For MySQL
      DB2
      TiDB
      PostgreSQL
      Oracle
      OceanBase For Oracle
      SQL Server
      达梦
      SQL审核同一工单多数据源
      多种SQL上传方式
      IDE审核插件
      自助审核
      SQL美化
      动态配置审核规则模板
      审核白名单
      基于规则的审核建议
      审核建议去重展示
      SQL下钻分析
      大表进行 Online DDL
      SQL上下文关联
      生成回滚语句
      审核评分
      审核报告下载
      SQL语句下载
      工单上线自定义审核流程
      多数据源批量上线
      立即上线
      定时上线
      线下执行,线上标记
      中止上线
      智能扫描MySQL|MyBatis 扫描
      MySQL|库表元数据
      MySQL|阿里云 RDS慢日志
      MySQL|阿里云 RDS审计日志
      MySQL|慢日志审核
      MySQL|会话SQL扫描
      MySQL|百度云RDS慢日志
      SQL文件扫描
      应用程序SQL抓取
      支持JAVA探针采集JAVA应用SQL
      Oracle TopSQL
      TiDB审计日志
      OceanBase for MySQL|MyBatis 扫描
      OceanBase for MySQL|Top SQL
      自定义(通过调用接口推送bash脚本、python程序中的SQL)
      告警通知邮件告警
      微信企业号告警
      飞书告警
      webhook告警
      SQL工作台集成CloudBeaver-提供在线SQL客户端
      安全管控
      OpenAPI提供完整的标准接口方案
      专家服务提供数据对接、SQL规范制定、SQL优化建议等7x24小时服务

      各数据源支持程度对比

      提示

      目前支持的数据源类型中,除MySQL为社区版,其他均为企业版。

      MySQL系

      MySQLMycatTDSQL for InnoDBOceanBase For MySQLTiDB
      功能SQL分析
      SQL上下文
      元数据检查
      SQL回滚
      上线中止
      扫描任务库表元数据
      慢日志
      Processlist
      TopSQL
      TiDB审计日志
      MyBatis
      阿里RDS MySQL慢日志
      阿里RDS MySQL审计日志
      百度云RDS MySQL慢日志扫描
      SQL文件扫描
      应用程序抓取
      自定义
      其他规则数量133122129117119

      非MySQL系

      OracleOceanBase For OracleDB2PostgreSQLSQL server达梦
      功能SQL分析
      SQL上下文
      元数据检查
      SQL回滚
      上线中止
      扫描任务库表元数据
      慢日志
      Processlist
      TopSQL
      TiDB审计日志
      MyBatis
      阿里RDS MySQL慢日志
      阿里RDS MySQL审计日志
      百度云RDS MySQL慢日志扫描
      SQL文件扫描
      应用程序抓取
      自定义
      其他规则数量8583602123
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/customrule/index.html b/docs/v2/user-manual/customrule/index.html index ccf4d6a2..6287f3d9 100644 --- a/docs/v2/user-manual/customrule/index.html +++ b/docs/v2/user-manual/customrule/index.html @@ -4,7 +4,7 @@ 自定义审核规则 | SQLE 文档 - + @@ -16,7 +16,7 @@ customrule-usetemplate 2.创建工单,新建表users123,从工单审核结果中可以看到自定义规则已生效; customrule-result

      提示

      目前仅支持在SQLE平台新建自定义规则,暂不支持导入导出规则模板时携带自定义规则。

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/intro/index.html b/docs/v2/user-manual/intro/index.html index 4ad67007..df354822 100644 --- a/docs/v2/user-manual/intro/index.html +++ b/docs/v2/user-manual/intro/index.html @@ -4,13 +4,13 @@ 用户手册 | SQLE 文档 - +
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/jetbrains/index.html b/docs/v2/user-manual/jetbrains/index.html index feec3734..43109bb4 100644 --- a/docs/v2/user-manual/jetbrains/index.html +++ b/docs/v2/user-manual/jetbrains/index.html @@ -4,7 +4,7 @@ IDEA审核插件 | SQLE 文档 - + @@ -15,7 +15,7 @@ ide-install-use

      2.用户也可以选中文件后,点击右键, 选中 [SQLE] - [Audit],将获得对文件中SQL的审核结果,支持一次性审核整个文件夹下的MyBatis文件; ide-install-use2

      审核结果

      插件会以弹窗的形式将审核结果进行展示 ide-install-result

      常见问题解答

      为什么插件配置项中的 [DB Type] 点击时偶尔会卡一下

      这是因为点击下拉框时下拉框会连接SQLE获取支持的实例类型, 这个过程可能会出现网络延迟

      SQLE在审核时使用的规则模板是什么

      SQLE会根据设置中指定的数据库类型, 选择对应类型的默认模板进行审核, 且只会使用默认模板中的静态审核规则

      我没有SQLE环境可以使用这个插件吗

      SQLE有演示环境, 如果只是想尝试一下这个插件可以连接演示环境

      插件支持哪些IDE

      Jetbrains家的所有软件和 [Android Studio] 都是支持的

      SQLE插件的配置存在什么地方

       {用户根目录}\AppData\Roaming\JetBrains\{idea版本号对应目录}\options\SQLESettings.xml
      变量说明
      用户根目录一般为 C:\Users 目录下和用户名同名的目录, 内部一般包含 '桌面', '下载' 等文件夹
      idea版本号对应目录一般为 软件名版本号 的格式, 如社区版idea 2022.1版本对应目录名为 IdealC2022.1
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/operation_records/index.html b/docs/v2/user-manual/operation_records/index.html index 86c55b2a..83fbf8cb 100644 --- a/docs/v2/user-manual/operation_records/index.html +++ b/docs/v2/user-manual/operation_records/index.html @@ -4,14 +4,14 @@ 操作记录 | SQLE 文档 - +
      版本:v2

      操作记录

      使用场景

      SQLE平台提供操作记录,当审核/上线产生问题时,用户需要从操作行为判定问题责任方。此时,用户可以使用平台的操作记录功能,查看平台行为的操作人、操作时间。

      入口

      用户点击平台右上方操作记录icon后,跳转至操作记录页面,查看权限范围内可见的操作记录。

      • 用户可对操作记录进行筛选,查看符合条件的操作记录;
      • 用户也可在当前筛选条件下,导出平台操作记录,用以线下审计; operation

      更多操作

      SQLE会定时回收已产生的操作记录,目前该过期时间默认为90天。如果用户需要自定义过期时间,可以在全局配置中修改。

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/analysis/index.html b/docs/v2/user-manual/project/analysis/index.html index e6168701..045e78b7 100644 --- a/docs/v2/user-manual/project/analysis/index.html +++ b/docs/v2/user-manual/project/analysis/index.html @@ -4,13 +4,13 @@ SQL分析 | SQLE 文档 - +
      版本:v2

      SQL分析

      SQL分析是什么

      当用户需要了解执行SQL的对象情况时,可以点击SQL后的分析操作,进入SQL分析页面

      使用场景

      操作步骤

      使用限制

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/SQLfile_audit/index.html b/docs/v2/user-manual/project/audit_task/SQLfile_audit/index.html index 5a2d7c0c..a6c12793 100644 --- a/docs/v2/user-manual/project/audit_task/SQLfile_audit/index.html +++ b/docs/v2/user-manual/project/audit_task/SQLfile_audit/index.html @@ -4,7 +4,7 @@ SQL文件扫描 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      SQL文件扫描

      本节介绍SQL文件扫描的应用场景及配置方法。

      备注

      平台已支持的所有数据源类型均支持SQL文件扫描

      使用场景

      当用户需要在批量执行SQL前扫描SQL,发现潜在的安全漏洞、提高数据库性能及数据库开发质量时,可以使用SQL文件进行批量扫描。

      使用方式

      前置条件

      在后端环境中准备SQL文件

      新建智能扫描任务

      进入智能扫描任务列表,点击新建,选择SQL文件扫描任务类型。

      执行Scannerd文件

      提示

      注意:使用rpm或docker部署的情况下,scannerd通常在SQLE的bin目录下。

      示例如下:

      ./scannerd sqlfile -H127.0.0.1 -N"SQLfile" -P"10000" -J"default" -D/root/sqle/sqle/cmd/scannerd/scanners/mybatis/testdata/ -A"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJ0ZXN0MDcyNCIsImV4cCI6MTcyMTcyODU0NywibmFtZSI6ImFkbWluIn0.CojdTvBkr-iN_26tWI-Kr6mMnJt1NIDr-Y3v7m9ySuM"

      参数解释如下:

      • -J, --project:说明扫描任务所在项目,例如“default”;
      • -H, --host string:指定SQLE主机所在地址;
      • -P, --port string:指定SQLE所在端口;
      • -N, --name string:指定扫描任务名称,scannerd会将获得的SQL传至指定的任务池中审核;
      • -D, --dir string:指定要扫描的SQL文件路径;
      • -A, --token string:输入扫描任务凭证token;
      • -K, --skip-sql-file-audit:只上传sql,不审核sql;
      • -S, --skip-error-sql-file; 跳过无法解析的sql文件;

      获得执行结果: sqlfile_audit

      平台查看执行结果

      • 用户进入扫描任务详情,可以查看SQLw文件中已采集到的SQL信息;
      • 用户点击立即审核,可以在扫描任务报告中获取当前SQL的审核结果; sqlfile_result
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/baiduyunrds/index.html b/docs/v2/user-manual/project/audit_task/baiduyunrds/index.html index 6004b6d1..08a35e44 100644 --- a/docs/v2/user-manual/project/audit_task/baiduyunrds/index.html +++ b/docs/v2/user-manual/project/audit_task/baiduyunrds/index.html @@ -4,14 +4,14 @@ 百度云RDS慢日志扫描 | SQLE 文档 - +
      版本:v2

      百度云RDS慢日志扫描

      本节介绍如何在SQLE平台监管百度云RDS实例上产生的慢SQL。

      支持的数据源类型

      • MySQL

      使用场景

      如果用户使用百度云RDS实例,并且想要监管实例上产生的慢SQL,可以通过创建一个百度云RDS慢日志扫描任务来实现。该任务将会定期扫描百度云RDS实例上的慢日志,并将扫描结果发送到SQLE中进行分析。

      前置操作

      • 用户需创建双机高可用版本的百度云RDS实例;
      • 对该实例开通慢日志;

      baiduyunrds

      操作步骤

      新建智能扫描任务

      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择百度云RDS MySQL慢日志
      • 实例ID:填写百度云RDS实例的ID。
      • Access Key:为账号安全认证中的Access Key,用于登录百度云RDS,需要与Secret Key一同使用。
      • Access Secret Key:账号安全认证中Access Key对应的Secret Key。
      • 启动任务时拉取慢日志时间范围(单位:小时,最大7天):扫描任务读取慢日志的时间范围,单位为小时,最大范围为7天。
      • 审核过去时间段内抓取的SQL(分钟): 审核该时间段内抓取到的慢SQL。
      • RDS Open API地址:RDS的地址前缀,用以调用RDS服务,需根据实例所在区域进行填写。如当前实例在华东-上海范围,则应填写rds.fsh.baidubce.com baiduyunrdsurl

      点击提交,完成扫描任务创建。

      执行结果

      • 用户进入扫描任务详情,可以查看扫描任务抓取到的慢SQL。
      • 点击立即审核,可查看对慢SQL的审核结果。

      baiduyunrdsaudit

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/intro/index.html b/docs/v2/user-manual/project/audit_task/intro/index.html index 64c132ec..3e17b454 100644 --- a/docs/v2/user-manual/project/audit_task/intro/index.html +++ b/docs/v2/user-manual/project/audit_task/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v2

      功能介绍

      背景

      在审核工单中我们介绍了如何通过 SQLE 进行 SQL 审核并上线的流程。审核工单管理,主要解决 SQL 上线的规范化流程化的问题,它能够帮助 DBA 自动化处理整个 SQL 上线过程中一些重复繁琐的工作。

      不过审核工单管理也有它的局限性。

      • 第一,通常工单中的审核是一次性操作。上线后,通常还会有业务 SQL访问数据库。这时可能会遇到一些执行效率较低的业务 SQL 造成数据库的性能问题,因而这类业务型SQL同样需要审核。
      • 第二,临近发版,如果这时审核出 SQL 存在一些问题,是否修复这些问题,可能会受到很多因素的影响(如 SQL 问题的影响面大小,项目发版的紧急程度等),因而需要对即将上线的SQL做全量扫描。

      因而,需要引入扫描任务,进行周期性的SQL审核,用以补充工单审核覆盖不到的场景。

      SQLE扫描任务支持的采集模式

      1.SQLE 自动抓取

      • 功能说明
        • 使用SQLE自动抓取,将由SQLE获取指定的SQL文件,传输至指定审核池后,由SQLE进行审核并展示审核结果。
      • 支持的任务类型
        • 库表元数据
        • TopSQL
        • processlist列表

      2.Scanner 抓取

      • 功能说明
        • 使用Scanner抓取,可利用scanner插件获取指定的SQL文件,传输至指定审核池后,由SQLE进行审核并展示审核结果。
      • 支持的任务类型
        • 慢日志
        • Mybatis扫描

      3.OpenAPI 推送

      • 功能说明
        • 使用应用程序SQL抓取,可利用api接口动态获取指定应用程序中的SQL,传输至指定审核池后,由SQLE进行审核并展示审核结果。
      • 支持的任务类型
        • openapi推送
        • 自定义
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/java_agent_audit/index.html b/docs/v2/user-manual/project/audit_task/java_agent_audit/index.html index 5d6ee255..e7907429 100644 --- a/docs/v2/user-manual/project/audit_task/java_agent_audit/index.html +++ b/docs/v2/user-manual/project/audit_task/java_agent_audit/index.html @@ -4,13 +4,13 @@ Java探针版应用程序SQL抓取【企业版】 | SQLE 文档 - +
      版本:v2

      Java探针版应用程序SQL抓取【企业版】

      本节介绍如何利用SQLE平台抓取java应用中的SQL,选取的例子是一个开源的问卷调查java应用,架构简单,上手相对容易。

      支持的数据源类型

      • MySQL
      • Oracle
      • DB2
      • OceanBase for MySQL
      • PostgreSQL
      • TiDB
      • SQL Server

      前置准备

      环境准备

      准备一台 linux 服务器,ubuntu即可,架构版本暂无要求

      1. 安装JAVA
      sudo apt install default-jdk
      1. 部署并启动MySQL服务

      部署java应用

      • 准备Java应用
      • 准备Java应用SQL初始化文件
      • 准备SQLE定制的JAVA agent JAR包
        提示

        JAVA agent JAR包为企业版功能,如有使用需求,请联系SQLE商业支持

      Java应用前置步骤

      1、初始化Java应用

      mysql -h127.0.0.1 -P3306 -uroot -p -e "CREATE DATABASE IF NOT EXISTS jw default character set utf8mb4 collate utf8mb4_unicode_ci"
      mysql -h127.0.0.1 -P3306 -uroot -D jw -p < init-mysql.sql

      2、将Java应用Jar包,定制jdbc上传服务器指定目录下,可以放在 /opt/surveyking 目录下,示例:

      root@ubuntu:/opt/surveyking# pwd
      /opt/surveyking
      root@ubuntu:/opt/surveyking# ls -l
      total 55652
      -rw-r--r-- 1 root root 2932784 Feb 24 08:38 sql-agent-1.0-SNAPSHOT.jar
      -rw-r--r-- 1 root root 54508748 Feb 24 08:37 surveyking-v0.3.0-beta.4.jar

      使用方式

      创建扫描任务

      进入智能扫描任务列表,点击新建,扫描任务类型选择应用程序SQL抓取。

      启动Java应用

      提示

      以下命令需要在本地编辑替换完参数后,一次性拷贝到环境内执行

      SQLE_COLLECT_ENABLE=true \
      SQLE_BASE_URL=http://10.186.62.16:10000 \
      SQLE_TASK_NAME=jw_app \
      SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI \
      SQLE_EXCLUDE_JAVA_FILE=UserServiceImpl.java \
      SQLE_LOG_FILE=/tmp/collect.log \
      java -javaagent:sql-agent-1.0-SNAPSHOT.jar \
      -jar surveyking-v0.3.0-beta.4.sqle.jar \
      --server.port=1991 \
      --spring.datasource.url=jdbc:mysql://10.186.62.18:3306/jw \
      --spring.datasource.username=root \
      --spring.datasource.password=mysqlpass \
      & >>/opt/surveyking/std.log

      参数说明(环境变量)

      • SQLE_COLLECT_ENABLE=true :是否开启SQL采集,默认不推送到SQLE只输出本地日志
      • SQLE_BASE_URL:SQLE 服务地址,格式“http://ip:port”
      • SQLE_TASK_NAME:SQLE 审核任务的名称
      • SQLE_TASK_TOKEN:审核任务的token,从SQLE页面复制
      • SQLE_PROJECT_NAME:SQLE JDBC配置:项目名
      • SQLE_LOG_FILE:指定SQLE 采集日志文件,不指定则代表输出到标准输出
      • SQLE_EXCLUDE_JAVA_FILE:忽略部分JAVA文件不插桩,主要是兼容性问题,当修改字节码失败时为了保障能运行抓取。文件按逗号分隔

      参数说明(java 参数)

      • server.port:web服务启用端口
      • spring.datasource.url:jdbc url
      • spring.datasource.username:jdbc user name
      • spring.datasource.password:jdbc password

      访问Java应用

      • 访问地址:如果配置的网页端口是1991则通过网页访问http://xx.xx.xx.xx:1991
      • 用户名:admin
      • 密码:123456
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/java_application_audit/index.html b/docs/v2/user-manual/project/audit_task/java_application_audit/index.html index dc77d94a..b8e51c6e 100644 --- a/docs/v2/user-manual/project/audit_task/java_application_audit/index.html +++ b/docs/v2/user-manual/project/audit_task/java_application_audit/index.html @@ -4,13 +4,13 @@ 应用程序SQL抓取【企业版】 | SQLE 文档 - +
      版本:v2

      应用程序SQL抓取【企业版】

      本节介绍如何利用SQLE平台抓取JAVA应用中的SQL,选取的例子是一个开源的问卷调查java应用,架构简单,上手相对容易。

      支持的数据源类型

      • MySQL
      • Oracle
      • DB2
      • OceanBase for MySQL
      • PostgreSQL
      • TiDB
      • SQL Server

      前置准备

      环境准备

      准备一台 linux 服务器,ubuntu即可,架构版本暂无要求

      1. 安装JAVA
      sudo apt install default-jdk
      1. 部署并启动MySQL服务

      部署java应用

      • 准备Java应用
      • 准备Java应用SQL初始化文件
      • 准备SQLE定制的JDBC jar 包
        提示

        JDBC jar包为企业版功能,如有使用需求,请联系SQLE商业支持

      Java应用前置步骤

      1、初始化Java应用

      mysql -h127.0.0.1 -P3306 -uroot -p -e "CREATE DATABASE IF NOT EXISTS jw default character set utf8mb4 collate utf8mb4_unicode_ci"
      mysql -h127.0.0.1 -P3306 -uroot -D jw -p < init-mysql.sql

      2、将Java应用Jar包,定制jdbc上传服务器指定目录下,可以放在 /opt/surveyking 目录下,示例:

      root@ubuntu:/opt/surveyking# pwd
      /opt/surveyking
      root@ubuntu:/opt/surveyking# ls -l
      total 55652
      -rw-r--r-- 1 root root 2477925 Feb 24 08:38 mysql-connector-java-8.0.28-SQLE.jar
      -rw-r--r-- 1 root root 54508748 Feb 24 08:37 surveyking-v0.3.0-beta.4.jar

      3、替换Java应用Jar包的MySQL jdbc jar 包

      cd /opt/surveyking/
      mkdir jar
      cp surveyking-v0.3.0-beta.4.jar jar/
      cd jar/
      jar xvf surveyking-v0.3.0-beta.4.jar # 解压jar包,如果执行失败也可使用 unzip surveyking-v0.3.0-beta.4.jar 代替
      cp ../mysql-connector-java-8.0.28-SQLE.jar BOOT-INF/lib/mysql-connector-java-8.0.26.jar # 替换jdbc
      rm -rf surveyking-v0.3.0-beta.4.jar
      jar cvfM0 surveyking-v0.3.0-beta.4.sqle.jar * # 打包
      mv surveyking-v0.3.0-beta.4.sqle.jar ../
      cd ..
      rm -rf jar/

      使用方式

      创建扫描任务

      进入智能扫描任务列表,点击新建,扫描任务类型选择应用程序SQL抓取。

      启动Java应用

      提示

      以下命令需要在本地编辑替换完参数后,一次性拷贝到环境内执行

      cd /opt/surveyking/
      SQLE_COLLECT_ENABLE=true SQLE_HOST=10.186.62.18:10000 SQLE_TASK_NAME=jw_app SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI \
      java -jar surveyking-v0.3.0-beta.4.sqle.jar \
      --server.port=1991 \
      --spring.datasource.url=jdbc:mysql://10.186.62.18:3306/jw \
      --spring.datasource.username=root \
      --spring.datasource.password=mysqlpass \
      & >>/opt/surveyking/std.log

      参数说明(环境变量):

      • SQLE_COLLECT_ENABLE:是否开启SQL采集
      • SQLE_HOST=10.186.62.18:10000:SQLE 服务地址 ip:port
      • SQLE_TASK_NAME=jw_app :审核任务的名称
      • SQLE_TASK_TOKEN:审核任务的token,从SQLE页面复制
      • SQLE_PROJECT_NAME:SQLE JDBC配置:项目名

      参数说明(java 参数)

      • server.port:web服务启用端口
      • spring.datasource.url:jdbc url
      • spring.datasource.username:jdbc user name
      • spring.datasource.password:jdbc password

      访问Java应用

      • 访问地址:如果配置的网页端口是1991则通过网页访问http://xx.xx.xx.xx:1991
      • 用户名:admin
      • 密码:123456
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/metadata_audit/index.html b/docs/v2/user-manual/project/audit_task/metadata_audit/index.html index 76fd4afb..81114fb4 100644 --- a/docs/v2/user-manual/project/audit_task/metadata_audit/index.html +++ b/docs/v2/user-manual/project/audit_task/metadata_audit/index.html @@ -4,7 +4,7 @@ 库表元数据 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      库表元数据

      本节介绍库表元数据扫描的应用场景、以及如何创建库表元数据的扫描任务。

      支持的数据源类型

      • MySQL
      • DB2

      使用场景:

      1. 需要检查已上线业务对应数据源的建库建表语句是否符合 统一的SQL质量规范。
      2. 需要定期检查上线业务的库表变更是否符合 统一的SQL质量规范。

      前置条件

      已添加对应数据源。

      操作步骤

      新建智能扫描任务

      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择库表元数据;
      • 采集周期(分钟):将采集设定时间内产生的SQL;
      • 是否采集视图信息:默认不采集视图信息,若开启,则将一并扫描数据源上的视图SQL;
      • 审核规则模板:如果未指定此项会优先使用数据源绑定的模板;
      • 任务审核周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      执行结果

      可在扫描任务列表页面查看新建的库表元数据扫描任务。 list

      点击扫描任务,可查看该扫描任务采集的SQL,及生成的扫描任务报告。 result

      后续步骤

      • 查看审核记录,查看不同时间点的审核结果,包括审核的SQL语句、审核结果。
      • 分析语句,用户可对SQL语句进行分析操作,获取优化建议。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/mybatis/index.html b/docs/v2/user-manual/project/audit_task/mybatis/index.html index 5f1f7746..b450eadb 100644 --- a/docs/v2/user-manual/project/audit_task/mybatis/index.html +++ b/docs/v2/user-manual/project/audit_task/mybatis/index.html @@ -4,7 +4,7 @@ MyBatis扫描 | SQLE 文档 - + @@ -22,7 +22,7 @@ coding-editinfo

      编辑后点击保存,完成构建计划。

      触发构建,获得审核结果

      在构建计划中点击立即构建按钮; coding-do

      可以在在构建过程中查看构建结果,也可以在SQLE平台的扫描任务中查看审核结果。 coding-result

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/processlist_audit/index.html b/docs/v2/user-manual/project/audit_task/processlist_audit/index.html index fbcca08f..658e72aa 100644 --- a/docs/v2/user-manual/project/audit_task/processlist_audit/index.html +++ b/docs/v2/user-manual/project/audit_task/processlist_audit/index.html @@ -4,14 +4,14 @@ 会话SQL扫描 | SQLE 文档 - +
      版本:v2

      会话SQL扫描

      本节介绍如何对MySQL进行中的会话SQL进行监督及审核。

      支持的数据源类型

      • MySQL

      使用场景

      除了上线前和上线后的审核,在SQL语句执行过程中,用户往往也需要对其进行监控和审核,用以及时识别出潜在的问题SQL。然而,当前的审核场景往往无法覆盖事中这一环节的审核。为此,SQLE新增了processlist列表审核扫描任务,实现了事前、事中、事后的全覆盖,使得用户可以在SQL语句的整个生命周期内进行审核和管理,从而减少审核时间和工作量。

      操作步骤

      新建智能扫描任务

      • 任务名称:输入审核任务名称,必须以字母开头;
      • 数据源名称:指定扫描任务实施的数据源;
      • 数据库:填写需要审核的目标库,若不填则仅进行静态分析不会连库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择需要执行的审核任务类型,选择processlist列表扫描任务;
      • 采集周期(秒):表示SQLE对 MySQL processlist表的采集频率,SQLE将按照该时间间隔进行SQL采集。如果该值过低,会影响实例性能;
      • SQL最小执行时间(秒):表示SQLE对 MySQL processlist 的采集过滤条件,只有大于等于该时间的SQL才会被采集记录。如果为0,则表示不进行过滤;
      • 审核过去时间段内抓取的SQL(分钟):processlist列表扫描任务是增量审核,不在该时间段内执行的SQL将不会被再次采集;
      • 审核规则模板:如果未指定此项会优先使用数据源绑定的模板;
      • 任务审核周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      执行结果

      • 用户进入扫描任务详情,可以查看已采集到的processlist列表中的SQL信息;
      • 用户点击立即审核,可以在扫描任务报告中获取processlist列表中当前采集周期内产生的SQL及审核结果; processlist-audit
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/slowlog_audit/index.html b/docs/v2/user-manual/project/audit_task/slowlog_audit/index.html index 89a60161..29b5b4f4 100644 --- a/docs/v2/user-manual/project/audit_task/slowlog_audit/index.html +++ b/docs/v2/user-manual/project/audit_task/slowlog_audit/index.html @@ -4,7 +4,7 @@ 慢日志 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      慢日志

      本节介绍慢日志扫描的应用场景、以及如何创建慢日志扫描任务。

      当前SQLE支持两种慢日志采集方式,一种由scanner采集慢日志文件中的慢查询,一种由SQLE直接采集慢查表中的慢查询,用户可在编辑页面选取需要的采集方式,您可选择需要的方式采集产生的慢查询。

      支持的数据源类型

      • MySQL

      使用场景

      需要检查已上线业务是否有超过指定时长的慢SQL产生。

      采集方式

      方式一:采集慢日志文件

      前置条件

      • 已添加对应数据源;
      • 修改配置文件my.cnf,在文件中设置以下内容:
      my.cnf
      slow_query_log = ON //开启慢日志
      slow_query_log_file = /var/lib/mysql/tmp_slow.log //设置慢日志文件路径
      long_query_time = 1 //设置慢查询时间阈值,当前示例时间为1s,可根据实际业务变更

      步骤一:新建智能扫描任务

      新建智能扫描任务,填写以下字段信息:

      • 任务名称:指定扫描任务的名称,当前仅支持英文名称;
      • 数据源名称:选择扫描任务对应的数据源;
      • 数据库:选择扫描任务使用的数据库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择慢日志;
      • 审核过去时间段内抓取的SQL(分钟):扫描的时间覆盖范围;
      • 采集来源:填写0,代表采集mysql-slow.log 文件;
      • 审核规则模板:选择对应的审核规则模板;
      • 审核任务周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      点击提交,完成慢日志扫描任务创建。

      步骤二:执行scannerd文件

      提示

      注意:scannerd文件通常在SQLE的bin目录下,需将scannerd文件放在数据源环境下执行。

      示例如下:

      ./scannerd slowquery -H "127.0.0.1" -P "10000" -N "slowlog_of_GRADE1" -J "default" -A eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJzbG93bG9nX29mX0dSQURFMSIsImV4cCI6MTcwODA3MjMzNSwibmFtZSI6ImFkbWluIn0.ArU5HpU7aSSVrRutxSAwRFYahSx0_4RNzD4KB6LTfpM --log-file /var/lib/mysql/mysql-for-test-slow.log

      参数解释如下:

      • -J, --project:说明扫描任务所在项目,例“default”;
      • -H, --host string:指定SQLE主机所在地址;
      • -N, --name string:指定扫描任务名称,scannerd会将获得的慢SQL传至指定的任务池中审核;
      • -P, --port string:指定SQLE所在端口;
      • -A, --token string:输入扫描任务凭证token;
      • --log-file:指定慢日志文件,scannerd从该文件中获取慢SQL;

      方式二:采集慢日志表

      前置条件

      • 已添加数据源
      • 在MySQL中设置以下内容:
      set global long_query_time=1; // 需根据实际业务调整慢查询时间阈值,此处仅供参考
      set global slow_query_log=1; // 开启慢日志查询
      SET GLOBAL log_output='FILE,TABLE';// 开启 MySQL 的慢日志收集功能,并且确认将慢日志内容写入文件 mysql-slow.log 和表 mysql.slow_log
      提示

      为了优化查询性能,使用这一采集方式时,需要用户手动运行下面的SQL,将mysql.slow_log表的引擎改为MyISAM,并添加索引。

      ALTER TABLE mysql.slow_log ENGINE = MyISAM;
      ALTER TABLE mysql.slow_log ADD INDEX idx_start_time (start_time);

      新建智能扫描任务

      新建智能扫描任务,填写以下字段信息:

      • 任务名称:指定扫描任务的名称,当前仅支持英文名称;
      • 数据源名称:选择扫描任务对应的数据源核;
      • 数据库:选择扫描任务使用的数据库;
      • 数据库类型:根据选取的数据源呈现;
      • 任务类型:选择慢日志扫描任务;
      • 采集周期(分钟):SQLE进行采集的周期,若设置为10分钟,则SQLE将每隔10分钟去采集慢日志表中生成的慢查询;
      • 审核过去时间段内抓取的SQL(分钟):扫描的时间覆盖范围;
      • 采集来源:填写1,代表采集mysql.slow_log 表;
      • 审核规则模板:选择对应的审核规则模板;
      • 审核任务周期:配置的是SQLE对审核任务进行自动审核的执行时间;

      点击提交,完成慢日志扫描任务创建。

      执行结果

      在扫描任务详情查看扫描的SQL语句及审核报告。 result result2

      后续步骤

      分析扫描任务报告中出现的慢SQL。

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/audit_task/topsql/index.html b/docs/v2/user-manual/project/audit_task/topsql/index.html index add3408a..493ceeba 100644 --- a/docs/v2/user-manual/project/audit_task/topsql/index.html +++ b/docs/v2/user-manual/project/audit_task/topsql/index.html @@ -4,13 +4,13 @@ TopSQL | SQLE 文档 - +
      版本:v2

      TopSQL

      本节介绍如何

      支持的数据源类型

      • DB2
      • Oracle
      • OceanBase for MySQL
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/group_member/index.html b/docs/v2/user-manual/project/group_member/index.html index 72371385..8671f0dd 100644 --- a/docs/v2/user-manual/project/group_member/index.html +++ b/docs/v2/user-manual/project/group_member/index.html @@ -4,7 +4,7 @@ 成员/成员组管理 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      成员/成员组管理

      本文介绍项目内添加成员、成员组的步骤,以及其他管理操作。

      成员/成员组由项目管理员添加,只有被添加为成员后,才可查看、操作项目内资源。

      使用场景

      • 一个业务以项目的形式管理SQL工单、扫描任务等资源,若用户需要在指定项目中执行SQL工单、扫描任务等相关操作,则需要成为该项目的成员,并具有相应角色操作权限。
      • 如果用户具备相同的操作权限或者访问相同的资源,可以通过将他们加入同一个成员组来配置他们对项目资源的操作权限。

      前置条件

      • 项目管理员进入指定的项目;
      • 平台管理员已完成用户/用户组的添加;
      • 平台管理员已完成角色的添加;

      添加成员

      步骤

      项目管理员点击左侧导航栏成员标签,在成员列表点击添加成员按钮;

      字段说明

      • 用户名:选择平台已添加的用户;
      • 选择是否为项目管理员:项目管理员将负责项目管理行为,例如添加数据源和成员等;
        • 若将当前成员设为项目管理员,则该成员将对项目内所有数据源拥有所有操作权限,无需额外配置权限;
        • 若未设置,则当前成员在项目内的操作权限将根据下一步添加角色与数据源的绑定获得;
      • 添加角色与数据源的绑定;
        • 添加数据源:指定当前成员能操作的数据源;
        • 添加角色:指定当前成员在该数据源上的角色权限,平台默认提供DEV、DBA两种角色,负责SQL语句的提交、审核及上线操作;更多角色设置请参见角色管理
      • 删除角色与数据源的绑定;

      执行结果

      项目管理员可查看当前项目中添加的成员列表。 成员列表

      后续步骤

      配置项目审核流程模板:一个项目有且仅有一个审核流程,应用于该项目下的所有工单。需要配置审核流程在审核、上线环节的操作人,请参见审核流程模板

      更多操作

      • 编辑成员:添加成员后,项目管理员可修改成员可用的数据源及对应角色权限;
        • 限制:编辑之前产生的工单不受影响,编辑之后工单创建时将应用最新的数据源及权限对应关系;
      • 删除成员:项目管理员可删除项目中的成员;
        • 限制:若成员已不在项目内,则无权操作工单;

      添加成员组

      步骤

      项目管理员点击左侧菜单栏成员标签,在成员组列表点击添加成员组按钮;

      字段说明

      • 用户组名:选择平台已添加的用户组;
      • 添加角色与数据源的绑定:
        • 添加数据源:指定当前成员组能操作的数据源;
        • 添加角色:指定当前成员组在该数据源上的角色权限,平台默认提供DEV、DBA两种角色,负责SQL语句的提交、审核及上线操作;更多角色设置请参见角色管理
      • 删除角色与数据源的绑定:删除为当前成员组设定的数据源及角色信息;

      执行结果

      项目管理员可查看当前项目中添加的成员组列表。 成员组列表

      后续步骤

      • 配置项目审核流程模板:一个项目有且仅有一个审核流程,应用于该项目下的所有工单。需要配置审核流程在审核、上线环节的操作人,请参见审核流程模板

      更多操作

      • 编辑成员组:添加成员组后,项目管理员可修改成员组可用的数据源及对应角色权限;
        • 限制:编辑之前创建的工单不受影响,之后创建的工单将依据新的数据源及权限;
      • 删除成员组:项目管理员可删除项目中的成员组;
        • 限制:若成员组内成员已不在项目内,则无权操作工单;
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/instance-manager/index.html b/docs/v2/user-manual/project/instance-manager/index.html index 0d8ce376..ef47a53a 100644 --- a/docs/v2/user-manual/project/instance-manager/index.html +++ b/docs/v2/user-manual/project/instance-manager/index.html @@ -4,14 +4,14 @@ 数据源管理 | SQLE 文档 - +
      版本:v2

      数据源管理

      本文介绍如何在项目中进行数据源管理,包括数据源的增加、删除、编辑操作。 数据源是工单和扫描任务的实施对象,用户在平台创建的工单和扫描任务都将针对指定的数据源执行。因而项目创建后需要首先配置项目内可用的数据源。

      提示

      数据源是SQLE连库审核的对象,任何审核的场景下若可以不选数据源则代表将进行脱库审核。

      使用场景

      实际生产中,如果需要针对某个数据源下发SQL或创建扫描任务,需要首先将数据源添加至SQLE平台,测试连通成功后才可创建工单、创建扫描任务。

      添加数据源

      前置操作

      项目管理员进入指定的项目

      操作步骤

      点击左侧导航栏的「数据源」菜单,进入数据源管理页面后,点击「添加数据源」,填写数据源相关信息

      • 数据源名称:命名当前新建的数据源,如:actionsky-test;
      • 数据源描述:用户可对数据源补充更多描述,便于用户通过名称+描述快速更精准地区分数据源;
      • 数据库类型:选择数据库实例对应的数据库类型,当前支持的数据库类型可参考支持的数据库及版本
      • 数据库地址:输入数据库实例的连接地址,支持IP地址、域名两种方式;
      • 数据库端口:添加数据源时根据数据源类型自动切换默认端口;
      • 连接用户:输入数据库实例的连接用户,SQLE在执行SQL审核以及SQL上线时,会通过该连接用户访问数据库实例及下发SQL;
      • 密码:输入数据库实例的连接用户密码;
      • 审核规则模板:审核规则模板将用于创建工单时的审核、扫描任务的审核、SQL查询的审核;
      • 运维时间:如果配置了运维时间, 工单将只能在运维时间内上线(立即上线和定时上线都受此影响), 支持配置多个运维时间, 默认无运维时间,即不限制上线时间;
      • SQL查询是否需要审核:默认不审核;如用户选择开启该功能,则用户在SQL工作台中提交的SQL语句,将匹配审核规则模板进行SQL审核操作;
      • 运行查询的最高审核等级:只有开启 SQL查询的审核功能才生效;支持四种审核等级:normal、notice、warn、error,如设置运行查询的最高审核等级为warn,则触发了warn等级规则以上的SQL语句将报错,并不予执行;未触发warn等级规则以上的SQL语句将被执行;

      执行结果

      数据源添加成功后,可在数据源列表查看新增的数据源信息。

      可根据数据源名称、数据库地址、数据库类型、使用的审核规则模板筛选项进行筛选。

      数据源列表

      后续步骤

      • 创建审核规则:添加数据源后,可针对指定数据源创建适用的审核规则,请参见审核规则模板管理
      • 添加成员/成员组:添加数据源后,需要引入成员/成员组对数据源进行操作,请参见成员/成员组管理

      更多管理功能

      • 编辑数据源:点击数据源列表页面对应数据源条目后的【编辑】按钮,可以修改指定数据源。
        • 限制:数据源名称及数据库类型不支持修改,其他信息均可修改
      • 删除数据源:点击数据源列表页面对应数据源条目后的【删除】按钮,可以删除指定数据源。
        • 限制:若数据源上还有相应工单未完成,则该数据源暂时不可删除
      • 连通性测试:点击【更多】按钮,选择连通性测试,测试是否可以用当前的数据源地址及用户密码成功连入数据源。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/intro/index.html b/docs/v2/user-manual/project/intro/index.html index f53ea803..42872de3 100644 --- a/docs/v2/user-manual/project/intro/index.html +++ b/docs/v2/user-manual/project/intro/index.html @@ -4,7 +4,7 @@ 功能介绍 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      功能介绍

      自2.22.11.0版本起,平台引入项目管理概念,与SQL审核相关的资源均以项目的形式进行资源隔离。创建工单前,需要由项目管理员设置好项目内部必要的资源环境,包括项目使用的数据源、用户、流程模板、规则模板、白名单信息等,随后,项目成员才可在项目内提交工单并审核上线,或设置智能扫描任务。 本文介绍项目管理的使用场景以及如何以项目形式管理SQL工单、扫描任务等项目资源。在进行项目管理之前,需要由管理员进行创建项目,具体操作请参见创建项目

      说明

      提示

      社区版仅支持一个默认项目,项目管理员是admin,企业版可创建多个项目,有创建项目权限的用户可以创建项目,创建项目后,可指定其他项目成员为项目管理员。

      使用场景

      企业内容存在多个业务,且各个业务之间的数据源、工单、扫描任务可能由不同团队在负责,希望不同团队之间的数据相互隔离。此时,可在平台内以不同项目的行为去管理多个业务资源(数据源、工单、扫描任务等)。

      项目内资源调度

      资源调度 项目内的主要业务为工单审核及智能扫描任务审核。围绕工单及智能扫描任务,涉及到数据源管理、审核规则模板管理、白名单管理、审核流程管理、成员管理。

      以工单审核为例

      工单是为了满足下发SQL时审核、上线环节的流程化需求。

      工单的完整生命周期包括创建、审核、上线,其中涉及数据源、审核流程、审核规则模板、白名单的操作。

      备注
      • 审核流程:一个项目可绑定一个审核流程,该审核流程将应用于该项目下的所有工单审核。
      • 数据源:工单作用于具体的数据源,创建工单时,需要指定一个或多个数据源。
      • 审核规则模板:创建工单时,平台会基于该数据源应用的审核规则模板,对成员提交的SQL语句进行审核,满足应用的审核规则后,才可创建工单。
      • 白名单:创建工单时,若存在不需要审核的SQL语句,可将该SQL语句添加至白名单,提交该SQL时平台将不做审核。

      以智能扫描任务为例

      智能扫描任务是为了满足长期的SQL审核,平台支持的扫描任务类型包括库表元数据、TopSQL、慢日志、Mybatis扫描、应用程序SQL抓取及其他自定义扫描任务。

      智能扫描任务的完整生命周期包括创建、查看扫描任务报告,其中涉及数据源、审核规则模板、白名单的操作。

      备注
      • 数据源:智能扫描任务作用于具体的数据源,创建智能扫描任务时,需要指定一个数据源。
      • 审核规则模板:创建的智能扫描任务,将基于该任务下数据源应用的审核规则模板,审核任务中的SQL语句,并生成报告。
      • 白名单:创建扫描任务时,若存在不需要审核的SQL语句,可将该SQL语句添加至白名单,执行扫描任务时,将略过该语句。

      项目内资源权限

      资源权限

      项目内由成员执行工单及扫描任务。

      前置条件

      • 需要将平台创建的用户/用户组引入项目,成为项目成员/项目成员组后,才可在项目内进行操作。平台用户/用户组的创建,请参见平台用户管理
      • 引入项目成员/成员组时,需要指定成员/成员组在对应数据源上的操作角色,成员/成员组将继承角色对应的操作权限。角色的配置,请参见平台角色管理

      资源权限说明

      • 一个项目内可引入多个成员/成员组
      • 成员/成员组将依据自身绑定的数据源及对应角色权限,对指定数据源进行指定的操作。
      • 如当前项目引入了成员user1,并在user1上绑定了数据源local,并指定角色为DEV(创建工单),那么user1在当前项目中可执行的操作为:针对数据源local创建工单/管理自己创建的工单。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/project_create/index.html b/docs/v2/user-manual/project/project_create/index.html index 05bd3413..2a38b1c1 100644 --- a/docs/v2/user-manual/project/project_create/index.html +++ b/docs/v2/user-manual/project/project_create/index.html @@ -4,7 +4,7 @@ 创建项目【企业版】 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      创建项目【企业版】

      本文介绍如何在SQLE平台创建项目。 SQLE平台通过引入项目实现业务、资源的隔离,项目内创建的工单及扫描任务都将带有项目属性,仅项目成员可查看、操作。

      使用场景

      企业内容存在多个业务,且各个业务之间的数据源、工单、扫描任务可能由不同团队在负责,希望不同团队之间的数据相互隔离。此时,可在平台内以不同项目的行为去管理多个业务资源(数据源、工单、扫描任务等)。

      前置条件

      创建新项目时,需要用户拥有创建项目的权限,这部分内容可通过管理员账号配置,请参见平台用户管理,或由平台管理员直接创建项目。

      操作步骤

      拥有项目创建权限的用户/平台管理员点击页面顶部菜单栏项目,选择查看所有项目,点击列表右上角创建项目按钮

      • 输入项目名称。如:actionsky;
      • 输入项目描述。如:处理爱可生项目的数据源、工单及扫描任务;
      • 点击提交;

      执行结果

      • 项目创建完成后,可在项目列表中查看当前用户创建的项目。
      • 选中指定项目,可进入项目详情页面,查看并管理项目内的数据源、成员、审核规则模板、审核流程模板等内容。

      项目列表

      提示

      项目创建人在创建项目后会成为项目成员,承担项目管理员的身份,支持指定其他成员成为项目管理员,一个项目可对应多个项目管理员。

      后续步骤

      项目创建后,用户在进行创建工单、创建扫描任务的核心业务之前,还需要做如下操作:

      • 初始化工单、扫描任务的实施对象即数据源,具体操作请参见数据源管理
      • 初始化工单、扫描任务的使用人员以及使用人员的操作权限即项目成员,具体操作请参见成员管理
      • 初始化工单、扫描任务的审核规则模板,一个项目内可为不同数据源定义不同的规则模板,具体操作请参见规则模板管理
      • 若存在无需审核的SQL,可在白名单管理中初始化白名单,请参见白名单管理; 初始化工单的项目审核流程模板,一个项目内所有工单共用一个审核流程,具体操作请参见流程模板管理

      更多管理功能

      项目管理包含编辑及删除操作。

      • 项目编辑:项目创建人/平台管理员可在项目列表编辑项目条目信息,可编辑项为项目描述。
      • 项目删除:项目创建人/平台管理员可在项目列表删除项目条目。
        • 限制:删除项目前,需要确保项目下没有进行中的工单,才可成功删除。
        • 影响:删除项目后,该项目下的数据源、工单及扫描任务信息都将被删除。
      • 冻结项目:若有项目需要临时停用,项目创建人/平台管理员可在项目列表点击冻结项目。
        • 限制:冻结项目前,需要确保项目内没有未完成的工单。
        • 影响:冻结项目后,项目内所有操作均不可执行。
        • 后续:用户可点击启用操作,重新启用该项目。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/rule-template-manager/index.html b/docs/v2/user-manual/project/rule-template-manager/index.html index 95821b23..ce68fc54 100644 --- a/docs/v2/user-manual/project/rule-template-manager/index.html +++ b/docs/v2/user-manual/project/rule-template-manager/index.html @@ -4,7 +4,7 @@ 审核规则模板 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      规则模版

      本文将介绍如何管理项目中的审核规则模板。 SQLE平台提供对应数据库类型的默认审核规则模板,是在长期实践中依据数据库特性总结出的一些规范的集合。审核规则模板在平台上的使用场景包括:创建工单时的审核、扫描任务的审核、SQL查询的审核。 同时也支持项目管理员基于实际业务需求定制审核规则模板,匹配具体的数据源审核需求。

      提示

      规则模版分为全局模版和项目模版,全局模版为超级管理员配置,所有项目都可见和使用;项目模版由超级管理员或者项目拥有者配置,仅在项目内使用

      提示

      每个规则模版内可独立配置规则的级别和参数

      使用场景

      在实际生产中,不同业务/不同数据源对上线的SQL存在不同审核要求,在SQLE平台中,项目管理员可通过审核规则模板为不同的数据源配置不同的审核规则。

      前置条件

      项目管理员进入指定的项目

      创建规则模板

      入口

      项目管理员点击左侧导航栏【规则模板】菜单,点击项目规则模板列表中的【创建规则模板】按钮。

      步骤一:输入基本信息

      • 模板名称:命名当前规则模板,须以字母开头,只能包含字母、数字、中划线和下划线。如:test
      • 模板描述:补充描述模板的其他信息。如:用于测试规则模板触发的告警等级
      • 数据库类型:选择该规则模板应用的数据库类型,当前支持的数据库类型包括MySQL、TiDB、DB2、SQL Server、OceanBase For MySQL、Oracle、PostgreSQL、达梦。

      步骤二:选择要启用/禁用的规则

      • 编辑规则告警等级:当前可设置项为普通、提示、警告、告警
      • 编辑规则参数默认值

      步骤三:提交规则模板

      执行结果

      成功创建自定义审核规则模板后,项目管理员可查看已创建的自定义规则模板及其对应的数据库类型。

      审核规则模板

      后续步骤

      • 设置数据源的审核规则模板:用户可为不同数据源设置相同或者不同的审核规则模板,具体操作请参见数据源管理
      • 创建工单:工单中SQL的审核将依据该数据源配置的审核规则模板,请参见工单说明
      • 创建智能扫描任务:智能扫描任务中SQL的审核将依据该数据源配置的审核规则模板,请参见扫描任务说明

      更多操作

      • 导入规则模板:可以导入其他项目中形成的规则模板文件
      • 编辑规则模板:编辑规则模板的基本信息及应用的规则
      • 删除规则模板:删除自行创建的规则模板
        • 限制:当已有数据源绑定了该规则模板,该规则模板不可被删除
      • 克隆规则模板:克隆当前的模板,克隆的规则模版只会继承源模版所有启用的规则、以及变更过的规则等级和阈值。克隆出的新规则模版的模版名称等基本信息需要手动填写。
      • 导出规则模板:导出当前选中的规则模板,以json格式下载规则模板内容。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/whitelist-manager/index.html b/docs/v2/user-manual/project/whitelist-manager/index.html index 8c8f7307..8ffecc3b 100644 --- a/docs/v2/user-manual/project/whitelist-manager/index.html +++ b/docs/v2/user-manual/project/whitelist-manager/index.html @@ -4,7 +4,7 @@ 白名单管理【企业版】 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      白名单【企业版】

      本文介绍如何增加、编辑、删除项目中的白名单。 SQLE在企业版中提供白名单功能,便于用户在特定场景下规避具体规则的审核。 添加在SQL审核白名单中的语句,在提交工单申请时,不受审核规则的约束。。

      提示

      白名单目前支持两种方式匹配SQL,字符串匹配和SQL指纹匹配,前者需要SQL内容一致,后置匹配同类型的SQL

      使用场景

      当已知一些 SQL 存在不规范之处,但又想忽略时,可以将SQL语句添加至白名单。

      前置条件

      项目管理员进入指定的项目

      添加白名单

      项目管理员点击左侧导航栏【白名单】菜单,点击白名单列表右上角的【添加白名单】按钮。

      • 选择匹配模式:提供以下两种方式
        • 字符串匹配:若选择通过字符串匹配,则将应用于指定SQL语句。
        • SQL指纹匹配:若选择通过SQL指纹匹配,则应用于语句结构一致的SQL。
      • 输入白名单描述:用以提示该条白名单SQL的应用场景
      • 输入SQL语句

      执行结果

      成功添加白名单后,可以看到当前项目内所有的项目白名单及匹配模式

      whitelist

      后续步骤

      • 创建工单:添加白名单后,可继续创建工单,白名单中的语句将不会触发审核,请参见工单说明
      • 创建智能扫描任务:添加白名单后,审核将跳过白名单中的语句,请参见扫描任务说明

      更多操作

      • 编辑白名单:项目管理员/成员可修改已创建的白名单语句
      • 删除白名单:项目管理员/成员可删除已创建的白名单语句
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/workflow-template-manager/index.html b/docs/v2/user-manual/project/workflow-template-manager/index.html index fe8e27d7..e6888c5f 100644 --- a/docs/v2/user-manual/project/workflow-template-manager/index.html +++ b/docs/v2/user-manual/project/workflow-template-manager/index.html @@ -4,7 +4,7 @@ 审核流程模板 | SQLE 文档 - + @@ -14,7 +14,7 @@ 一个项目有且仅有一个审核流程模板。

      提示

      每个项目对应使用一个流程模版,项目创建后会初始化一个默认模版,用户可根据实际情况调整

      提示

      工单审核步骤若选择匹配所有拥有审核权限的用户时对应的数据源没有对应的人员则默认指定管理员进行审批操作

      警告

      修改流程模版仅对之后的工单有效,之前的工单流程步骤不变

      使用场景

      一个业务团队中,开发需要在指定数据源上执行SQL,上线的SQL需要符合DBA约定了的安全以及性能规范。因此,SQLE为工单场景提供了不同人员之间的协作工作流,即审核流程。

      前置条件

      项目管理员进入指定的项目 项目管理员已添加项目成员/成员组

      配置审核流程

      项目管理员点击左侧导航栏流程模板菜单, 点击修改当前审批流程模板按钮

      设定模板的基本信息

      设置允许创建工单的最高审核等级

      当前提供四种审核等级,包括:

      • 普通
      • 提示
      • 告警
      • 错误

      若设置“运行查询的最高审核等级”为warn,则审核结果小于等于warn的SQL都可以执行.

      设置流程节点

      审核流程自工单发起开始,通过设置的审核步骤后,最后以执行上线结束

      第一步 工单发起

      这一步骤通常指代项目成员创建工单

      第二步 工单审核

      配置审核节点后,对应审核操作人在该步骤可以执行审核通过或驳回操作

      • 选择审核人类型,可以选择指定审核人或匹配拥有数据源审核权限的成员
      • 添加步骤描述:用以补充说明步骤信息
      • 添加审核步骤:审核流程模板最多可设置4个审核节点,也可不设置审核步骤
      提示
      • 若选择指定审核人
        • 需要项目管理员指定项目成员
        • 最少需要添加一个指定人,最多只能添加三个指定人
        • 指定的审核人可以没有工单审核权限
      • 若选择匹配拥有数据源审核权限的成员
        • 将按实例匹配数据源上拥有审核权限的成员
        • 如果创建工单时没有任何用户拥有此数据源工单审核权限, 则工单审核人将会被指定为项目管理员

      第三步 工单上线:执行人在该步骤可以执行上线或驳回操作。

      • 选择审核人类型,当前提供两种方式:指定上线人或匹配拥有数据源上线权限的成员
      • 添加步骤描述
      提示
      • 若选择指定审核人
        • 需要项目管理员指定项目成员
        • 最少需要添加一个指定人,最多只能添加三个指定人
        • 指定的上线人可以没有工单上线权限
      • 若选择匹配拥有数据源上线权限的成员
        • 将按实例匹配数据源上拥有上线权限的成员
        • 如果创建工单时没有任何用户拥有此数据源工单上线权限, 则工单上线人将会被指定为项目管理员

      第四步 提交审核流程模板

      提交审核流程后,流程修改之前创建的工单仍以提交工单时的审核流程执行,流程修改后的创建的工单将以当前的审核流程执行流转。

      执行结果

      提交审核流程模板后,可查看当前设置的审批流程模板涉及的步骤节点,及各步骤的审核人。 审核流程模板

      后续步骤

      创建工单:创建审核流程模板后,成员可进入项目中创建工单,请参见:创建工单

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/workflow/audit-workflow/index.html b/docs/v2/user-manual/project/workflow/audit-workflow/index.html index 204ccf45..fe9be39f 100644 --- a/docs/v2/user-manual/project/workflow/audit-workflow/index.html +++ b/docs/v2/user-manual/project/workflow/audit-workflow/index.html @@ -4,7 +4,7 @@ 审核工单 | SQLE 文档 - + @@ -13,7 +13,7 @@ 自动审核通常在创建工单时执行,本节主要介绍人工审核部分。

      使用场景

      实际生产中会存在业务变更、业务上线,比如初始化构建业务库、跑批等,当工单创建后,通常需要审核人员执行审批操作,审批过程中,审批用户可选择审核通过或全部驳回。

      前置条件

      工单已被创建

      操作步骤

      步骤一 查看待审核的工单

      提示
      • 入口一:可在dashboard中查看待自己审核的工单
      • 入口二:进入项目的工单列表,筛选工单状态为待审核,查看项目内待审核的工单

      步骤二 点击待审核的工单名称,进入查看工单详情

      工单详情页信息包含以下几个方面

      • 工单基础信息:包括工单名称、工单创建人、工单创建时间及工单描述
      • 工单进度:查看当前工单的执行进度,及工单整体流经的流程节点,流程节点与审核流程模板中设置的节点保持一致
      • 工单审核结果查看:
        • 概览:查看工单的整体概况信息,显示工单整体应用的数据源及审核情况
        • 按数据源查看:按数据源查看数据源上的SQL及其审核结果,并查看分析结果,也可下载审核报告、下载SQL语句、去重SQL

      步骤三 审核通过或驳回工单

      • 审核通过:成员查看工单详情后,若审核通过,可点击【审核通过】按钮,完成审核;
      • 全部驳回:若审核不通过,可点击【全部驳回】按钮,并填写驳回原因,工单将返回至工单创建人处

      执行结果

      • 审核通过:若点击【审核通过】,工单将按照审核流程模板流转至下一操作节点,状态变更为待审核或待上线 approve
      • 全部驳回:若点击【全部驳回】,工单状态将变更为已驳回,工单进度栏将提示提交的驳回原因,工单将返回至创建人重新修改,并重新提交工单审核,或直接关闭工单 deny

      后续步骤

      • 审核工单:若工单涉及其他审核流程节点,工单将继续流转至下一审核节点审核
      • 上线工单:若工单不涉及其他审核流程节点,工单将流转至上线人处执行上线,可参考上线工单
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/workflow/create-workflow/index.html b/docs/v2/user-manual/project/workflow/create-workflow/index.html index 7b472f74..95c27b8b 100644 --- a/docs/v2/user-manual/project/workflow/create-workflow/index.html +++ b/docs/v2/user-manual/project/workflow/create-workflow/index.html @@ -4,7 +4,7 @@ 创建工单 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      创建工单

      工单是SQLE提供的在线化SQL上线方式。研发人员可通过创建工单,提请需要审批的SQL语句。

      使用场景

      实际生产中会存在业务变更、业务上线,比如初始化构建业务库、跑批。此时,需要针对某个数据库执行一批SQL。用户可通过SQLE创建工单,输入SQL语句或者上传SQL脚本。

      前置条件

      • 项目管理员已添加数据源;

      操作步骤

      步骤一:填写工单基本信息

      创建工单前,需要为工单指定唯一的工单名称,并填写工单说明。

      • 填写工单名称:
        • 工单名称支持中英文,须以英文开头;
        • 工单名称可自行填写;若未填写,平台将根据使用的数据源及添加时间组合填充工单名称;
      • 填写工单描述:输入工单描述信息,限3000个字符;

      步骤二:上传SQL语句并审核

      需要填写工单中涉及的SQL语句,执行审核操作,SQLE会根据数据源配置的审核规则模板,自动进行SQL语句的规则审核,并在线反馈审核结果。

      • 选择数据源:表示当前SQL最终会应用到哪个数据源;
        • 社区版:一个工单内仅支持选择一个数据源;
        • 企业版:一个工单内支持添加多个数据源;
      • 是否选择相同SQL:当添加多个数据源时,可设置是否选择相同SQL;
        • 使用相同SQL模式,
          • 限制:数据源的数据库类型相同;
          • 效果:对不同数据源下发相同SQL;
        • 若不使用相同SQL模式
          • 效果:对不同数据源下发不同SQL;
      • 选择数据库:选择要执行的数据库,相当于执行 use 语句;
        • 若未选择数据库,工单上线后,将脱库执行下发的SQL;
      • 选择审核SQL语句上传方式:平台提供三种上传方式,包括在线输入SQL语句、上传SQL文件、上传MyBatis的XML文件;
        • 在线输入SQL语句:项目成员可在平台编辑器中直接输入SQL;
        • 上传SQL文件:项目成员可选择本地的SQL文件上传;
        • 上传Mybatis的XML文件:项目成员可选择本地的XML文件上传;
          • 限制:平台仅支持审核XML文件中上传的SQL语句,尚不支持对其创建工单;
      • 点击审核,显示平台审核结果;
      提示

      在线输入SQL的场景下,平台支持对输入框中的SQL进行美化,以此提高SQL可读性。

      注:当前支持SQL美化的数据源类型包括:

      • MySQL
      • DB2
      • SQL Server
      • Oceanbase For MySQL
      • Oracle
      • PostgreSQL

      步骤三:查看审核结果

      将根据数据源不同,展示不同数据源下的SQL审核结果。 审核结果由以下几部分组成:

      • 数据源标签:显示当前SQL操作的数据源,当有多个数据源时,可切换数据源标签,查看不同数据源上的审核情况;
      • 数据源上SQL的整体审核通过率、审核结果评分及操作的数据库;
      • 数据源上每条SQL的审核结果、SQL语句及执行状态,可分析SQL;
      • 功能区:
        • 下载审核报告:查看当前数据源下审核的sql语句及其审核结果;
        • 下载SQL语句:下载文件,可查看当前数据源下审核的SQL语句及其审核结果;
        • 设置是否去重:若SQL语句结构一致,去重后将仅显示去重后的SQL;
      审核通过率计算方式
      审核通过率=正常sql/sql总数
      审核结果等级为notice,warn,err的sql均为非正常sql
      审核结果评分计算方式
      1.Error以上级别SQL出现率 = Error级别SQL/SQL
      2.Warn以上级别SQL出现率 = (Error级别SQL+ Warn级别SQL) /SQL
      3.Warn以上级别SQL出现率 = (Error级别SQL+ Warn级别SQL+ Notice级别SQL) /SQL
      4.总分 = 审核通过率 x 30 +
      (1 - Error以上级别SQL出现率) x 15 +
      (1 - Warn以上级别SQL出现率) x 10 +
      (1 - Notice以上级别SQL出现率) x 5 +
      (Error以上级别SQL出现概率 == 0 ? 15 : 0) +
      (Warn以上级别SQL出现概率 == 0 ? 10 : 0) +
      (Notice以上级别SQL出现概率 == 0 ? 5 : 0) +
      (Error以上级别SQL出现概率 <0.1 ? 5 : 0) +
      (Warn以上级别SQL出现概率 <0.1? 3 : 0) +
      (Notice以上级别SQL出现概率 <0.1 ? 2 : 0)

      备注: 三元表达式 ==> ( 条件 ? 如果条件为真则为此值 : 如果条件为假则为此值 )

      步骤四:点击创建工单

      完成创建后,进入工单列表,即可看到该工单显示为待审核。

      执行结果

      创建工单后,可在工单列表查看已创建的所有工单。 list

      后续步骤

      • 审核工单:工单创建完成后,将依据审核流程模板的设定,流转至指定的审核成员处,审核成员需登录后进行审核操作,详情可参见审核工单
      • 导出工单:当用户需要审计当前已创建的工单时,可选择筛选条件后,点击工单列表的导出工单按钮,以csv格式导出满足条件的工单信息。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/workflow/exec-workflow/index.html b/docs/v2/user-manual/project/workflow/exec-workflow/index.html index 00df421a..cd804588 100644 --- a/docs/v2/user-manual/project/workflow/exec-workflow/index.html +++ b/docs/v2/user-manual/project/workflow/exec-workflow/index.html @@ -4,14 +4,14 @@ 上线工单 | SQLE 文档 - +
      版本:v2

      上线工单

      本章详细介绍用户如何进行上线。

      • 从数据源角度,支持多数据源同时上线、单数据源分别上线;
      • 从上线时间角度,支持立即上线、定时上线;
      • 从上线方式角度,支持平台直接上线,也支持后台执行后,线上标记为人工上线;

      使用场景

      实际生产中上线环节也会存在业务变更等诸多情况,除了对工单做整体上线操作外,还存在以下需求:

      • 需要根据数据源分别上线;
      • 需要避开业务高峰期,在指定时间上线;
      • 已在后台执行SQL,需要线上标记为人工上线;

      为此,SQLE平台也提供了多种上线方式,满足用户的上线需求。

      前置条件

      工单状态为待上线;

      操作步骤

      步骤一 进入待上线的工单

      • 方式一:上线操作人可在dashboard中点击“需上线”标签,查看当前需要上线的工单;
      • 方式二:上线操作人也可在项目的工单列表中,筛选工单状态为“待上线”的工单,查看当前需要上线的工单;

      步骤二 设置工单上线

      根据使用场景,区分为以下四种工单上线方式;

      1.批量立即上线

      针对一个工单内涉及多个数据源,且多个数据源需要同时立即上线的,点击批量上线,平台将对工单内涉及的所有数据源执行上线操作;

      2.单个数据源立即上线

      点击立即上线后,平台将立即连入指定数据源,并执行SQL变更;

      3.单个数据源定时上线

      点击定时上线,并设置上线时间,平台将于指定时间上线SQL; 用户也可取消定时上线,重新设置上线方式。

      4.标记为人工上线

      针对已经线下执行过的工单SQL,用户可点击标记为人工上线按钮,切换工单状态;

      提示

      上线人仍可选择全部驳回:用户判定工单中存在不合规、性能问题等SQL语句时,则可点击全部驳回,让工单创建人修正后再次进入审核流程。

      备注

      针对上线中的工单,用户可点击“中止上线”按钮,中断上线流程,以避免当前的上线操作影响正常业务。

      执行结果

      result

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/project/workflow/intro/index.html b/docs/v2/user-manual/project/workflow/intro/index.html index 9721ee70..74a07675 100644 --- a/docs/v2/user-manual/project/workflow/intro/index.html +++ b/docs/v2/user-manual/project/workflow/intro/index.html @@ -4,14 +4,14 @@ 功能说明 | SQLE 文档 - +
      版本:v2

      功能说明

      很多公司通常设有 DBA(Database administrator) 这个职位,他们负责在系统上运行数据库,执行备份,执行安全策略等日常数据库运维的工作。其中,DBA一项重要的工作是规范研发人员在应用程序中使用的 SQL 语句。

      场景举例:

      产品在迭代过程中,某个表需要新增一个字段,这会涉及到改表操作。 当前处理方法:DBA 依据数据库规范评估SQL语句的合理性。如果评估没有问题,则将修改操作应用到线上数据库。如果公司对于这类操作比较严格,在上线前,可能还需要经过层层审批。所有上线流程中的人都同意后,再将修改操作应用到数据库。

      由此引出的问题:

      • SQL上线牵涉范围较广,缺乏规范化流程支撑
      • 工单运转节点不透明,需要DBA去手动通知

      定位

      SQLE审核工单的出现主要是为了解决上述整个过程中的规范化、流程化的问题。

      • 通过引入审核规则模板,在人工审核前,首先利用规范化的DBA审核经验进行平台预审,提高整体审核效率
      • 通过引入审核流程模板,将SQL语句的流程节点透明化,并明确操作权限归属,提供规范化流程支持

      流程

      process

      状态说明
      待审核创建完的工单自动进入「待审核」状态;该状态的工单将由项目流程设置的审核人进行审核。
      待上线工单的每一道审核流程均执行通过后,工单状态将由「待审核」状态变更为「待上线」状态;上线人此时可选择立即上线或批量驳回,或针对具体数据源进行立即上线或定时上线。设置定时上线后,工单状态仍为「待上线」,到达预设的上线时间后,变更为「正在上线」状态;设置定时上线但还未到达上线时间的工单,可以由上线人取消定时上线,可以再次对工单进关闭、定时上线/立即上线等操作。
      正在上线当上线人进行立即上线,工单会短暂的进入「正在上线」阶段,该阶段的时间取决于SQL是否上线完毕;当上线人选择定时上线,定时上线的工单到预设时间会自动执行SQL上线,此时工单也会由「待上线」状态变更为「正在上线」状态;SQL上线遇到阻塞的工单会一直处于「正在上线」状态。
      上线成功SQL上线成功的工单会进入「上线成功」状态;上线成功标志工单流转结束,无法再对工单进行操作。
      上线失败SQL上线失败的工单会进入「上线失败」状态;上线失败同样标志工单流转结束,无法再对工单进行操作
      已驳回「待审核」的工单可以由每级的审批人进行审核,若审核不通过,被驳回,工单将进入「已驳回」状态;此状态的工单可以由创建人或者超管用户进行修改并重新提交工单,流程将被重置。
      已关闭状态为「待审核」、「待上线」或「已驳回」的工单可以由创建人或者超管用户在任何时刻关闭工单,「已关闭」状态标志工单流转结束,无法再对工单进行操作;已经进入上线流程的工单无法关闭。
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sql-workbench/how-to-configure/index.html b/docs/v2/user-manual/sql-workbench/how-to-configure/index.html index 7cea602f..1736dff0 100644 --- a/docs/v2/user-manual/sql-workbench/how-to-configure/index.html +++ b/docs/v2/user-manual/sql-workbench/how-to-configure/index.html @@ -4,14 +4,14 @@ 配置方法 | SQLE 文档 - +
      版本:v2

      配置方法

      安装CloudBeaver

      提示

      SQLE目前支持的CloudBeaver版本包括22.2.0、22.2.1、22.2.3、22.3.1版本

      docker 部署:https://github.com/dbeaver/cloudbeaver/wiki/Run-Docker-Container

      源码安装:https://github.com/dbeaver/cloudbeaver/wiki/Build-and-deploy

      配置CloudBeaver

      步骤一 修改CloudBeaver配置文件cloudbeaver.conf

      cloudbeaver.conf配置文件通常在conf路径下

      配置文件名是否必须修改修改内容修改原因
      cloudbeaver.conf将server.rootURI的值改为'/sql_query';将server.serviceURI 的值改为 '/api/'(server.serviceURI默认就是/api/)SQLE目前只支持代理这个路由

      config

      步骤二 重启CloudBeaver

      配置cloudbeaver后,需要重启cloudbeaver以使配置项生效

      步骤三 初始化CloudBeaver

      • 使用 http://{IP}:8978/sql_query#/ 可以进入CloudBeaver即代表配置正确
      • 设置管理员用户名及密码:该用户名及密码将用于后续SQLE配置文件中
      • 确认security服务开启
      • 完成设置,登录管理员账号成功,则初始化成功

      步骤四 配置完成后检查

      • 确认角色正确:[访问管理] - [角色] 处应当只有admin和user两个角色

      • 确认没有冲突用户:[访问管理] - [用户] 处不应当有名称格式为 sqle-xxx的用户存在, 这会与SQLE自动创建的用户冲突

      提示

      用admin 跳转Cloudbeaver的时候,SQLE会在Cloudbeaver创建一个新的用户叫sqle-admin ,同时把这个用户缓存到数据库里,每次跳转先去数据库里找这个用户,如果已经存在,就会拿这个用户直接去登陆cb

      配置SQLE

      步骤一 修改SQLE配置文件, 增加SQL工作台参数

      打开SQLE配置文件,配置文件一般位于SQLE工作目录的etc目录下, 文件名一般为sqled.yml 配置文件新增参数sql_query_config

      参数字段参数说明
      sql_query_configsql工作台参数, 此参数与 sqle_config在同一级

      在sql_query_config参数下增加子参数,子参数在 sql_query_config 的下一级, 需要注意缩进

      参数字段参数说明
      cloud_beaver_hostcloudbeaver IP地址
      cloud_beaver_portcloudbeaver访问端口
      cloud_beaver_admin_usercloudbeaver管理员账户
      cloud_beaver_admin_passwordcloudbeaver管理员密码

      配置文件内容参考:

      sqleconfig

      步骤二 重启SQLE

      需要重启以使配置项生效。

      步骤三 检查SQLE是否已成功集成CloudBeaver

      SQLE重启后进入平台,点击打开SQL工作台,若成功跳转,则说明当前SQLE平台已成功集成CloudBeaver。

      提示
      • 平台管理员账户需要有 [添加/修改/删除][用户/实例/权限] 的权限
      • SQLE集成CloudBeaver后请勿使用CloudBeaver的管理员账户直接操作CloudBeaver的用户/实例/权限

      常见问题

      如果在配置CloudBeaver时,出现跳转不正确等问题,可参考如何解决CloudBeaver跳转不正确的问题

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sql-workbench/how-to-quick-deploy/index.html b/docs/v2/user-manual/sql-workbench/how-to-quick-deploy/index.html index a574a2d6..1265ba01 100644 --- a/docs/v2/user-manual/sql-workbench/how-to-quick-deploy/index.html +++ b/docs/v2/user-manual/sql-workbench/how-to-quick-deploy/index.html @@ -4,13 +4,13 @@ 使用定制包快速搭建环境 | SQLE 文档 - +
      版本:v2

      使用定制包快速搭建环境

      SQLE在原有CloudBeaver release_22_2_0 分支的基础上, 增加了对OceanBase 和 TiDB 的支持, 用户无需再手动配置环境,可直接使用SQL工作台功能。

      cb

      定制分支与原分支区别详情

      • 支持并默认启用 OceanBase 驱动
      • 支持并默认启用 TiDB 驱动
      • 默认访问路由调整为 /sql_query, 便于与SQLE集成
      • 默认会话超时时间调整为12小时(之前是30分钟)
      • 移除了默认创建的 PG 演示实例和 SQLite 演示实例
      • docker镜像名调整为 actiontech/sqle-cloudbeaver:22_2_0
      • 优化打包方式, 大幅提高打包效率
      • 默认主题改为暗色

      项目地址

      定制包下载地址

      https://github.com/actiontech/cloudbeaver/releases/tag/sqle.22.2.0

      使用说明

      编译和运行项目

      与原项目编译运行方式保持一致

      编译docker镜像

      进入项目的 deploy/docker 目录, 然后执行 ./make-docker-container.sh

      运行docker镜像

      • 方式一: 进入项目的 deploy/docker 目录, 然后执行 ./run-docker-container.sh
      • 方式二: 手动启动镜像, 镜像参数和 原项目镜像参数 保持一致

      已有CloudBeaver环境升级为定制环境

      CloudBeaver程序目录下应当有以下几个文件

      cb

      将CloudBeaver程序目录下的conf目录和workspace目录移动到定制CloudBeaver程序目录下(覆盖原目录), 随后停止旧CloudBeaver, 运行新CloudBeaver即可

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sql-workbench/how-to-use/index.html b/docs/v2/user-manual/sql-workbench/how-to-use/index.html index b6c52525..89572f34 100644 --- a/docs/v2/user-manual/sql-workbench/how-to-use/index.html +++ b/docs/v2/user-manual/sql-workbench/how-to-use/index.html @@ -4,13 +4,13 @@ 使用定制包快速搭建环境 | SQLE 文档 - +
      版本:v2

      使用定制包快速搭建环境

      SQLE在原有CloudBeaver release_22_2_0 分支的基础上, 增加了对OceanBase 和 TiDB 的支持, 用户无需再手动配置环境,可直接使用SQL工作台功能。

      cb

      定制分支与原分支区别详情

      • 支持并默认启用 OceanBase 驱动
      • 支持并默认启用 TiDB 驱动
      • 默认访问路由调整为 /sql_query, 便于与SQLE集成
      • 默认会话超时时间调整为12小时(之前是30分钟)
      • 移除了默认创建的 PG 演示实例和 SQLite 演示实例
      • docker镜像名调整为 actiontech/sqle-cloudbeaver:22_2_0
      • 优化打包方式, 大幅提高打包效率
      • 默认主题改为暗色

      项目地址

      定制包下载地址

      https://github.com/actiontech/cloudbeaver/releases/tag/sqle.22.2.0

      使用说明

      编译和运行项目

      与 原项目编译运行方式 保持一致

      编译docker镜像

      进入项目的 deploy/docker 目录, 然后执行 ./make-docker-container.sh

      运行docker镜像

      • 方式一: 进入项目的 deploy/docker 目录, 然后执行 ./run-docker-container.sh
      • 方式二: 手动启动镜像, 镜像参数和 原项目镜像参数 保持一致

      已有CloudBeaver环境升级为定制环境

      CloudBeaver程序目录下应当有以下几个文件

      cb

      将CloudBeaver程序目录下的conf目录和workspace目录移动到定制CloudBeaver程序目录下(覆盖原目录), 随后停止旧CloudBeaver, 运行新CloudBeaver即可

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sql-workbench/introduction/index.html b/docs/v2/user-manual/sql-workbench/introduction/index.html index a5805bac..f68ba0f0 100644 --- a/docs/v2/user-manual/sql-workbench/introduction/index.html +++ b/docs/v2/user-manual/sql-workbench/introduction/index.html @@ -4,7 +4,7 @@ 功能说明 | SQLE 文档 - + @@ -12,7 +12,7 @@
      版本:v2

      功能说明

      CloudBeaver Community 是一个开源的 Web 数据库可视化管理工具,支持 PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, DB2, Firebird, H2, Trino 等数据库。

      SQLE通过集成CloudBeaver,使得SQLE具备数据库操作的能力,方便开发或DBA在SQLE中方便地操作数据库

      • SQL工作台会自动同步SQLE的用户信息和实例信息, 避免无权限的人进行操作
      • 可通过参数配置及SQL查询审核对SQL做限制和审核,有效避免不合规的查询

      使用场景

      当业务人员需要对数据库进行数据检索时,一些查询SQL可能会造成数据库性能问题甚至夯死。但在传统的使用场景中,DBA很难对业务人员的行为进行追踪和管控,无法限制有问题的SQL在生产环境执行。

      因而SQLE平台集成CloudBeaver数据库可视化管理工具,满足在线SQL查询需求的同时,进行业务人员的操作权限控制,并对业务人员的SQL进行审计,拒绝不合规的SQL运行。

      前置条件

      安装CloudBeaver并完成配置,参考SQL工作台配置方法

      操作步骤

      步骤一 SQLE平台配置用户

      • 创建一个有SQL查询权限的角色
      • 将成员关联至该角色

      步骤二 SQLE平台配置数据库实例审核等级

      创建/修改一个实例, 开启SQL查询,并设置运行查询的最高审核等级,并提交修改

      参数名参数含义
      SQL查询是否需要审核只有开启此项,才会在执行SQL查询时进行审核
      运行查询的最高审核等级如果审核等级低于或等于这个等级将会放行, 高于这个等级将无法执行

      步骤三 登录CloudBeaver

      自动登录说明:在登陆SQLE时会检测CloudBeaver是否处于登陆状态, SQLE将会自动使用当前SQLE用户登录CloudBeaver。

      警告

      若当前用户无SQL查询权限,则无权登录。

      步骤四 下发SQL

      选择需要操作的数据源,并输入SQL语句点击运行,可查看SQL查询结果

      操作结果

      审核失败的SQL将会被拦截, 并报出错误, 可以点击详情查看错误详情 error

      按要求修改SQL, 再次执行, 如果审核通过将会执行当前SQL success

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/configuration/index.html b/docs/v2/user-manual/sys-configuration/configuration/index.html index ad5dbddf..e2cc7405 100644 --- a/docs/v2/user-manual/sys-configuration/configuration/index.html +++ b/docs/v2/user-manual/sys-configuration/configuration/index.html @@ -4,14 +4,14 @@ 全局配置 | SQLE 文档 - +
      版本:v2

      全局配置

      SQLE支持管理员对平台基础配置进行统一管理,目前支持修改的配置项包括:

      • 已完成的工单自动过期时间;
      • 操作记录过期时间;
      • URL地址前缀;

      已完成的工单自动过期时间

      使用场景

      SQLE会定时回收已完成的工单,目前该过期时间默认为30天。如果用户需要自定义过期时间,可在全局配置中修改。

      填写范例

      • 进入全局配置页面,点击修改
      • 点击已完成的工单过期时间输入框;
      • 输入预期的过期时间,例如:360小时;
      • 点击提交,保存配置;
      • 此时查看项目工单列表,已完成15天以上的工单将被删除;

      操作记录过期时间

      使用场景

      SQLE会定时回收已产生的操作记录,目前该过期时间默认为90天。如果用户需要自定义过期时间,可在全局配置中修改。

      填写范例

      • 进入全局配置页面,点击修改
      • 点击操作记录过期时间输入框;
      • 输入预期的过期时间,例如:2小时;
      • 点击提交,保存配置;
      • 此时查看平台操作记录,仅显示2个小时内产生的操作行为;

      URL地址前缀

      使用场景

      配置消息推送或流程对接后,用户可以从外部应用程序中直接查看待操作提示。此时,如果用户需要跳转到SQLE,进一步查看工单详细信息,则可以在全局配置中更改URL地址前缀,以满足访问需求。

      填写范例

      • 进入全局配置页面,点击修改
      • 点击URL地址前缀输入框;
      • 输入URL前缀,格式为http://ip:port,例如:http://localhost:10000 ;
      • 点击提交,保存配置;
      • 创建一条工单,待审批人在第三方应用中可查看工单链接,点击链接可快速跳转至SQLE平台; configuration-url
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/customize/index.html b/docs/v2/user-manual/sys-configuration/customize/index.html index 284d6306..7bfde1a4 100644 --- a/docs/v2/user-manual/sys-configuration/customize/index.html +++ b/docs/v2/user-manual/sys-configuration/customize/index.html @@ -4,13 +4,13 @@ 个性化设置【企业版】 | SQLE 文档 - +
      版本:v2

      个性化设置【企业版】

      SQLE支持对网站logo及标题进行自定义设置,满足企业用户的个性化需求。

      使用场景

      若用户对企业一致性有需求,需要变更所使用的网站logo及标题,以增加企业辨识度时,可以使用平台的个性化设置进行变更。

      操作步骤

      • 用户点击系统设置,选择个性化设置
      • 编辑标题:用户点击个性化标题后的编辑icon,输入新名称test,回车键保存后,页面标题将变更为test
      • 编辑个性化logo:用户点击上传及更新icon,选择需要的图片,点击打开后,页面logo将变更为所选图片;
        • 限制:图片大小不可超过102,400 Bytes;

      customize

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/instance_syn/index.html b/docs/v2/user-manual/sys-configuration/instance_syn/index.html index 3322af16..0d66e121 100644 --- a/docs/v2/user-manual/sys-configuration/instance_syn/index.html +++ b/docs/v2/user-manual/sys-configuration/instance_syn/index.html @@ -4,7 +4,7 @@ 外部数据源同步【企业版】 | SQLE 文档 - + @@ -14,7 +14,7 @@ sip

      3.针对需要同步的实例组添加项目标签

      SQLE同步时,将依据项目标签值,将实例同步至指定项目中 tag

      操作步骤

      • 进入SQLE平台,点击右上角菜单的“外部数据源同步”,进入同步任务页面
      • 添加同步任务,填写以下相关信息
        • 来源:目前仅支持DMP平台;
        • 地址:默认格式为http://ip:port;
        • 数据源类型:选择同步的数据源类型,如mysql;
        • 审核规则模板:选择数据源使用的规则模板;
        • 设置同步间隔:SQLE平台将按照指定的同步时间执行同步任务;
      • 点击“提交”按钮,SQLE会立即进行一次数据源同步。

      操作结果

      同步成功后进入对应项目,查看数据源列表页面,可以看到DMP上配置了SIP的数据源组已经被添加到SQLE平台,可以对这个数据源进行创建工单或创建扫描任务等操作。

      syn-result instance-syn

      后续操作

      管理员可编辑或删除同步任务,也可在同步周期之外,手动执行同步任务。

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/intro/index.html b/docs/v2/user-manual/sys-configuration/intro/index.html index ba0545a3..fb9b6984 100644 --- a/docs/v2/user-manual/sys-configuration/intro/index.html +++ b/docs/v2/user-manual/sys-configuration/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v2

      功能说明

      系统设置中可配置的内容包括全局配置、登录对接、流程对接、消息推送。

      • 全局配置:当前可配置工单过期时间及url
        • 工单失效时间:平台会定期清理已完成的工单,管理员可自定义工单过期的时间
        • URL地址前缀:当使用流程对接时,通常由外部平台访问SQLE工单详情,需要配置url地址前缀,配置能访问SQLE的url地址信息
      • 登录对接:用户除使用SQLE账号登录平台,也可使用LDAP及oAuth2.0的方式实现对接登录,可参考登录对接
      • 流程对接:使用流程对接,可在外部工作平台审批工单,目前支持钉钉审批,可参考流程对接
      • 消息推送:使用消息推送,可将工单状态变更推送到外部工作平台,目前支持对接邮箱、企业微信、飞书的方式,可参考消息推送
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/login_syn/index.html b/docs/v2/user-manual/sys-configuration/login_syn/index.html index cf7b75b4..8498650c 100644 --- a/docs/v2/user-manual/sys-configuration/login_syn/index.html +++ b/docs/v2/user-manual/sys-configuration/login_syn/index.html @@ -4,14 +4,14 @@ 登录对接 | SQLE 文档 - +
      版本:v2

      登录对接

      当前登录对接已实现LDAP方式及Oauth2.0方式

      入口

      管理员账号,点击更多按钮,点击系统设置,跳转系统设置页面后,点击“对接登录”标签

      推送方式

      LDAP

      功能说明

      SQLE中支持通过配置的方式接入LDAP系统, 如同其他系统一样接受统一的用户管理, 以便于管理员管理SQLE中的用户, 也使得员工无需在使用一套公司内通用账号密码的同时单独记录SQLE的账号密码。 在SQLE中, 如果正确配置并启用了LDAP功能, 用户就可以在登录界面使用LDAP中记录的账号密码进行登录, SQLE会在员工第一次登录时同步此员工的账号和邮箱, 并在以后的登录中均通过LDAP校验此账户

      使用场景

      当组织配置了LDAP对接登录系统时,平台管理员可进行相关配置。

      前置操作

      已配置LDAP

      操作步骤

      点击修改,选择启用LDAP

      • LDAP服务器地址:用于LDAP登陆时SQLE找到LDAP服务器的位置
      • LDAP服务器端口:用于LDAP登陆时SQLE找到LDAP服务的工作端口
      • 连接用户DN:当用户登录时需要先使用管理用户登录到LDAP中查找出登录用户在LDAP中的DN, 再使用查找出的DN和登录用户填写的密码进行LDAP登录校验
      • 连接用户密码:连接用户DN登录时的密码
      • 查询根DN:用于限定SQLE中LDAP登录的作用范围
      • 用户属性名:用于LDAP用户登录时查询登录用户的DN, LDAP中此属性对应的值也将用作此用户第一次登录SQLE自动注册时的用户名
      • 用户邮箱属性名:SQLE将根据此属性名从LDAP中获取到用户的邮箱, 并将此邮箱用于此用户第一次登录SQLE自动注册时的用户邮箱

      后续操作

      修改后用户即可通过LDAP账号登录SQLE平台

      OAuth 2.0【企业版】

      功能说明

      SQLE中支持通过配置的方式接入OAuth 2.0系统, 如同其他系统一样接受统一的用户管理, 以便于管理员管理SQLE中的用户, 也使得员工无需在使用一套公司内通用账号密码的同时单独记录SQLE的账号密码

      在SQLE中, 如果正确配置并启用了OAuth 2.0功能, 用户就可以在登录界面使用第三方登录, SQLE会在员工第一次登录时要求用户绑定或自动创建一个SQLE用户, 并在以后的登录中可以使用OAuth 2.0用户登录, 也可以用绑定的SQLE用户账号密码登录

      使用场景

      当组织配置了OAuth 2.0对接登录系统时,平台管理员可进行相关配置。

      前置操作

      已配置OAuth 2.0

      操作步骤

      点击修改,选择启用OAuth 2.0

      • 应用ID:应用的唯一标识, 从要对接的平台申请 , 在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值
      • 应用密钥:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值
      • 外部访问SQLE的地址:格式为 http(s)://ip:port
      • oauth2登录授权页面地址:格式类似于 http(s)://ip:port/xxx
      • oauth2 access_token 获取地址:格式类似于 http(s)://ip:port/xxx
      • oauth2 user id 获取地址:格式类似于 http(s)://ip:port/xxx
      • 请求资源范围:此范围由验证服务器定义
      • access_token放置位置:SQLE会在获取用户ID时将access_token放在这个key对应的value中, 此参数会作为get请求的参数发送给用户ID获取地址
      • 用户ID保存位置:SQLE会尝试使用此key从第三方平台的响应中解析出用户ID,用户ID应当为唯一ID
      • 登录按钮文字
      提示

      当仅允许内网访问SQLE服务时,请确保回调地址的后缀为"/v1/oauth2/callback"。

      后续操作

      启用后SQLE登录界面出现其他方式跳转登录入口,点击,可跳转至对应登录页面

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/message_syn/index.html b/docs/v2/user-manual/sys-configuration/message_syn/index.html index 44cbc713..c5ca0eb5 100644 --- a/docs/v2/user-manual/sys-configuration/message_syn/index.html +++ b/docs/v2/user-manual/sys-configuration/message_syn/index.html @@ -4,7 +4,7 @@ 消息推送 | SQLE 文档 - + @@ -18,7 +18,7 @@ example
    4. 当t1审核通过后,成员admin作为待上线人, admin手机号绑定的飞书账号下,收到一则待上线的工单通知; example
    5. 当admin上线成功后,工单创建人将收到一则工单上线成功的消息; example
    6. 根据以上示例,用户可了解飞书消息推送的部分场景。

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/process_syn/index.html b/docs/v2/user-manual/sys-configuration/process_syn/index.html index 6f5eb92c..95e2df28 100644 --- a/docs/v2/user-manual/sys-configuration/process_syn/index.html +++ b/docs/v2/user-manual/sys-configuration/process_syn/index.html @@ -4,7 +4,7 @@ 流程对接 | SQLE 文档 - + @@ -18,7 +18,7 @@ dingding-telconfig

      打开全局配置,配置SQLE的URL地址,配置URL地址后,用户可从钉钉跳转访问SQLE工单详情页面; globalurl

      4.利用钉钉进行审批

      当发生工单变化时,工单关联成员可在对应钉钉账号中收到通知,并进行相应的审批操作; dingding-flow

      - + \ No newline at end of file diff --git a/docs/v2/user-manual/sys-configuration/webhook/index.html b/docs/v2/user-manual/sys-configuration/webhook/index.html index 63216027..2df51e73 100644 --- a/docs/v2/user-manual/sys-configuration/webhook/index.html +++ b/docs/v2/user-manual/sys-configuration/webhook/index.html @@ -4,14 +4,14 @@ webhook配置 | SQLE 文档 - +
      版本:v2

      webhook配置

      Webhook是用户定义的自定义HTTP回调。它们通常由事件触发,例如SQLE中存在工单状态的变化,则会自动向用户配置的webhook URL发送HTTP请求。

      使用场景

      当用户配置了自定义API服务,想要在API服务中实时获取工单执行状态时,可在系统设置中配置webhook服务。在SQLE中配置回调地址后,工单状态一旦发生变更,即可在API服务中获取状态通知信息,无需定时登录SQLE平台以查询结果。

      提示

      当前会触发通知的事件有:

      • 有新工单被创建
      • 工单审核被通过
      • 工单审核被驳回
      • 工单被成功上线
      • 工单上线失败

      前置操作

      用户需在使用的API服务中生成用于接收回调通知的webhook url。

      备注

      当前webhook url仅支持http格式。

      操作步骤

      1. 以平台管理员账号登录, 进入系统设置-消息推送,选择webhook配置,并点击修改;
      2. 选择启用webhook;
      3. 填写webhook url:用于工单消息推送的 API 地址;
      4. 填写最大重试次数:默认3次,取值范围0-5。如果推送存在失败,每一个事件请求将最多连续3次执行推送,如3次都失败,则不再推送本次事件;
      5. 填写重试间隔:默认1秒,取值范围1-5。如果推送存在失败,重试时将以1s的时间间隔进行重试;
      6. 填写Token:云服务在发送通知时使用的访问令牌,参考规范:https://datatracker.ietf.org/doc/html/rfc6750;
      7. 提交保存配置;

      后续步骤

      用户点击“测试”,如配置正确,能在API服务端收到正确的调用测试信息: "This is a SQLE test notification\nIf you receive this message, it only means that the message can be pushed".

      接口文档

      SQLE POST 请求格式
      POST / HTTP/1.1
      Host: 192.168.21.34:8000
      Accept-Encoding: gzip
      Authorization: Bearer test123
      Content-Length: 239
      User-Agent: Go-http-client/1.1

      {"event":"workflow","action":"create","timestamp":"2023-05-18T15:45:25+08:00","payload":{"workflow":{"project_name":"test_project","workflow_id":"1658637666259832832","workflow_subject":"test_workflow","workflow_status":"wait_for_audit"}}}
      • "event":当前取值恒为 "workflow"(目前SQLE只支持工单通知);
      • "action":可能的取值有 ["create", "approve", "reject", "exec_success", "exec_failed"]。分别对应「工单创建」、「审核通过」、「审核驳回」、「上线成功」、「上线失败」;
      • "timestamp":表示请求发出的时间,RFC3339 格式;
      • "payload":表示该请求的主要业务内容,目前仅支持工单;
      • "workflow":表示该工单的当前信息,与 sqle 后端数据库中记录保持一致;

      注意事项

      • 用户配置的 token 会被放置在请求 Header 中的 Authorization 字段。参考规范:https://datatracker.ietf.org/doc/html/rfc6750 。SQLE对token字段没有任何限制。需要接受端根据自身情况决定是否使用 token;
      • 接收请求的服务端在收到请求后,需要返回 200 响应。否则 sqle 会打印返回 body 中的文本信息。
      • 在发送测试请求时,请确保接收请求的服务端运行正常。否则可能出现如下问题:
      {
      "code": 0,
      "message": "ok",
      "data": {
      "send_error_message": "Post \"http://192.168.21.34:8000\": dial tcp 192.168.21.34:8000: connect: connection refused"
      }
      }
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/user-manager/intro/index.html b/docs/v2/user-manual/user-manager/intro/index.html index 533702dc..775b1306 100644 --- a/docs/v2/user-manual/user-manager/intro/index.html +++ b/docs/v2/user-manual/user-manager/intro/index.html @@ -4,13 +4,13 @@ 功能说明 | SQLE 文档 - +
      版本:v2

      功能说明

      用户中心包含用户管理、用户组管理及角色管理三个方面,由平台管理员操作,涉及用户、用户组的管理及角色权限的配置。

      • 用户管理:指平台用户的管理,由管理员创建用户或编辑用户基本信息,可参考用户管理
      • 用户组管理:当需要对一批用户赋予同样权限时,可由管理员创建用户组,将这批用户统一绑定至该用户组下,即可进行统一授权,可参考用户组管理
      • 角色管理:SQLE平台使用角色管理来实现操作权限组合,由管理员创建,可参考角色管理

      使用场景

      • 在添加项目成员、成员组之前,需要由管理员首先创建平台用户、用户组,项目管理员才可将该用户、用户组添加为项目成员、成员组
      • 为项目成员绑定数据源与角色操作权限前,需要由管理员创建相应权限的角色模板,项目管理员可为成员绑定配置的角色模板
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/user-manager/role/index.html b/docs/v2/user-manual/user-manager/role/index.html index 3acbd263..c020db51 100644 --- a/docs/v2/user-manual/user-manager/role/index.html +++ b/docs/v2/user-manual/user-manager/role/index.html @@ -4,14 +4,14 @@ 角色管理 | SQLE 文档 - +
      版本:v2

      角色管理

      当需要为用户设置动作权限时,可使用角色管理配置动作组合。 如用户需要有创建工单、审核工单、SQL查询的动作权限,管理员可以在角色管理创建一个角色,并绑定创建工单、审核工单、SQL查询这三个动作,随后只需将此角色关联至指定成员,即可完成用户的动作权限设置。

      操作步骤

      • 点击顶部导航栏【更多】按钮,点击平台管理栏目下的【用户中心】选项,查看角色管理标签。
      • 点击列表右上角【创建角色】按钮,填写相关信息
        • 角色名
        • 角色描述
        • 选择动作权限:配置该角色所拥有的操作权限,SQLE平台支持的动作权限如下:
      权限名权限码权限说明
      查看他人工单20100当角色拥有该动作权限时,角色可以查看绑定的数据源上其他用户创建的工单
      创建/编辑工单20200当角色拥有该动作权限时,角色可以在绑定的数据源上创建工单
      工单审批20300当审核流程模版中的某个审核步骤指定为允许所有有权限的用户审批时, 拥有此权限的用户将可以审批对应工单
      审核任务查看30100拥有此权限的用户可以查看所有审核任务, 无此权限的用户只能查看自己创建审核任务
      审核任务创建30200拥有此权限的用户可以创建审核任务
      sql查询40100拥有此权限的用户可以上线工单

      执行结果

      可在角色列表查看创建的角色信息

      role

      后续步骤

      • 添加成员/成员组:项目管理员在项目中添加成员/成员组时,需要绑定成员/成员组在对应数据源上的角色权限,可参考成员/成员组管理

      更多操作

      • 编辑角色:点击角色列表的「编辑」按钮,编辑角色信息。角色名不可更改,可设置角色禁用,则对应权限不会生效。
      • 删除角色:点击角色列表的「删除」按钮,删除角色信息
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/user-manager/user-group/index.html b/docs/v2/user-manual/user-manager/user-group/index.html index c104a7bf..4be66ee7 100644 --- a/docs/v2/user-manual/user-manager/user-group/index.html +++ b/docs/v2/user-manual/user-manager/user-group/index.html @@ -4,14 +4,14 @@ 用户组管理 | SQLE 文档 - +
      版本:v2

      用户组管理

      当管理员需要批量管理用户时,可以使用用户组来管理多个相同属性的用户。 比如依照「运维工程师」、「研发工程师」、「项目管理员」进行分别授权与管理。

      操作步骤

      • 点击顶部导航栏【更多】按钮,点击平台管理栏目下的【用户中心】选项,查看用户组管理标签。
      • 点击列表右上角【创建用户组】按钮,填写用户组相关信息
        • 用户组名:必填
        • 用户组描述
        • 绑定用户

      执行结果

      可在用户组列表中查看已创建的用户组列表 usergroup

      后续步骤

      • 添加项目成员组:项目管理员可进入指定项目,将创建的用户组添加为项目成员组,可参考成员/成员组管理

      更多操作

      • 编辑用户组:用户组名不可修改,其他均可修改。
        • 可设置禁用该用户组,当一个用户组被禁用,用户不会被禁用,但会失去该用户组所关联的数据源及对应角色权限。
      • 删除用户组:点击用户组列表的「删除」按钮,删除用户组信息
      - + \ No newline at end of file diff --git a/docs/v2/user-manual/user-manager/user/index.html b/docs/v2/user-manual/user-manager/user/index.html index 652946a8..813a8f00 100644 --- a/docs/v2/user-manual/user-manager/user/index.html +++ b/docs/v2/user-manual/user-manager/user/index.html @@ -4,13 +4,13 @@ 用户管理 | SQLE 文档 - +
      版本:v2

      用户管理

      当需要创建新的用户,或需要由管理员修改用户基本信息时,可以进行用户管理的相关操作。

      操作步骤

      • 点击顶部导航栏【更多】按钮,点击平台管理栏目下的【用户中心】选项,查看用户管理标签。
      • 点击列表右上角【创建用户】按钮,填写用户相关信息
        • 用户名
        • 密码
        • 确认密码
        • 邮箱:若开启邮件推送或飞书推送服务,则将会以邮件形式通知对应用户工单的流转状态
        • 微信id:若开启企业微信推送服务,则将通过企业微信通知对应用户工单的流转状态
        • 平台管理权限:当前可选项为创建项目,若选择该权限,则该用户将具有创建项目的权限
        • 所属用户组:可将用户关联至已创建的用户组中, 如当前还未创建用户组,可以在创建用户组后,通过编辑用户信息修改所属的用户组。
      • 点击提交,完成用户创建

      执行结果

      创建成功后,可在用户列表中查看已创建的用户信息

      userlist

      后续步骤

      • 创建用户组:创建用户后,可将多个用户绑定在一个用户组中,可参考用户组管理
      • 添加项目成员:项目管理员可进入指定项目,将创建的用户添加为项目成员,可参考成员/成员组管理

      更多操作

      • 编辑用户:点击用户列表的「编辑」按钮,编辑用户信息。其中,用户名不可更改,其他信息项均可更改。
      • 删除用户:点击用户列表的「删除」按钮,删除用户。
      • 修改用户密码:点击用户列表的「更多」按钮,下拉菜单中点击「更修改该用户密码」。
        提示

        管理员还可以对指定的用户进行「禁用」或者「启用」。 当用户被管理员禁用后,该用户将无法登录,也无法进行任何操作。 管理员用户永远无法禁用自己本身。

      - + \ No newline at end of file diff --git a/index.html b/index.html index 342af7fd..c6992341 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ 首页 | SQLE 文档 - +
      Docusaurus with Keytar

      一个支持多种不同类型数据库,覆盖事前控制、事后监督、标准发布场景,帮助您建立质量规范的SQL全生命周期质量管理平台。每周发版,快速迭代中。

      快速开始

      更丰富的数据源支持

      1. 支持十余种主流商业和开源数据库
      2. 持续支持新的数据源类型,以满足您不同的需求

      更全面的审核规则

      1. 拥有规则 700+,并持续增加中
      2. 源自DBA运维专家团队多年的技术积累

      更智能的 SQL 采集

      1. 提供多种智能扫描任务
      2. 满足事前和事后 SQL 持续采集需求

      更高效的审批路径

      1. 提供标准化工作流
      2. 通过消息对接,及时了解更新进度

      更便捷的数据操作

      1. 集成在线数据库客户端 CloudBeaver
      2. 通过可视化界面进行数据库管理和查询

      全生命周期SQL管控

      1. 提供 SQL 全流程的管控视角
      2. 追踪问题SQL的解决进度

      - + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 53d3e0c2..644d6e68 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -4,13 +4,13 @@ Markdown page example | SQLE 文档 - + - + \ No newline at end of file diff --git a/search/index.html b/search/index.html index 5c219ce0..4eb3a4e8 100644 --- a/search/index.html +++ b/search/index.html @@ -4,13 +4,13 @@ 在文档中搜索 | SQLE 文档 - + - + \ No newline at end of file