- 论坛徽章:
- 0
|
本人接触sybase时间不长,现在有个权限设置的问题向各位高手请教。
我单位有个数据库A,里面有表B、C,现在别人为我们开发了一套程序,为此在A 数据库里增加了程序专用的表D,同时该程序需要能读写表C的部分字段。为了程序正常工作,还需要在数据库里增加一个用户DD,其权限控制为不能看到表B,只能读写D以及表C的部分字段.
为了保密,我在数据库里新建了group DDDY, 新建了login DD1,我把用户DD加到了group DDDY里,Aliased login指定为DD1,然后执行命令
revoke all on B from DDDY
revoke all on C from DDDY
grant all on D to DDDY
grant select on C TO DDDY
grant update on C (F_LXR,F_TELE,F_POST) TO DDDY
go
revoke all on B from DD
revoke all on C from DD
grant all on D to DD
grant select on C TO DD
grant update on C (F_LXR,F_TELE,F_POST) TO DD
go
命令执行完后,我用PB以DD1登陆联上数据库A, 在table 项下, 只能看到 dbo.C 和dbo.D这样的显示内容 ,但过了几天后,我再用PB以DD1登陆联上数据库A,却发现在table下竟然可以看到dbo.B,而且可以任意修改表 B C 的内容,以前设置的权限限制都没有了,为什么会出现这种情况,难道只要有登陆名,就可以提升数据库用户的权限吗?(sa的密码不存在泄密问题)
请高手指教我该如何限制该用户不能对数据库内指定范围外的表进行读写以及查看,谢谢.
[ 本帖最后由 zhouscy 于 2006-3-22 01:16 编辑 ] |
|