Django cần quyền truy cập đầy đủ vào cơ sở dữ liệu bên dưới, nếu bạn muốn sử dụng tất cả các tính năng của nó như di cư . Do đó, trong tài liệu nên cấp tất cả các đặc quyền.
Có những trường hợp sử dụng mà bạn có thể muốn hạn chế quyền truy cập - ví dụ:nếu bạn có một giản đồ không được quản lý, được chia sẻ với các ứng dụng khác. Nhưng điều này khá đặc biệt. Những chủ đề đó không có trong tài liệu và để lại cho bạn với tư cách là DBA.
Nếu bạn biết django của mình cần những đặc quyền nào - chỉ cần cấp cho họ tùy thích.
Nếu bạn không biết đặc quyền nào cần thiết, hãy sử dụng quy trình sau:
- Thiết lập dự án của bạn trong bối cảnh phát triển, sử dụng người dùng được cấp đầy đủ.
- Tạo người dùng mới và không cấp bất kỳ quyền nào
- Chuyển django của bạn để sử dụng người dùng đó
- Khởi động ứng dụng của bạn bằng cách sử dụng các tính năng của nó và đợi các lỗi SQL.
- Cấp các quyền cần thiết
Lặp lại bước 4. và 5. miễn là mọi thứ hoạt động - ghi tất cả các khoản trợ cấp vào một tệp sql, để có thể tái tạo điều này sau này. Tất nhiên, bạn có thể đẩy nhanh quá trình, bằng cách cấp những thứ phía trước, nếu bạn đã biết, rằng nó là cần thiết.
Có lẽ bạn sẽ cần nhất
-
SELECT
trong hầu hết mọi trường hợp -
INSERT
nếu người dùng có thể tạo một mô hình -
UPDATE
nếu người dùng có thể sửa đổi mô hình -
DELETE
nếu người dùng có thể xóa một mô hình -
REFERENCES
nếu người dùng tạo một mô hình có ràng buộc khóa ngoại đối với một mô hình khác -REFERENCES
là cần thiết cho mô hình này, một mô hình khác.
Điều gì cần thiết trong trường hợp ứng dụng của bạn là điều chỉ bạn mới biết. Có thể SELECT
là đủ, khi bạn chỉ cung cấp quyền truy cập có thể đọc được vào dữ liệu của mình.
Khi bạn làm việc như vậy, bạn nên có một người dùng riêng, được sử dụng để triển khai, có quyền thích hợp để thực hiện quá trình di chuyển của bạn (cấp tất cả các đặc quyền trong trường hợp này là hợp lý). Điều này áp dụng cho mỗi bản phát hành và phải là IMO tự động.