Hỏi cách phân quyền người dùng trong ứng dụng phần mềm
Xin chào mọi người, giữa 2 cách phân quyền ứng dụng
Cách 1: Để phần mềm xử lý phân quyền và toàn bộ ứng dụng chạy trên 1 user admin duy nhất.
Ví dụ: Mình có 1 phần mềm kế toán và phần mềm này chỉ sử dụng 1 tài khoản Amin duy nhất để Connection đến Database. Trong database sẽ chứa 1 bảng dùng để lưu trữ thông tin người dùng để đăng nhập phần mềm và 1 bảng dùng để lưu trữ thông tin phân quyền.
Khi người dùng sử dụng phần mềm thì phần mềm sẽ chạy các đoạn code xử lý để truy vấn vào 2 bảng dữ liệu trên sql để biết được và xử lý phân quyền. Đương nhiên, nhiều user với mỗi vai trò khác nhau nhưng đều đang sử dụng 1 tài khoản connection duy nhất kết nối với Database
Nói chung cách này là nhiều user trên phần mềm nhưng 1 user ở database
Cách 2: Tạo ra mỗi user ở Database tương ứng với mỗi user được tạo trên phần mềm. Tương ứng là ta sẽ phân quyền trực tiếp cho user đó ở trên database luôn
Theo mọi người thì ưu và nhược điểm của mỗi cách trên là gì nhỉ? Phương pháp nào dữ liệu sẽ nhanh hơn? ít lỗi hơn? dễ mở rộng phần mềm?..
User kết nối database và user sử dụng chức năng phần mềm đâu liên quan gì nhau ?
Cách thức là tạo 1 bảng user (mang thông tin về username, pass, options). Trên phần mềm chỉ cần truy vấn theo tên user để biết chức năng nào được sử dụng.
Có bác Van Duong đã nói rồi, mình chỉ nói nôm na lại là
-Database chỉ chứa dữ liệu, và trả về dữ liệu
-Nơi bạn gõ code để truy vấn đến database đó mới là nơi thực hiện phân quyền
Ví dụ như database trả về bàng User-có cột role = 1(admin) role =2 (user thông thường), datatbase trả về bảng user có role = 1 thì được làm gì đó, =2 thì được làm gì đó.
cách 1 của bạn: mình ko biết bạn phân quyền như nào với 1 tài khoản chung. nên ưu nhược điểm là không biết phải nói như nào.
tất nhiên chỉ còn cách 2 của bạn là khả quan.