请大家帮忙解决一下,多用户软件的权限分配问题?

idealabc 2006-12-01 03:51:21
我要做我们酒店的管理系统,用户权限的要求是,

酒店的总经理:可以管理旗下的N家酒店.

酒店经理:可以管理自己单独的酒店.

酒店的前台:可以查看和修改本酒店的数据.

1.请教这个多用户系统的管理员数据库我要设置那些合理的字段.

2.听说过权限算法,不知道能不能用上.

3.我的主要难点是,总经理可以查所有店的订单,分店经理要仅能查自己的订单.
...全文
236 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackeyabc 2006-12-01
  • 打赏
  • 举报
回复
收藏~
mscofield 2006-12-01
  • 打赏
  • 举报
回复
刚做过一个地理信息权限管理,你看看对你有没有用
建一个用户表,里面就是酒店所有可能使用你的数据库的用户信息,包括ID,名称,密码
建立一个酒店表,包括至少酒量的ID,名称
一个权限表,包括可能对数据库的所有操作,比如,查询,添加,修改,删除
一个用户权限的对应表,描述哪些用户在哪些酒店上有哪些权限
然后,在对你的订单表做各种操作前,控制先进行权限检查就行了
idealabc 2006-12-01
  • 打赏
  • 举报
回复
rea1gz(冒牌realgz V0.3) 你好:

我就是想在应用层限制,所有酒店订单在一个表,

能说的再详细一些,你是怎么控制的吗,听说可以用权限算法,不过我不会
idealabc 2006-12-01
  • 打赏
  • 举报
回复
不好意思我没问明白,
我的意思是怎样建admin表
比如
username,password,权限

我想知道权限字段存什么来区分谁是总经理,谁是经理,(我们有很多个总经理级的,也有多个分店经理)

我好在订单表加一个字段相应的控制,
rea1gz 2006-12-01
  • 打赏
  • 举报
回复
这要看再那个层次上限制

可以在数据库层次上,那不同酒店要建立不同的表,对不同的表授予权限

可以在应用程序层次上,不同酒店数据可以放在一个表,在程序中根据登录人的身份给与不同的查询条件来限制
中国风 2006-12-01
  • 打赏
  • 举报
回复
如果应用到软件上,楼主创建一个用户名就行了。根据用户名定义不同的权限
中国风 2006-12-01
  • 打赏
  • 举报
回复
要控制对数据库的权限, 可以参考下面的:

-- 防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)

--切换到你新增的用户要控制的数据库
use 你的库名
go

--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限

--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go

--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录


如果在企业管理器中创建的话,就用:

企业管理器--安全性--右键登录--新建登录

常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名

服务器角色项
这个里面不要选择任何东西

数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"

确定,这样建好的用户与上面语句建立的用户一样
---------------------------------------------------------------------------

最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:

--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'

--添加到数据库
exec sp_grantdbaccess '用户名'

--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]

--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]


-------------------------------------------------------------------
至于具体的安全设置和理论知道,参考SQL联机帮助
caixia615 2006-12-01
  • 打赏
  • 举报
回复
LZ不会就一个表的吧,全部表的权限给总经理,各自的权限给各自的经理,UPDATE,SELECT权限给前台
caixia615 2006-12-01
  • 打赏
  • 举报
回复
grant 权限 on 全部的数据 to 总经理

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧