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 />
元素。