MySQL ROLES_GRAPHML() 函数使用指南

MySQL ROLES_GRAPHML() 函数返回一个表示内存角色子图的 GraphML 文档的字符串。

ROLES_GRAPHML() 语法

这里是 MySQL ROLES_GRAPHML() 函数的语法:

ROLES_GRAPHML()

参数

MySQL ROLES_GRAPHML() 函数不需要任何参数。

返回值

ROLES_GRAPHML() 函数返回一个 utf8 字符串,其中包含表示内存角色子图的 GraphML 文档。

ROLES_GRAPHML() 函数需要 ROLE_ADMIN 权限,否则只返回一个空的 <graphml> 元素。

ROLES_GRAPHML() 示例

首先,请使用 root 用户登录 MySQL 服务器,然后运行下面的语句:

SELECT ROLES_GRAPHML();
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
  <key id="key0" for="edge" attr.name="color" attr.type="int" />
  <key id="key1" for="node" attr.name="name" attr.type="string" />
  <graph id="G" edgedefault="directed" parse.nodeids="canonical" parse.edgeids="canonical" parse.order="nodesfirst">
    <node id="n0">
      <data key="key1">`mysql.infoschema`@`localhost`</data>
    </node>
    <node id="n1">
      <data key="key1">`mysql.session`@`localhost`</data>
    </node>
    <node id="n2">
      <data key="key1">`mysql.sys`@`localhost`</data>
    </node>
    <node id="n3">
      <data key="key1">`root`@`localhost`</data>
    </node>
    <node id="n4">
      <data key="key1">`root`@`%`</data>
    </node>
    <node id="n5">
      <data key="key1">`testuser`@`%`</data>
    </node>
    <node id="n6">
      <data key="key1">`test_role1`@`%`</data>
    </node>
    <node id="n7">
      <data key="key1">`test_role2`@`%`</data>
    </node>
    <edge id="e0" source="n5" target="n6">
      <data key="key0">0</data>
    </edge>
    <edge id="e1" source="n5" target="n7">
      <data key="key0">0</data>
    </edge>
  </graph>
</graphml>

这里,为了显示整洁,我们只列出了输出的 xml 文档内容。注意,您的值可能有所不同。

然后,使用在 CURRENT_ROLE() 函数章节创建的用户 testuser 登入 MySQL 服务器,然后运行下面的语句:

SELECT ROLES_GRAPHML();
+---------------------------------------------------+
| ROLES_GRAPHML()                                   |
+---------------------------------------------------+
| <?xml version="1.0" encoding="UTF-8"?><graphml /> |
+---------------------------------------------------+

这里,因为用户 testuser 没有 ROLE_ADMIN 权限,故 ROLES_GRAPHML() 函数输出了空的 <graphml /> 元素。