Làm cách nào để kiểm tra xem liệu người dùng có thể thực thi một thủ tục được lưu trữ trong máy chủ MS SQL không?Máy chủ MS SQL: Kiểm tra xem người dùng có thể thực hiện một thủ tục được lưu trữ
tôi có thể thấy nếu người dùng đã rõ ràng thực hiện quyền bằng cách kết nối với cơ sở dữ liệu tổng thể và thực hiện:
databasename..sp_helpprotect 'storedProcedureName', 'username'
tuy nhiên nếu người dùng là thành viên của một vai trò có quyền thực thi sp_helprotect sẽ không giúp tôi .
Lý tưởng nhất là tôi muốn để có thể gọi một cái gì đó giống như
databasename..sp_canexecute 'storedProcedureName', 'username'
mà sẽ trả về một bool.
Ngoài ra, nếu bạn đang sử dụng SQL Server 2005 hoặc cao hơn và sự cho phép được gán cho các giản đồ hoặc cơ sở dữ liệu (EXECUTE có thể bây giờ), sp_helprotect sẽ không báo cáo nó. Thủ tục được lưu trữ được bao gồm cho khả năng tương thích ngược và báo cáo quyền dựa trên những gì đã có trong SQL Server 2000. –