询问系统,笔录只办案人员才有查看和编辑,哪怕是上一级也未必能够看到笔录,系统管理员也无权查看和删除,这种特殊场景,要如何才能解决权限问题?
![]() |
1
kk2syc 2 天前
没明白需要解决什么权限问题,锁定办案人员 uid 赋予查看/编辑的权限不就好了。
|
2
NoOneNoBody 2 天前
这个思路很简单:权限是独立隔离的,而不是层级的
|
![]() |
3
qping 2 天前 via iPhone
你描述了需求,很简单的需求,解决起来有什么问题呢
|
![]() |
4
beyondstars 2 天前
RBAC: Role-Based Access Control ,
Administrator 只是一个 account ,Administrator 没有 办案人员 的 role ,所以无权查看。笔录是 resources ,在系统的 ACL 里面,设置 (笔录,role: [办案人员])-> allow, default -> deny. |
![]() |
5
drupal OP |
![]() |
6
beyondstars 2 天前
|
![]() |
7
drupal OP 办案人员能看到所有的内容,其他人员看不到是谁处理的,全部脱敏
|
![]() |
8
drupal OP @beyondstars 谢谢兄弟,看完了。感觉这个笔录权限设置很难。也许只有纸面归档的方式是最稳妥的。
|
9
jworg 2 天前
@drupal 为啥会有这种奇怪的角色,数据库管理员或者系统管理员。涉密的数据都是应该物理隔离的,这两者要看也只能进断网有监控的小黑屋的电脑上看。其他管理操作都应该内联在管理模块上。
|
10
NoOneNoBody 2 天前
@drupal #5
你的数据库本身就要设计为分散的,增删改查都跟权限有关,管理员仅有备份权限,删除权限都没有 你这样想:权限赋予的标的不是人,而是事,而人还需要判断是否跟事有关才能获得权限 头痛的管理员的删除权限,没有删除权限他就难以管理了,实际上还是需要某个人有最高权限,而对他的限制,只能通过行政方式,而不是技术方式 |
11
laminux29 2 天前
笔录权限的设置,一点都不难。你的问题应该是,要不是你不会设置,要不就是你用的信息化系统太烂了,不支持完整的 RBAC 。
|
![]() |
12
hanxiV2EX 2 天前 via Android
数据加密存储?
|
![]() |
13
hymzhek 2 天前
在 Windows 系统中 user 用户使用 efs 加密的文件 Administrator 是看不了的. 是否可以参考这个机制
|
![]() |
14
drupal OP @NoOneNoBody 想法相同,这种事情,流程一定要正确,规则一定要符合要求。
@laminux29 权限设置不难,难得是要符合用户的流程规范。 @hanxiV2EX 不可行 @hymzhek 这个不太懂,回头再了解一下。 @jworg 你做一下 jiwei ,阿 Sir 涉密的内容,你就清楚了。 |
15
drymonfidelia 2 天前
@NoOneNoBody 每一条记录末尾都存储前一条完整记录(含 sha512 部分)的 sha512 这样只要删掉一个,后面的 hash 就全对不上了
|
16
NoOneNoBody 2 天前
@drymonfidelia #15
这个思路是事后吧,OP 这个权限的目的是事前和事中 |
![]() |
17
kk2syc 2 天前
@drupal 笔录内容直接用经办人的数字证书加密,两个人同步存两份加密笔录,用各自的证书解密完才能查看(编辑)。但是你说的不能让知道是谁就很匪夷所思了,案件经办人这都是公开信息啊
|
![]() |
18
rm0gang0rf 2 天前
系统管理员是权限集合的, 可以很容易做, 没有任何问题,如果系统管理员是个 1 ,那就做不了,刚做完类似的
|
19
renmu 2 天前 via Android
单独为这种操作实现权限,当成业务去写
|
![]() |
20
hehe5120 2 天前
如果不考虑直接从数据库删除的话还是有办法的,因为有数据库权限的用户始终是可以删除的,只能从行政上来管理。
基于上面的前提,软件系统的设计方案可以考虑: 1. 软件系统不提供删除记录的功能,数据库账号删除记录权限都不给。软件系统中只提供数据记录的状态设置,可以设置为办结或终止,并备注清楚,不提供删除记录的功能。 2. 办案人员新增记录时,设置加密密码,这个密码不在系统中保存,新增和打开时都必须输入这个密码(或者缓存在前端,关闭前端或退出登录就需要重新输入密码),所有字段保存时用此密码加密,查看记录时用此密码解密。或使用个人数字证书加密解密,个人数字证书的管理有各种办法,选一个适合你们的。 这样做的后果是如果忘记密码或证书丢失,谁也恢复不了,除非暴力破解。如果要避免这种情况,可以再设置一个全局的证书,每条数据保存时用全局证书公钥加密后另外保存一份。特殊情况下,可以用私钥解密,私钥备份在一个 u 盘,装信封加封条,锁保险柜。 不过以上方案也是有漏洞的,有权限的用户可以不删除记录,而是把所有字段都更新为其他无关内容,如果要解决,那可以把每次修改的版本都记录到另一张表,这张表从数据库级别设置只允许插入,不允许更新和删除。软件系统层面提供历史记录查看功能,可以看到每次保存的版本。 以上都是建立在直接对数据库操作的权限是严格可控的情况下。要做到严格控制数据库权限,比较简单的办法可以考虑将数据库设置为管理账号只能在本机登录,要对数据库进行特殊操作时,必须提前提交操作脚本审核,并由多人同时在场的情况下进行操作。 |
21
cookii 2 天前
基于属性的访问控制( ABAC )
|
![]() |
24
soul11201 2 天前
搜下 ARABC 基于属性的权限控制,或者直接用 casbin ~
|
![]() |
25
uxstone 2 天前
用户 角色 权限
|
26
unhappy224 1 天前
看看这个 https://skiff-org.github.io/whitepaper/Skiff_Whitepaper_2023.pdf 端到端加密,里面有一整套解决方案 包括共享啥的
|
27
HaibaraDP 1 天前
数据加密存储会有问题吗?用户和笔录做一个关联表,笔录 id 加密存储,用户输入密码才能解密出笔录 id
|
![]() |
28
drupal OP |
30
munan56 21 小时 3 分钟前
用办案人员的密码加密笔录
|
![]() |
31
RandomJoke 19 小时 24 分钟前
如果说要从数据库,运维,服务器这些角度都要隔绝,那就是加密存储+CDC+流程管理了吧,以个人密码加密杜绝数据库泄密,CDC 保证修改历史,流程机制管理保证服务器数据库泄密被操作(比如需要多方联合才可以连接)。
|