SQL Server: vai trò nào cấp quyền để thực hiện tất cả các thủ tục được lưu trữ?


9

Thành viên cơ sở dữ liệu nào cấp quyền cho phép thực thi tất cả các thủ tục được lưu trữ hiện có trong SQL Server 2012?

Tôi đã thử thêm một người dùng cho mỗi người trong số họ và vẫn không thể thực hiện một thủ tục được lưu trữ. Tôi không muốn cấp EXECUTEriêng cho từng thủ tục được lưu trữ, tôi muốn thêm người dùng vào một vai trò và anh ta có thể thực hiện bất kỳ quy trình nào trong số đó.


3
nếu tất cả các procs được lưu trữ của bạn nằm trong cùng một lược đồ, bạn có thể cấp thực thi trên lược đồ. EXECUTE GRANT TRÊN SCHema :: [dbo] TO [đăng nhập]. Ngoài ra, tôi tin rằng db_owner nhưng điều này sẽ cung cấp cho tất cả các loại quyền truy cập
Bob Klimes

Câu trả lời:


14

Nếu bạn đang sử dụng các lược đồ khác với dbolược đồ mặc định , hãy tạo một vai trò cơ sở dữ liệu cho mỗi lược đồ và cấp EXECUTEcho lược đồ cho vai trò đó.

ví dụ: Đối với dbolược đồ mặc định :

CREATE ROLE role_exec_dbo
GO
GRANT EXECUTE ON SCHEMA::dbo to role_exec_dbo
GO

Đối với một lược đồ mới:

CREATE SCHEMA mySchema
GO
CREATE ROLE role_exec_mySchema
GO
GRANT EXECUTE ON SCHEMA::mySchema to role_exec_mySchema
GO

1
Sau đó exec sp_addrolemember N'role_exec_mySchema', N'{theDBUserName}'. :-)
ΩmegaMan

5

Không có mặc định.

Tạo một vai trò mới và cấp thực thi cho nó. Điều này cũng sẽ bao gồm các procs được lưu trữ được tạo ra trong tương lai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.