drop trigger test
go
create trigger test on table
--这里我想加个判断,如果是指定的用户才可以进行操作,不知如何处理,请指教(if exists select SYSTEM_USER='MyUser' then INSTEAD else For)
OF DELETE,INSERT,UPDATE
as
print '对不起,权限不够!操作未能执行.'
还有个问题就是在企业管理器里把表名改了就能进行操作了,如何限制
...全文
3514打赏收藏
请问触发器的问题?
drop trigger test go create trigger test on table --这里我想加个判断,如果是指定的用户才可以进行操作,不知如何处理,请指教(if exists select SYSTEM_USER='MyUser' then INSTEAD else For) OF DELETE,INSERT,UPDATE as print '对不起,权限不够!操作未能执行.' 还有个问题就是在企业管理器里把表名改了就能进行操作了,如何限制
declare @loginame varchar(20)
select @loginame=loginame from master..sysprocesses where spid=@@spid
if @loginame<>'use1' and ...
begin
print ''
roalback
return
end
declare @loginame varchar(20)
select @loginame=loginame from sysprocesses where spid=@@spid
if @loginame<>'use1' and ...
begin
print ''
roalback
return
end
我的触发器的意思是让一般不会高级操作的用户不能操作表数据,必须由我的程序来操作,
create trigger test on table
INSTEAD OF DELETE,INSERT,UPDATE
as
print '对不起,权限不够!操作未能执行.'
如果是这样的话那么任何UPDATE,DELETE,INSERT操作都不能在查询分析器或是企业管理器里执行(如果不改名或是删掉触发器)
这样就有个问题,我的程序所用的SQL用户也不能进行操作了
不知道明白我的意思没有