概述
权限是访问控制的关键机制,可用来控制用户在图数据库上的操作权限。对查询、更新或管理数据库等特定操作设置访问限制,能够加强系统安全性。可将一组权限分配给一个角色,然后将该角色分配给用户。也可将单独的权限直接分配给用户。
嬴图支持的权限类型:
- 图权限:包括操作和读取特定图的数据及其结构,管理图的索引、作业、HDC图集等操作。
- 系统权限:括管理数据库的图、进程、权限、角色、用户、服务器等操作。
- 属性权限:包括应用于特定属性的
read
、write
和deny
操作。
所有权限
图权限
权限 |
描述 | GQL |
---|---|---|
READ |
读取图中的数据 | MATCH |
INSERT |
向图中插入点和边 | INSERT |
UPSERT |
为图更新或插入点和边 | INSERT |
UPDATE |
更新图中的点和边 | SET |
DELETE |
删除图中的点和边 | DELETE |
CREATE_SCHEMA |
在图中创建schema | ALTER GRAPH <graphName> ADD <NODE | EDGE> ,以及使用CRETAE GRAPH 时创建schema |
DROP_SCHEMA |
删除图中的schema | ALTER GRAPH <graphName> DROP <NODE | EDGE> |
ALTER_SCHEMA |
修改图中的schema | / |
SHOW_SCHEMA |
显示图中的schema | SHOW <NODE | EDGE> SCHEMA |
RELOAD_SCHEMA |
重新加载图中点和边的总数 | / |
CREATE_PROPERTY |
在图中创建属性 | ALTER <NODE | EDGE> <schemaName> ADD PROPERTY ,以及使用CRETAE GRAPH 时创建属性 |
DROP_PROPERTY |
删除图中的属性 | ALTER <NODE | EDGE> <schemaName> DROP PROPERTY |
ALTER_PROPERTY |
修改图中的属性 | / |
SHOW_PROPERTY |
显示图中的属性 | SHOW <NODE | EDGE> <propertyName> PROPERTY |
CREATE_FULLTEXT |
在图中创建全文索引 | CREATE FULLTEXT |
DROP_FULLTEXT |
删除图中的全文索引 | DROP <NODE | EDGE> FULLTEXT |
SHOW_FULLTEXT |
显示图中的全文索引 | SHOW <NODE | EDGE> FULLTEXT |
CREATE_VECTOR_INDEX |
在图中创建向量索引 | CREATE VECTOR INDEX |
DROP_VECTOR_INDEX |
删除图中的向量索引 | DROP <NODE | EDGE > VECTOR INDEX |
SHOW_VECTOR_INDEX |
显示图中的向量索引 | SHOW <NODE |EDGE > VECTOR INDEX |
CREATE_INDEX |
在图中创建索引 | CREATE INDEX |
DROP_INDEX |
删除图中的索引 | DROP <NODE | EDGE> INDEX |
SHOW_INDEX |
显示图中的索引 | SHOW <NODE | EDGE>INDEX |
LTE |
将磁盘上的属性加载到计算引擎中 | LTE().node_property() , LTE().edge_property() |
UFE |
将属性从计算引擎卸载 | UFE().node_property() , UFE().edge_property() |
CLEAR_JOB |
清除图中的作业 | DELETE JOB |
STOP_JOB |
结束图中的作业 | STOP JOB |
SHOW_JOB |
显示图中的作业 | SHOW JOB |
ALGO |
在图上执行算法 | CALL algo... |
CREATE_PROJECT |
为图创建分布式投影 | / |
SHOW_PROJECT |
显示图的分布式投影 | / |
DROP_PROJECT |
删除图的分布式投影 | / |
CREATE_HDC_GRAPH |
创建HDC图 | CALL hdc.graph.create() |
SHOW_HDC_GRAPH |
显示HDC图 | CALL hdc.graph.show() |
DROP_HDC_GRAPH |
删除HDC图 | CALL hdc.graph.drop() |
COMPACT_HDC_GRAPH |
压缩HDC图 | CALL hdc.graph.compact() |
SHOW_CONSTRAINT |
显示图中的约束 | SHOW <NODE | EDGE> CONSTRAINT |
CREATE_CONSTRAINT |
在图中创建约束 | ALTER <NODE | EDGE> <schemaName> ADD CONSTRAINT |
DROP_CONSTRAINT |
删除图中的约束 | ALTER <NODE | EDGE> <schemaName> DROP CONSTRAINT |
系统权限
权限 |
描述 | GQL |
---|---|---|
TRUNCATE |
清空数据库中的图 | / |
COMPACT |
压缩数据库中的图 | / |
CREATE_GRAPH |
在数据库中创建图 | CREATE GRAPH |
SHOW_GRAPH |
显示数据库中的图 | SHOW GRAPH |
DROP_GRAPH |
删除数据库中的图 | DROP GRAPH |
ALTER_GRAPH |
修改数据库中的图 | / |
TOP |
显示数据库中的进程 | / |
KILL |
结束数据库中的进程 | / |
STAT |
显示数据库的统计信息 | / |
SHOW_POLICY |
显示数据库中的策略 | SHOW ROLE |
CREATE_POLICY |
在数据库中创建策略 | CREATE ROLE |
DROP_POLICY |
删除数据库中的策略 | DROP ROLE |
ALTER_POLICY |
修改数据库中的策略 | ALTER ROLE |
SHOW_USER |
显示数据库中的用户 | SHOW USER |
CREATE_USER |
在数据库中创建用户 | CREATE USER |
DROP_USER |
删除数据库中的用户 | DROP USER |
ALTER_USER |
修改数据库中的用户信息 | ALTER USER |
GRANT |
向策略或用户追加权限和策略 | / |
REVOKE |
从策略或用户撤销权限和策略 | / |
SHOW_PRIVILEGE |
显示数据库中的权限 | / |
SHOW_META |
显示数据库的meta服务器 | / |
SHOW_SHARD |
显示数据库的shard服务器 | / |
ADD_SHARD |
向数据库添加shard服务器 | / |
REPLACE_SHARD |
修改shard服务器的副本地址 | / |
DELETE_SHARD |
从数据库删除shard服务器 | / |
SHOW_HDC_SERVER |
显示数据库的HDC服务器 | / |
ADD_HDC_SERVER |
向数据库添加HDC服务器 | / |
DELETE_HDC_SERVER |
从数据库删除HDC服务器 | / |
SHOW_VECTOR_SERVER |
显示数据库的向量服务器 | SHOW VECTOR SERVER |
ADD_VECTOR_SERVER |
向数据库添加向量服务器 | ADD VECTOR SERVER |
DELETE_VECTOR_SERVER |
从数据库删除向量服务器 | DELETE VECTOR SERVER |
LICENSE_UPDATE |
更新数据库的许可证 | / |
LICENSE_DUMP |
删除数据库的许可证 | / |
SHOW_BACKUP |
显示数据库备份 | / |
CREATE_BACKUP |
创建数据库备份 | / |
属性权限
权限 |
描述 |
---|---|
read |
允许读取图中的指定属性 |
write |
同时允许读取和写入图中的指定属性 |
deny |
拒绝读取或写入图中的指定属性。deny 的优先级高于read 和write 。若同时向用户或策略分配deny 和read (或write ),则只有deny 权限生效 |
read
如果未获得对user
点属性name
的read
权限:
操作 |
示例 |
---|---|
返回属性信息 | MATCH (n:user) RETURN n 查询结果将排除 name 属性MATCH (n:user) RETURN n.name 由于无权读取 name 属性,查询将报错 |
过滤属性 | MATCH (n:user {name: "johndoe"}) RETURN n 由于无权读取 name 属性,查询将报错 |
导出 | 无法导出无权读取的属性 |
write
如果未获得对user
点属性name
的write
权限:
操作 |
示例 |
---|---|
插入 | INSERT (:user {_id: "U873", name:"johndoe"}) 由于无权写入 name 属性,查询将报错 |
更新 | MATCH (n:user {_id: "U873"}) SET n.name = "johndoe" 由于无权写入 name 属性,查询将报错 |
删除 | 即使未获得写入权限,只要拥有图权限DELETE 和DROP_PROPERTY ,即可删除属性、点或边 |