1. 程式人生 > 資料庫 >python + mysql 使用者管理許可權管理分析

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