Thành thật mà nói, tôi hơi bối rối với mô tả của bạn, vì vậy vui lòng cho tôi biết nếu tôi không có cơ sở ở đây. Bạn có thể thử điều này dưới đây. Nó sẽ cấp quyền truy cập thực thi vào tất cả các thủ tục được lưu trữ. Nếu bạn chỉ cần người gác cổng có quyền truy cập vào một thủ tục được lưu trữ, thì chỉ cần cấp quyền thực thi trên thủ tục được lưu trữ đó. Nếu thủ tục được lưu trữ đang truy cập dữ liệu từ các cơ sở dữ liệu khác, bạn có thể cần cấp quyền trên các bảng và như vậy nó đang truy cập bên ngoài cơ sở dữ liệu của nó.
CREATE ROLE db_executor
GRANT EXECUTE TO db_executor
EXEC sp_addrolemember 'db_executor', 'gatekeeper'