如何让程序所有模块屏蔽某个表一部分数据?

girt123 2011-07-08 10:09:52
我用的是delphi+sql server,我的sql server当中有一个用户表,我有两个delphi的程序,一个程序查询用户表的所有数据,另外一个程序需要屏蔽用户表的一部分程序,例如屏蔽以a、b、c、d打头的用户,保留以e打头的用户,我又不想对delphi程序的所有模块一个一个地进行改动,因为工作量太大,有什么好的办法,例如存储过程之类的?
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
linchb_ 2011-07-18
  • 打赏
  • 举报
回复
把数据备份到另外一个表Table1,然后再建个同名视图TAble,这样程序不需要修改,部分数据可以通过视图来屏蔽掉部分列。
唐诗三百首 2011-07-08
  • 打赏
  • 举报
回复
CREATE TRIGGER [触发器名]
on 表二
after INSERT,DELETE,UPDATE
as
begin
[更新表一的代码]
end
girt123 2011-07-08
  • 打赏
  • 举报
回复
这样的触发器代码怎么写??
xuexiaodong2009 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 girt123 的回复:]

还要求对表一中对e打头的数据也要及时同步到表二中。
[/Quote]写触发器
唐诗三百首 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 girt123 的回复:]
程序当中改动作量太大,如果是做两个表,要求表要同步,表一(打头为a、b、c、d、e)包含表二所有数据(打头为e),但是表二的所有操作要同步到表一中。有没有办法在sql server里面弄一个即时同步的办法?
[/Quote]
写触发器(trigger),在表二上.
girt123 2011-07-08
  • 打赏
  • 举报
回复
还要求对表一中对e打头的数据也要及时同步到表二中。
唐诗三百首 2011-07-08
  • 打赏
  • 举报
回复
从长远考虑,建议还是修改Delphi程序吧,
否则系统只会越来越复杂,到时出问题都难排查.
girt123 2011-07-08
  • 打赏
  • 举报
回复
程序当中改动作量太大,如果是做两个表,要求表要同步,表一(打头为a、b、c、d、e)包含表二所有数据(打头为e),但是表二的所有操作要同步到表一中。有没有办法在sql server里面弄一个即时同步的办法?
AcHerat 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 girt123 的回复:]

我的delphi程序当中对用户表的各种操作都有(select,insert,update..),各种查询方式都有,大哥你写那个存储过程我一头雾水,你这个存储过程我怎么在程序当中调用,where 1 = 1
又是什么意思?
[/Quote]

如果是这样,建议去程序里改动对应的查询语句,并加上权限控制,where 1 = 1 没什么特别的,结果和不加一样。
girt123 2011-07-08
  • 打赏
  • 举报
回复
我的delphi程序当中对用户表的各种操作都有(select,insert,update..),各种查询方式都有,大哥你写那个存储过程我一头雾水,你这个存储过程我怎么在程序当中调用,where 1 = 1
又是什么意思?
--小F-- 2011-07-08
  • 打赏
  • 举报
回复
权限的控制还是在程序端去处理比较安全
AcHerat 2011-07-08
  • 打赏
  • 举报
回复

create proc get_some(@user int)
as
begin
if(@user = 1)
select * from tb where 1 = 1
if(@user = 2)
select * from tb where 1 = 1 and left(userName,1) = N'e'
if(..)
...
end
go

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧