python + mysql 使用者管理許可權管理分析
阿新 • • 發佈:2020-11-29
許可權管理系統設計
基於使用者的許可權管理
使用者許可權表:
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 |