任何人都可以建议一种方法为我进行权限分组吗?

时间:2009-10-14 16:50:26

标签: sql sql-server tsql

我目前正在实施这样的许可:

Permission                UserPermision               User
-------------------      ----------------------       -----------------
PNAME PID                 PID  UID  PVAL              UID UNAME

这个概念很好,但在某些时候,我们会想要添加一个权限分组,如admin,guest,power user或类似的东西。

有人可以向我推荐一个提升当前Permission数据库以实现权限分组的好方法吗?

提前致谢

3 个答案:

答案 0 :(得分:2)

仅授予角色权限。 (如果你想非常喜欢将它赋予角色或用户ID,但它在维护时会变得噩梦,因为它会缩放)。

因此perms将n-n映射到角色,角色将n-n映射到用户。

Permission         
-------------------
PNAME PID          

User Role
-------------------
UID ROLEID

Optional Role
-------------------
ROLEID ROLE_INFO

Permision Map         
----------------------       
PID  ROLEID  PVAL        

User
-----------------
UID UNAME

答案 1 :(得分:1)

另一种方法是引入新的Group表并创建GroupPermissions / UserGroups表,以将权限映射到特定组和该组的用户。然后,您可以根据需要使用UserPermissions组包含个人权限(在组权限之上)

Groups
------
GID GNAME

GroupPermissions
----------------
GID PID

UserGroups
----------
UID GID

GroupPermissions - GID / PID将组成唯一的行标识符,以确保您可以将多个权限关联到单个组。

UserGroups - UID / GID将组成唯一的行标识符,以确保您可以将多个组关联到单个用户。

答案 2 :(得分:0)

您可以enable开发数据库以“记住”它对不同对象的权限,并在开发时保留它们,无论您丢弃多少次并创建一个对象......