最近在学习报表和设计模式,有个项目涉及到控制表的字段给不同的角色。 权限表大致如下结构 create table auth ( authid int identity, tablename varchar(50) not null,--需要控制的表名 fieldname varchar(50) not null,--需要控制的字段名 filter xml,--对字段值的过滤表达式,可以翻译成T-SQL的where语句 --该灵感来自报表中的<表达式> rolecode tinyint not null default(0), --权限值,0表示禁止,1表示只读,2表示可修改 --如果是对记录的创建或是删除,则需要满足对所有字段的修改 --TODO:需要考虑到字段为identity的写入。 roletable varchar(50) not null,--权限定义表 rolefield varchar(50) not null,--权限字段表 rolefilter xml,--权限过滤字段 )