python + mysql 用户管理权限管理分析

权限管理系统设计

基于用户的权限管理

用户权限表:

aid access
1 订单管理
2 用户管理
3 菜单管理
4 权限分配
5 bug管理

用户信息:

uid username pwd
1 默默 123456
2 安安 15616

用户权限关系表:

rid user_id access_id
1 1 1
2 1 2
3 2 5

python程序实现:

某个用户登录后,查看自己拥有的所有权限

#_*_ coding:utf-8 _*_
import pymysql

username=input('请输入你的用户名:')
password=input('请输入你的密码:')

conn=pymysql.connect(host='localhost',user='root',password='',database='access')
cursor=conn.cursor()

sql= "select *  from user where username=%s and password =%s"
cursor.execute(sql,[username,password])
result=cursor.fetchone()
if result:
    print('登录成功,欢迎%s'%username)
    sql="select access.access from(select aid  from relationship where userid=(select uid from user where username=%s))as A left JOIN access on access.access=A.aid "
    cursor.execute(sql,username)
    cont=cursor.fetchall()
    print(cont)
    print('你拥有以下权限',cont)
else:
    print('登录失败')

优化角色权限管理

由于基于用户的权限管理扩展性差,在同类用户权限调整后用户设计修改数据量大,故需要基于用户所具有的角色进行权限的分配管理

基于角色的权限管理(通过对用户的特性归纳出常用权限,单独设定一张表)

用户信息:(若存在用户多权限的情况,则可对用户信息表进行分裂,设计用户-角色表)

uid username pwd role_id
1 默默 123456 1
2 安安 123456 2

权限 :

aid access
1 订单管理
2 用户管理
3 菜单管理
4 权限分配
5 bug管理

角色表:

did department
1 IT部门
2 咨询员工
3 bug管理

角色权限管理:

mid department_id access_id
1 1 1
2 1 2
3 2 3
posted @ 2020-11-29 17:27  yescarf  阅读(510)  评论(0编辑  收藏  举报