Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Ý kiến ​​về xác thực giữa các cấp ứng dụng và cơ sở dữ liệu

Trong hầu hết các ứng dụng web, mô hình bảo mật được xác định ở lớp logic nghiệp vụ, không phải lớp dữ liệu.

Ví dụ:khả năng chỉnh sửa bài đăng trên Stack Overflow của tôi không được kiểm soát bởi khả năng đọc / ghi vào bảng "bài viết" của tôi - trên thực tế, bạn có thể thậm chí không thể thiết kế một lược đồ cơ sở dữ liệu cho phép bạn triển khai cấp cơ sở dữ liệu bảo mật ở cấp độ này. Thay vào đó, có một lớp logic nghiệp vụ so sánh các đặc quyền của tôi với hành động tôi đang cố gắng thực hiện (tôi giả sử); bảo mật được thực hiện ở lớp logic nghiệp vụ.

Thành thật mà nói, tôi thấy hầu như không có lợi ích gì khi chuyển thông tin đăng nhập vào lớp cơ sở dữ liệu - nếu bằng cách nào đó tôi đã bỏ qua logic nghiệp vụ để kiểm soát ai có thể chỉnh sửa bài đăng SO, thì các điều khiển "đọc / ghi" cơ sở dữ liệu sẽ không ngăn cản điều đó và việc kiểm tra sẽ không ' không thực sự giúp bạn.

Tôi thấy RẤT NHIỀU nhược điểm - không nhất là thực tế là bạn sẽ chia logic ủy quyền của mình thành hai (logic nghiệp vụ và cơ sở dữ liệu) và giới thiệu tất cả các loại chế độ lỗi giải trí với việc đồng bộ hóa các tài khoản trên lớp logic nghiệp vụ và lớp cơ sở dữ liệu của bạn (người dùng thay đổi mật khẩu hoặc rời khỏi trang web). Tôi không thể bắt đầu tưởng tượng bạn sẽ kiểm tra và gỡ lỗi tất cả những điều này như thế nào - điều gì sẽ xảy ra nếu người dùng cuối gặp lỗi liên quan đến đặc quyền cơ sở dữ liệu của họ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thay thế các giá trị null bằng một văn bản?

  2. Cách thực thi câu lệnh SQL Oracle với VBScript

  3. Có phải java.net.Inet6Address.getByName Nghĩa đen đi ra ngoài và xem địa chỉ có tồn tại không

  4. Tên người dùng và mật khẩu mặc định cho cơ sở dữ liệu Oracle

  5. Tải dữ liệu hình ảnh vào các cột BLOB trong Oracle