[TOC] # GRANT ## 描述 该语句用于系统管理员授予 User 某些权限。 **说明** * 当前用户必须拥有被授予的权限(例如,user1 把表 t1 的 SELECT 权限授予 user2,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION 权限,才能授予成功。 * 用户授权后,该用户只有重新连接OceanBase,权限才能生效。 ## 格式 ~~~ GRANT priv_type     ON priv_level     TO user_specification [, user_specification]... [WITH with_option ...] privilege_type: ALTER | CREATE | CREATE USER | CREATE VIEW | DELETE | DROP | GRANT OPTION | INDEX | INSERT | PROCESS | SELECT | SHOW DATABASES | SHOW VIEW | SUPER | UPDATE | USAGE | CREATE SYNONYM priv_level: * | *.* | db_name.* | db_name.tbl_name | tbl_name | db_name.rountine_name user_specification: user [IDENTIFIED BY [PASSWORD] ‘password’] with_option: GRANT OPTION ~~~ ## 参数解释 <table data-tag="table" id="table-yso-ic2-0rs" class="table"><colgroup width="320" span="1" data-tag="col" id="col-4es-4cr-mw1" colwidth="1*" colnum="1" colname="col1" style="width:50%" class="col"></colgroup><colgroup width="402" span="1" data-tag="col" id="col-v1i-qe3-2k8" colwidth="1*" colnum="2" colname="col2" style="width:50%" class="col"></colgroup><thead id="thead-i8s-1e4-9wx" class="thead"><tr id="tr-dpi-pvv-gr2"><th id="td-ep5-v4f-uhl"><p id="p-bnd-phl-db8"><b>参数</b></p></th><th id="td-xir-zul-u4c"><p id="p-vwl-gzz-3fv"><b>描述</b></p></th></tr></thead><tbody data-tag="tbody" id="tbody-v9x-ohi-752" class="tbody"><tr data-tag="tr" id="tr-39a-je6-coc" class="tr"><td data-tag="td" id="td-e1z-qhb-rve" class="td"><p data-tag="p" id="p-kvj-b53-ex6" class="p">priv_type</p></td><td data-tag="td" id="td-hoe-nlx-d56" class="td"><p data-tag="p" id="p-zqc-4dz-zs7" class="p">指定授予的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。</p><p data-tag="p" id="p-vny-4bx-bec" class="p">同时把多个权限赋予用户时,权限类型用“,”隔开。</p></td></tr><tr data-tag="tr" id="tr-6ds-397-a72" class="tr"><td data-tag="td" id="td-bkz-x0d-uku" class="td"><p data-tag="p" id="p-brw-usx-8at" class="p">priv_level </p></td><td data-tag="td" id="td-129-0i1-xlq" class="td"><p data-tag="p" id="p-imh-hji-ab0" class="p">指定授予权限的层级。权限可以分为以下几个层级:</p><ul lake-indent="0" data-tag="ul" id="ul-kwb-z9j-mbj" class="ul"><li data-tag="li" id="li-0ue-a26-p5m" class="li"><p id="p-uek-zc6-i83">全局层级:适用于所有的数据库。使用 GRANT ALL ON *.*授予全局权限。</p></li><li data-tag="li" id="li-ygn-ct4-1by" class="li"><p id="p-9ne-uy5-smx">数据库层级:适用于一个给定数据库中的所有目标。使用 GRANT ALL ON db_name.* 授予数据库权限。</p></li><li data-tag="li" id="li-hxh-t5v-aky" class="li"><p id="p-c6u-39r-4ix">表层级:表权限适用于一个给定表中的所有列。使用 GRANT ALL ON db_name.tbl_name 授予表权限。</p></li></ul><p data-tag="p" id="p-s44-oxu-626" class="p">用“*”代替table_name,表示赋予全局权限,即对数据库中的所有表赋权。</p></td></tr><tr data-tag="tr" id="tr-qoe-8of-hqn" class="tr"><td data-tag="td" id="td-iqg-xs0-h1p" class="td"><p id="p-cfe-2ct-7r0">user_specification</p></td><td data-tag="td" id="td-35h-q9p-fqf" class="td"><p data-tag="p" id="p-lt0-eqi-b3g" class="p">给特定用户授予权限。如果用户不存在,可以直接创建用户。</p><p data-tag="p" id="p-b0u-h0w-wat" class="p">sql_mode=’no_auto_create_user’,同时没有identified by 指定密码时,不可以直接创建用户。 </p><p data-tag="p" id="p-obe-qur-p2s" class="p">同时给多个用户授权时,用户名用“,”隔开。</p></td></tr><tr data-tag="tr" id="tr-va3-2sn-28u" class="tr"><td data-tag="td" id="td-4xi-qux-emf" class="td"><p data-tag="p" id="p-vjq-lv5-39h" class="p">user IDENTIFIED BY ‘password’</p></td><td data-tag="td" id="td-039-6r6-jxz" class="td"><p data-tag="p" id="p-ryy-tia-f0d" class="p">此处密码为明文。</p></td></tr><tr data-tag="tr" id="tr-elo-qad-rdq" class="tr"><td data-tag="td" id="td-94s-krh-j6v" class="td"><p data-tag="p" id="p-6r7-r3l-2sd" class="p">user IDENTIFIED BY PASSWORD ‘password’</p></td><td data-tag="td" id="td-85h-elk-7b5" class="td"><p data-tag="p" id="p-11f-eqo-yao" class="p">此处密码为密文。</p></td></tr><tr data-tag="tr" id="tr-tiv-zgo-b47" class="tr"><td data-tag="td" id="td-mty-ghp-70e" class="td"><p data-tag="p" id="p-nfr-53b-5go" class="p">with_option</p></td><td data-tag="td" id="td-yby-tho-f25" class="td"><p data-tag="p" id="p-rwg-79g-4ks" class="p">指定权限是否允许转授</p></td></tr></tbody></table> 可以授予的权限类型如下表所示。 **权限类型说明表** <table data-tag="table" id="table-zlf-fiy-kqm" class="table"><colgroup span="1" width="204" data-tag="col" id="col-afj-vmb-i54" colwidth="1*" colnum="1" colname="col1" style="width:50%" class="col"></colgroup><colgroup span="1" width="374" data-tag="col" id="col-yxs-hic-b1j" colwidth="1*" colnum="2" colname="col2" style="width:50%" class="col"></colgroup><thead id="thead-8oj-s44-z50" class="thead"><tr id="tr-3px-mcw-4dl"><th id="td-eo6-2oh-49e"><p id="p-nsb-gnk-25h"><b>权限</b></p></th><th id="td-jk5-g6w-9on"><p id="p-qxv-zx1-1tj"><b>说明</b></p></th></tr></thead><tbody data-tag="tbody" id="tbody-ifb-mha-jux" class="tbody"><tr data-tag="tr" id="tr-bis-z9c-z3q" class="tr"><td data-tag="td" id="td-d9x-xlv-ibe" class="td"><p data-tag="p" id="p-lya-58j-65c" class="p">ALL PRIVILEGES</p></td><td data-tag="td" id="td-s23-wd7-qts" class="td"><p data-tag="p" id="p-o0o-tmn-xxm" class="p">除GRANT OPTION以外所有权限。</p></td></tr><tr data-tag="tr" id="tr-lp6-udn-zfp" class="tr"><td data-tag="td" id="td-uzx-69o-nxc" class="td"><p data-tag="p" id="p-e40-630-rz0" class="p">ALTER</p></td><td data-tag="td" id="td-ath-zus-x61" class="td"><p data-tag="p" id="p-lo3-545-418" class="p">ALTER TABLE的权限。</p></td></tr><tr data-tag="tr" id="tr-by7-kso-dc3" class="tr"><td data-tag="td" id="td-t1l-rci-tpt" class="td"><p data-tag="p" id="p-weo-ewm-du2" class="p">CREATE</p></td><td data-tag="td" id="td-18p-not-yrr" class="td"><p data-tag="p" id="p-s3s-2u1-o8d" class="p">CREATE TABLE的权限。</p></td></tr><tr data-tag="tr" id="tr-2h6-9sl-l73" class="tr"><td data-tag="td" id="td-9bw-pq1-fok" class="td"><p data-tag="p" id="p-d1z-18j-fbw" class="p">CREATE USER</p></td><td data-tag="td" id="td-gr6-r3v-23g" class="td"><p data-tag="p" id="p-idc-81c-u3s" class="p">CREATE USER,DROP USER,RENAME USER和REVOKE ALL PRIVILEGES的权限。</p></td></tr><tr data-tag="tr" id="tr-iu4-yjf-06h" class="tr"><td data-tag="td" id="td-g77-nt0-fqb" class="td"><p data-tag="p" id="p-k3w-w31-kkw" class="p">CREATE TABLEGROUP</p></td><td data-tag="td" id="td-0rx-7bj-qfi" class="td"><p data-tag="p" id="p-p0n-3al-bmc" class="p">全局CREATE TABLEGROUP的权限。</p></td></tr><tr data-tag="tr" id="tr-pel-892-lvx" class="tr"><td data-tag="td" id="td-94b-fxu-5kc" class="td"><p data-tag="p" id="p-phg-5dt-soa" class="p">DELETE</p></td><td data-tag="td" id="td-z0c-jo5-8xw" class="td"><p data-tag="p" id="p-nr0-adk-qpt" class="p">DELETE的权限。</p></td></tr><tr data-tag="tr" id="tr-prk-m2d-zyg" class="tr"><td data-tag="td" id="td-5lu-ef0-8ot" class="td"><p data-tag="p" id="p-zdm-wnl-3f2" class="p">DROP</p></td><td data-tag="td" id="td-9cb-p4r-bm3" class="td"><p data-tag="p" id="p-i3l-a30-lb9" class="p">DROP的权限。</p></td></tr><tr data-tag="tr" id="tr-cw5-jak-d9o" class="tr"><td data-tag="td" id="td-vne-oat-bp5" class="td"><p data-tag="p" id="p-k4l-wy2-puw" class="p">GRANT OPTION</p></td><td data-tag="td" id="td-vtv-e5m-lhk" class="td"><p data-tag="p" id="p-nql-ud3-a2e" class="p">GRANT OPTION的权限。</p></td></tr><tr data-tag="tr" id="tr-m26-p1m-aph" class="tr"><td data-tag="td" id="td-z8z-yp5-o19" class="td"><p data-tag="p" id="p-4g6-xe6-pwx" class="p">INSERT</p></td><td data-tag="td" id="td-v1w-95t-b2r" class="td"><p data-tag="p" id="p-ppf-qf6-pl8" class="p">INSERT的权限。</p></td></tr><tr data-tag="tr" id="tr-3ae-g78-3y8" class="tr"><td data-tag="td" id="td-mqc-tvn-7ii" class="td"><p data-tag="p" id="p-pbh-t9q-v0q" class="p">SELECT</p></td><td data-tag="td" id="td-ksq-x1p-21t" class="td"><p data-tag="p" id="p-y3s-g5w-ke0" class="p">SELECT的权限。</p></td></tr><tr data-tag="tr" id="tr-y9h-53x-01f" class="tr"><td data-tag="td" id="td-nxu-k9x-vnx" class="td"><p data-tag="p" id="p-zkx-b40-ieh" class="p">UPDATE</p></td><td data-tag="td" id="td-bnx-64d-2tw" class="td"><p data-tag="p" id="p-c9c-tif-53i" class="p">UPDATE的权限。</p></td></tr><tr data-tag="tr" id="tr-v8t-tcg-61e" class="tr"><td data-tag="td" id="td-5en-lzl-5gt" class="td"><p data-tag="p" id="p-oe7-1vt-2v3" class="p">SUPER</p></td><td data-tag="td" id="td-yg9-25a-mcr" class="td"><p data-tag="p" id="p-q0h-sht-w99" class="p">SET GLOBAL修改全局系统参数的权限。</p></td></tr><tr data-tag="tr" id="tr-1ge-d3o-893" class="tr"><td data-tag="td" id="td-uo3-04p-osd" class="td"><p data-tag="p" id="p-ykx-pkg-t6t" class="p">SHOW DATABASES</p></td><td data-tag="td" id="td-emf-hru-2a5" class="td"><p data-tag="p" id="p-c0g-23h-dk5" class="p">全局 SHOW DATABASES的权限。</p></td></tr><tr data-tag="tr" id="tr-8dr-yka-xr3" class="tr"><td data-tag="td" id="td-y3d-1ly-rud" class="td"><p data-tag="p" id="p-7m0-nha-42m" class="p">INDEX</p></td><td data-tag="td" id="td-umk-qw2-j8f" class="td"><p data-tag="p" id="p-134-181-bso" class="p">CREATE INDEX, DROP INDEX的权限</p></td></tr><tr data-tag="tr" id="tr-k2u-2s5-66g" class="tr"><td data-tag="td" id="td-w4v-0o7-21i" class="td"><p data-tag="p" id="p-erm-8jc-wxh" class="p">CREATE VIEW</p></td><td data-tag="td" id="td-5h3-n8i-9rg" class="td"><p data-tag="p" id="p-dhr-g8t-5vt" class="p">创建、删除视图的权限。</p></td></tr><tr data-tag="tr" id="tr-wey-cel-ucb" class="tr"><td data-tag="td" id="td-xk8-rkg-uwa" class="td"><p data-tag="p" id="p-r80-c52-4oo" class="p">SHOW VIEW</p></td><td data-tag="td" id="td-wtv-v5d-dbi" class="td"><p data-tag="p" id="p-q46-aj0-vom" class="p">SHOW CREATE VIEW权限。</p></td></tr><tr data-tag="tr" id="tr-5rh-kw3-0ut" class="tr"><td data-tag="td" id="td-cqb-s9a-gkn" class="td"><p data-tag="p" id="p-ha5-agn-kfy" class="p">CREATE SYNONYM</p></td><td data-tag="td" id="td-uzc-8o7-djd" class="td"><p data-tag="p" id="p-9xu-809-lv0" class="p">创建同义词的权限。</p></td></tr></tbody></table> **说明** 目前没有 change effective tenant 的权限控制,故 sys 租户下的用户都可以进行授权。 ## 示例 * 执行以下命令给用户 obsqluser01 赋予所有权限。 ~~~ OceanBase(admin@TEST)>GRANT ALL PRIVILEGES ON *.* TO obsqluser01 with grant option; Query OK, 0 rows affected (0.03 sec) ~~~