---
title: 数据权限
source: https://vjmap.com/guide/mappower.html
---

# 数据权限

# 唯杰地图之前端CAD图GIS数据访问权限配置

   数字经济时代，数据要素的价值日益凸显，与之相应的，数据安全问题也越来越受到重视。[唯杰地图](https://vjmap.com/) VJMAP为`CAD`图或`自定义地图格式`WebGIS`可视化`显示开发提供的一站式解决方案，支持的格式如常用的`AutoCAD`的`DWG`格式文件、`GeoJSON`等常用`GIS`文件格式，它使用WebGL`矢量图块`和`栅格瓦片`呈现交互式地图, 实现了`CAD`与`GIS`完美结合, 实现了对CAD图纸的上传、打开、版本管理、属性查询、图层开关、批注、数据展示、互联网地图叠加、绘图等功能。那么怎么样配置才能保证前端CAD图GIS数据访问的安全呢？

# 后台RBAC权限管理

唯杰地图后台采用的是RBAC权限管理。

基于角色的访问控制（Role-based access control，简称 RBAC），指的是通过用户的角色（Role）赋予其相关权限，这实现了细粒度的访问控制，并提供了一个相比直接授予单个用户权限，更简单、可控的管理方式。

不同的token代表了不同的角色权限。

默认的角色有`root`、`admin`、`guest`

`root`具有最高权限；`admin`权限不能删除sys_开头的系统图形、不能进行切片等，其他功能同`root`权限; `guest`只有访问权限。

可以在后台设置不同角色的权限来实现，然后不同的token来实现对数据的安全问题。

后台可以对整个系统的权限进行分配和设置，而用户自己在前端上传图形，也可以通过设置`图形隐藏`和`图形密码`来实现数据安全。

# 图形隐藏

操作步骤

(1) 上传图形

通过 [唯杰地图云端图纸管理平台](https://vjmap.com/app/cloud)提供的[上传图形](https://vjmap.com/demo/#/demo/map/service/06uploadmap)

![image-20220306184355126](https://vjmap.com/blogimages/image-20220306184355126.png)

(2) 上传成功后，取个图名称ID
在这里如果要设置图形隐藏，需要图名称取名为需要以`ns_`开头, 这样图打开后在图形列表中将自动隐藏，其他用户看不到。需访问此图时可直接输入图形ID来进行访问。

![image-20220922205903801](https://vjmap.com/blogimages/image-20220922205903801.png)

# 图形密码

上面的图形隐藏下次打开时略显麻烦，这时候也可以设置图形的密码，才实现对数据安全的保护。操作为在上传图形后设置`打开图需要密码`

![image-20220922210141493](https://vjmap.com/blogimages/image-20220922210141493.png)

上传成功后，图形列表里会对设置密码保护的图上面加一个`锁`的符号。点击图形打开时，需要输入密码才能访问此图形了。

![image-20220922210311904](https://vjmap.com/blogimages/image-20220922210311904.png)

![image-20220922210358967](https://vjmap.com/blogimages/image-20220922210358967.png)



在这里说下图形密码访问权限的机制。

superKey: 此权限为超级权限，在后台进行设置。superKey可以用重置所有图的密码，或对图进行设置密码或取消密码，拥有访问所有图的权限。

secretKey: 此权限拥有对某个图的所有权限。secretKey是根据用户上传图形时设置的密码而来。如对某个图进行了密码`123456`，那么可通过`vjmap.Service`中的方法`pwdToSecretKey('123456')`把密码明码转成秘钥。此secretKey只对当前设置密码的图有效。用户不要保存和分发，通过输入`密码`获取此值即可。

accessKey: 此权限拥有对某个图的访问权限。accessKey是根据serectKey和一个随机的salt生成而来。和secretKey类似，accessKey能打开此有密码的图形，和secretKey不同的是，他无法对此图进行管理，如`删除图形`、`重命名`、`删除版本`等操作。此accessKey可进行分发。如不想每次打开图时弹出输入框，可通过设置`vjmap.Service`中的方法addAccessKey，如svc.addAccessKey("akxxxxxxxxxxxxxxxx")，这样在打开图时会自动判断此key，如果验证通过就不会弹出密码输入框。 

权限大小比较 superKey(所有图最多权限) > secretKey(一个图的最高权限) > accessKey(一个图的访问权限)

可通过superKey重置密码secretKey或accessKey;

可通过secretKey重置或获取accessKey;

点击`操作`菜单 ,可进行密码设置，获取accessKey等操作。

![image-20220922212044224](https://vjmap.com/blogimages/image-20220922212044224.png)

另外，如果不同的图可能有不同的key,如果想要实现打开这些图时不用每次输入密码，可以设置中设置accessKey的值，此值可以是superKey或每个图的accessKey，如多个时用逗号;分开保存即可。

![image-20220922213310885](https://vjmap.com/blogimages/image-20220922213310885.png)

# 总结

通过上面的设置，基于后台和前端用户的设置，我们可以实现对CAD图GIS数据访问的安全。因为[唯杰地图](https://vjmap.com/) https://vjmap.com 只是一个地图开发平台，没有对用户名、密码进行封装，官网示例中为了方便用户进行试用，示例中没有加入用户登录功能；实际项目中，开发者可结合自己的用户权限系统，实现用户登录功能。
