Foxtable(狐表)用户栏目专家坐堂 → [求助]隐藏或混淆重要数据


  共有3545人关注过本帖树形打印复制链接

主题:[求助]隐藏或混淆重要数据

帅哥,在线噢!
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]隐藏或混淆重要数据  发帖心情 Post By:2019/7/26 22:00:00 [只看该作者]

If e.Col.Name = "列名" Then '请改为实际列名
    If User.name <> "张经理" AndAlso UserName <> "王总监" Then '如果不是指定用户
        e.Text = 
"****" '则修改显示内容
    
End If
End
 
If

以上可以实现在客户端隐藏或混淆重要数据,有没有办法在后台数据库中实现这样的功能,比如有的数据机密级别比较高,连信息技术人员都不能知晓,但又没办法通过数据库权限进行控制,因为他们在管理服务器,有没有办法可以象在客户端这样,把数据库中某张表的数据隐藏或混淆

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/26 22:19:00 [只看该作者]

把数据加密后再保存:http://www.foxtable.com/webhelp/topics/1346.htm
需要显示的时候,取出来解密在显示到窗口。

 回到顶部
帅哥,在线噢!
lgj716330
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/7/27 16:58:00 [只看该作者]

这个可以在表属性或项目属性里设置吗,如我在项目AfterSaveProject里写以下代码
For Each dr As DataRow In DataTables("工资统计表").dataRows
    For Each c As Col In Tables("工资统计表").Cols
        If c.name =  "年份" Or c.name = "月份" Or c.name = "部门" Or c.name = "姓名" Or c.name = "职位" Then
            dr(c.name) = EncryptText(dr(c.name),"a23","op#")
        End If
    Next
Next
DataTables("工资统计表").Save

发现每保存一次字符的长度就会累加,应该要写在哪里好呢,或是怎么改一下代码

图片点击可在新窗口打开查看此主题相关图片如下:24de0792-d735-478b-a59d-27e829075dd1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/27 17:31:00 [只看该作者]

做窗口进行数据编辑,窗口启动的时候把单元格数据解密后显示到文本框,窗口保存按钮对文本框的数据加密后赋值到单元格中。

 回到顶部
帅哥,在线噢!
lgj716330
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/7/28 19:22:00 [只看该作者]

问题是此表不需要做任何编辑,每月只需导入,然后在统计分析中取数使用

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/28 19:53:00 [只看该作者]

手工导入,导入的时候加密

 回到顶部
帅哥,在线噢!
lgj716330
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/7/28 20:11:00 [只看该作者]

用了手工导入,也是这样,而且还重复提示,应该是我写的代码不对,还请改正
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.foxdb
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工作簿1.xlsx



[此贴子已经被作者于2019/7/28 20:11:42编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/28 20:26:00 [只看该作者]

Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
If dlg.ShowDialog =DialogResult.OK Then
    Dim t As Table = Tables("表A")
    Dim nms As String() = {"年份","月份","部门", "职位", "姓名"}
    Dim nms2 As String() = {"年份","部门"} '需要加密的列
    t.StopRedraw()
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As Row = Tables("表A").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
            If Array.IndexOf(nms2,nms(m)) > -1 Then
                r(nms(m)) = EncryptText(Sheet(n,m).Value,"a23","op#")
            Else
                r(nms(m)) = Sheet(n,m).Value
            End If
        Next
    Next
    t.ResumeRedraw()
End If

 回到顶部
帅哥,在线噢!
lgj716330
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2019/7/29 22:39:00 [只看该作者]


[此贴子已经被作者于2019/7/29 22:43:28编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/29 22:46:00 [只看该作者]

看看解密前后是什么内容?
For Each r As Row In Tables("统计表1").Rows
msgbox(r("岗位性质"))
msgbox(r("部门"))
        r("岗位性质") = DecryptText(r("岗位性质"),"a23","op#")
        r("部门") = DecryptText(r("部门"),"a23","op#")
msgbox(r("岗位性质"))
msgbox(r("部门"))
Next

 回到顶部
总数 22 1 2 3 下一页