框架定义在持久层,提供ORMapping功能并添加权限控制。 想象一下,ORMapping的代码学习iBatis和活动记录方法都可以使用,xml应该这样定义
select c1,c2 from table where c1=:name
调用时类似:
sqlmap.execute('querytable ',name='xxx ' ) )
活动记录的相似之处:
t=sqlmap.select('table ',id='1' ) )
t.c1='xxxx '
t.save(#t.delete ) ) ) )。
设置访问权限:
在sqlmap选项卡上,可以设置以下权限:
.
如果使用活动记录,还可以分配对表中数据的权限。 例如,一个用户可以更新或删除某个表中的某一行,对某一行中的写入列具有update权限,但没有其他权限,用户组可以继承多个用户组。
使用sqlmap只能对每个命令进行限制。
如果对映射对象的操作没有权限,则抛出异常。
大家觉得怎么样?
共享到:
2009-04-24 23:24
浏览一四九五
论坛的回复/查阅(8/2407 )。
评论
8楼
phyeas
2009-04-25
还是决定用sqlalchemy进行扩展
七楼
phyeas
2009-04-25
如果当前用户对对象没有更新权限,则代码
obj.name=' '
在报告异常并未执行save之前,将确保该对象在python上的值与数据库匹配
六楼
phyeas
2009-04-25
不是针对每个sql操作控制权限,而是针对每个持久化对象控制权限。 例如,如果您搜索很多对象,就可以知道哪些对象可以更改,哪些可以被检查,哪些可以被删除。 另外,如果关联其他表,也可以知道是否可以关联这些数据。
五楼
jjx
2009-04-25
因为python什么都是对象,所以不是问题吧
例如,您的sqlmap直接是sqlalchemy的选择、插入等
查询表=select ([ table ],table.c.C1==bindparam ) ' name ) )
定义sqlmap权限
query table.allow={ ' group ' : ' group1',' user'='xxx'}
写查询方法
defquery(s ) :
ifHasattr(s,' allow ' ) :
#判断执行等
四楼
phyeas
2009-04-25
但是,如果您知道如何扩展sqlalchemy以满足权限控制的需要,请耐心指导。 先表示感谢。 总比自己从0开始好
三楼
phyeas
2009-04-25
之所以用xml构成,是因为它提高了xml的可读性。
二楼
phyeas
2009-04-25
我的需要是可以在持久层进行权限控制。 sqlalchemy似乎满足不了这个需要
一楼
jjx
2009-04-25
我很好奇为什么sqlalchemy不能满足您的需求,使用python,以及是否需要用xml进行配置。