Tôi có câu hỏi về Các loại bảng do người dùng xác định trong SQL Server 2008.
Đối với nhu cầu của một trong các ứng dụng ASP.NET, chúng tôi đã xác định các kiểu bảng của riêng mình trên SQL Server 2008 để sử dụng chúng làm tham số trong các thủ tục được lưu trữ (khi thực hiện lệnh sql trong ứng dụng ASP.NET, chúng tôi chuyển đối tượng DataTable làm tham số cho thủ tục được lưu trữ xem ví dụ ở đây )
Vấn đề là khi chúng tôi chạy lệnh Sql (thực hiện thủ tục được lưu trữ) từ ASP.NET, chúng tôi gặp lỗi:
Quyền EXECUTE đã bị từ chối trên đối tượng 'ourTableType', cơ sở dữ liệu 'ourDatabase', giản đồ 'ourSchema'.
Tại sao lại như vậy? Tại sao chúng ta cần đặt quyền trên các loại bảng do người dùng xác định? Tại sao chỉ đặt quyền trên thủ tục được lưu trữ sử dụng nó là không đủ? Và nếu chúng ta phải thiết lập nó không có vấn đề gì, tại sao không có EXECUTE
loại phép thiết lập trong cửa sổ thuộc tính nào (tôi có thể thấy chỉ Control
, References
, Take Ownership
, View Definition
)?
Điều tôi cũng không hiểu là việc thiết lập quyền Control
trong cửa sổ thuộc tính sẽ giải quyết được vấn đề và thủ tục được lưu trữ sẽ chạy mà không gặp vấn đề gì.