1.
首先进入数据库级别的【安全性】-【登录名】-【新建登录名】
(图1:新建登录名)
2.
在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库。
(图2:设置选项)
3.
在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的 *** 作
(图3:选择对应数据库)
4.
现在我们就可以对TestLog数据库中的User表进行权限的设置了,【表】-【
属性】
(图4:选择对应表)
5.
在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】
(图5:设置访问表的用户)
6.
在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了
(图6:权限列表)
7.
现在就使用TestUser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了
(图7:效果)
二、注意事项
1.
在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去TestLog数据库中是找不到TestUser。
(图8:找不到TestUser用户)
2.
在上面的第3步骤,设置完TestLog数据后,需要点击【确认】按钮,完成创建用户 *** 作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的TestUser用户的。
3.
其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如TestLog之后,这个用户就会出现在这个数据库的【安全性】列表中。
如果删除TestLog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。
(图9:删除TestUser用户)
4.
在第6步的【显式权限】列表中,如果选择了【Control】这个选项,那么在【Select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:
(图10:效果)
5.
在TestLog数据库的【安全性】-【TestUser】-【属性】-【安全对象】-【添加】-【对象类型】这里有更多关于数据库级别的一些对象类型可以设置。
(图11:其它对象类型)
权限的控制中非常的复杂,这个你的用一个清晰的头脑来分析。通常比较简单的权限设置中,比如servlet或者struct中,我们可以通过filter或者拦截器来控制某些文件的访问来实现。
但是根据你的要求,需要对功能列表和按钮都实现控制,那么需要的考虑的更多一点。
你的权限不能建立在控制url连接上,而是要转向对 一个方法的控制:
一般的权限控制,控制方法有四种 C(reate) R(etrieve) U(pdate) D(elete)
也就是说,一般你的Action种有 创建、查询、更新、删除几种精元 *** 作。最后你的控制都总结为这几点,你在数据库中增加一个表,来对某一个Action的CRUD的 *** 作权限。
1. 在控制按钮的时候,你可以通过css来控制显示。
2. 功能列表不建议通过js或者css,而是通过后台json来创建树最好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)