以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]隐藏或混淆重要数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138276) |
||||
-- 作者:lgj716330 -- 发布时间:2019/7/26 22:00:00 -- [求助]隐藏或混淆重要数据 If e.Col.Name = "列名" Then \'请改为实际列名 If User.name <> "张经理" AndAlso UserName <> "王总监" Then \'如果不是指定用户 e.Text = "****" \'则修改显示内容 End If End If 以上可以实现在客户端隐藏或混淆重要数据,有没有办法在后台数据库中实现这样的功能,比如有的数据机密级别比较高,连信息技术人员都不能知晓,但又没办法通过数据库权限进行控制,因为他们在管理服务器,有没有办法可以象在客户端这样,把数据库中某张表的数据隐藏或混淆
|
||||
-- 作者:有点蓝 -- 发布时间:2019/7/26 22:19:00 -- 把数据加密后再保存:http://www.foxtable.com/webhelp/topics/1346.htm 需要显示的时候,取出来解密在显示到窗口。
|
||||
-- 作者:lgj716330 -- 发布时间: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 发现每保存一次字符的长度就会累加,应该要写在哪里好呢,或是怎么改一下代码 |
||||
-- 作者:有点蓝 -- 发布时间:2019/7/27 17:31:00 -- 做窗口进行数据编辑,窗口启动的时候把单元格数据解密后显示到文本框,窗口保存按钮对文本框的数据加密后赋值到单元格中。 |
||||
-- 作者:lgj716330 -- 发布时间:2019/7/28 19:22:00 -- 问题是此表不需要做任何编辑,每月只需导入,然后在统计分析中取数使用 |
||||
-- 作者:有点蓝 -- 发布时间:2019/7/28 19:53:00 -- 手工导入,导入的时候加密 |
||||
-- 作者:lgj716330 -- 发布时间:2019/7/28 20:11:00 -- 用了手工导入,也是这样,而且还重复提示,应该是我写的代码不对,还请改正
[此贴子已经被作者于2019/7/28 20:11:42编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2019/7/29 22:39:00 -- [此贴子已经被作者于2019/7/29 22:43:28编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间: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
|