关于系统权限的问题咨询 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
drupal
V2EX    程序员

关于系统权限的问题咨询

  •  
  •   drupal 139 天前 3661 次点击
    这是一个创建于 139 天前的主题,其中的信息可能已经有所发展或是发生改变。

    询问系统,笔录只办案人员才有查看和编辑,哪怕是上一级也未必能够看到笔录,系统管理员也无权查看和删除,这种特殊场景,要如何才能解决权限问题?

    31 条回复    2025-06-04 13:02:12 +08:00
    v1
        1
    v1  
       139 天前
    没明白需要解决什么权限问题,锁定办案人员 uid 赋予查看/编辑的权限不就好了。
    NoOneNoBody
        2
    NoOneNoBody  
       139 天前
    这个思路很简单:权限是独立隔离的,而不是层级的
    qping
        3
    qping  
       139 天前 via iPhone
    你描述了需求,很简单的需求,解决起来有什么问题呢
    beyondstars
        4
    beyondstars  
       139 天前
    RBAC: Role-Based Access Control ,

    Administrator 只是一个 account ,Administrator 没有 办案人员 的 role ,所以无权查看。笔录是 resources ,在系统的 ACL 里面,设置 (笔录,role: [办案人员])-> allow, default -> deny.
    drupal
        5
    drupal  
    OP
       139 天前
    uid 不行,数据库管理员或者系统管理员能够看的到。我的意思是只有办案人员能查看自己经办的笔录内容。
    @kk2syc
    @NoOneNoBody
    drupal
        7
    drupal  
    OP
    &nsp;  139 天前
    办案人员能看到所有的内容,其他人员看不到是谁处理的,全部脱敏
    drupal
        8
    drupal  
    OP
       139 天前
    @beyondstars 谢谢兄弟,看完了。感觉这个笔录权限设置很难。也许只有纸面归档的方式是最稳妥的。
    jworg
        9
    jworg  
       139 天前
    @drupal 为啥会有这种奇怪的角色,数据库管理员或者系统管理员。涉密的数据都是应该物理隔离的,这两者要看也只能进断网有监控的小黑屋的电脑上看。其他管理操作都应该内联在管理模块上。
    NoOneNoBody
        10
    NoOneNoBody  
       139 天前
    @drupal #5
    你的数据库本身就要设计为分散的,增删改查都跟权限有关,管理员仅有备份权限,删除权限都没有
    你这样想:权限赋予的标的不是人,而是事,而人还需要判断是否跟事有关才能获得权限

    头痛的管理员的删除权限,没有删除权限他就难以管理了,实际上还是需要某个人有最高权限,而对他的限制,只能通过行政方式,而不是技术方式
    laminux29
        11
    laminux29  
       139 天前
    笔录权限的设置,一点都不难。你的问题应该是,要不是你不会设置,要不就是你用的信息化系统太烂了,不支持完整的 RBAC 。
    hanxiV2EX
        12
    hanxiV2EX  
       139 天前 via Android
    数据加密存储?
    Phasma
        13
    Phasma  
       139 天前
    在 Windows 系统中 user 用户使用 efs 加密的文件 Administrator 是看不了的. 是否可以参考这个机制
    drupal
        14
    drupal  
    OP
       139 天前
    @NoOneNoBody 想法相同,这种事情,流程一定要正确,规则一定要符合要求。
    @laminux29 权限设置不难,难得是要符合用户的流程规范。
    @hanxiV2EX 不可行
    @hymzhek 这个不太懂,回头再了解一下。
    @jworg 你做一下 jiwei ,阿 Sir 涉密的内容,你就清楚了。
    drymonfidelia
        15
    drymonfidelia  
       139 天前
    @NoOneNoBody 每一条记录末尾都存储前一条完整记录(含 sha512 部分)的 sha512 这样只要删掉一个,后面的 hash 就全对不上了
    NoOneNoBody
        16
    NoOneNoBody  
       139 天前
    @drymonfidelia #15
    这个思路是事后吧,OP 这个权限的目的是事前和事中
    v1
        17
    v1  
       139 天前
    @drupal 笔录内容直接用经办人的数字证书加密,两个人同步存两份加密笔录,用各自的证书解密完才能查看(编辑)。但是你说的不能让知道是谁就很匪夷所思了,案件经办人这都是公开信息啊
    rm0gang0rf
        18
    rm0gang0rf  
       139 天前
    系统管理员是权限集合的, 可以很容易做, 没有任何问题,如果系统管理员是个 1 ,那就做不了,刚做完类似的
    renmu
        19
    renmu  
       139 天前 via Android
    单独为这种操作实现权限,当成业务去写
    hehe5120
        20
    hehe5120  
       139 天前
    如果不考虑直接从数据库删除的话还是有办法的,因为有数据库权限的用户始终是可以删除的,只能从行政上来管理。

    基于上面的前提,软件系统的设计方案可以考虑:

    1. 软件系统不提供删除记录的功能,数据库账号删除记录权限都不给。软件系统中只提供数据记录的状态设置,可以设置为办结或终止,并备注清楚,不提供删除记录的功能。

    2. 办案人员新增记录时,设置加密密码,这个密码不在系统中保存,新增和打开时都必须输入这个密码(或者缓存在前端,关闭前端或退出登录就需要重新输入密码),所有字段保存时用此密码加密,查看记录时用此密码解密。或使用个人数字证书加密解密,个人数字证书的管理有各种办法,选一个适合你们的。

    这样做的后果是如果忘记密码或证书丢失,谁也恢复不了,除非暴力破解。如果要避免这种情况,可以再设置一个全局的证书,每条数据保存时用全局证书公钥加密后另外保存一份。特殊情况下,可以用私钥解密,私钥备份在一个 u 盘,装信封加封条,锁保险柜。

    不过以上方案也是有漏洞的,有权限的用户可以不删除记录,而是把所有字段都更新为其他无关内容,如果要解决,那可以把每次修改的版本都记录到另一张表,这张表从数据库级别设置只允许插入,不允许更新和删除。软件系统层面提供历史记录查看功能,可以看到每次保存的版本。

    以上都是建立在直接对数据库操作的权限是严格可控的情况下。要做到严格控制数据库权限,比较简单的办法可以考虑将数据库设置为管理账号只能在本机登录,要对数据库进行特殊操作时,必须提前提交操作脚本审核,并由多人同时在场的情况下进行操作。
    cookii
        21
    cookii  
       139 天前
    基于属性的访问控制( ABAC )
    drupal
        22
    drupal  
    OP
       139 天前
    @kk2syc 你这个思路不错。笔录视案件不同,权限也不同,夸张的说有些 Case 连 Boss 都不可以去了解。
    drupal
        23
    drupal  
    OP
       139 天前
    @hehe5120 这个解决方案不错,经验丰富。
    soul11201
        24
    soul11201  
       138 天前
    搜下 ARABC 基于属性的权限控制,或者直接用 casbin ~
    uxstone
        25
    uxstone  
       138 天前
    用户 角色 权限
    unhappy224
        26
    unhappy224  
       138 天前
    看看这个 https://skiff-org.github.io/whitepaper/Skiff_Whitepaper_2023.pdf 端到端加密,里面有一整套解决方案 包括共享啥的
    HaibaraDP
        27
    HaibaraDP  
       138 天前
    数据加密存储会有问题吗?用户和笔录做一个关联表,笔录 id 加密存储,用户输入密码才能解密出笔录 id
    drupal
        28
    drupal  
    OP
       138 天前
    @unhappy224 这个可以参考,感谢感谢,用心了,兄弟。
    @HaibaraDP 存在数据库里头,解密数据库,啥都能看得到,如果是以图片的方式存储,那不是更加容易解密?
    HaibaraDP
        29
    HaibaraDP  
       138 天前
    @drupal 笔录 id 用对称加密算法加密后不需要担心数据库被解密吧,图片也是同理,暴力破解应该不需要考虑?
    munan56
        30
    munan56  
       137 天前
    用办案人员的密码加密笔录
    RandomJoke
        31
    RandomJoke  
       137 天前
    如果说要从数据库,运维,服务器这些角度都要隔绝,那就是加密存储+CDC+流程管理了吧,以个人密码加密杜绝数据库泄密,CDC 保证修改历史,流程机制管理保证服务器数据库泄密被操作(比如需要多方联合才可以连接)。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2626 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:32 PVG 20:32 LAX 05:32 JFK 08:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86