6

Tôi đang sử dụng phiên bản SQL Server 2008 Express.Làm cách nào để cấp một vai trò cơ sở dữ liệu thực thi quyền trên lược đồ? Tôi đang làm gì sai?

Tôi đã tạo Đăng nhập, Người dùng, Vai trò và Giản đồ. Tôi đã ánh xạ người dùng tới thông tin đăng nhập và gán vai trò cho người dùng.

Giản đồ chứa một số bảng và thủ tục được lưu trữ.

Tôi muốn Vai trò có quyền thực thi trên toàn bộ lược đồ.

Tôi đã thử cấp quyền thực thi thông qua studio quản lý và thông qua nhập lệnh trong cửa sổ truy vấn.

GRANT EXEC ON SCHEMA::schema_name TO role_name 

Nhưng Khi tôi kết nối với cơ sở dữ liệu sử dụng phòng thu quản lý SQL (như tên đăng nhập Tôi đã tạo ra) trước hết là tôi không thể nhìn thấy các thủ tục lưu trữ, nhưng quan trọng hơn tôi nhận được một lỗi cho phép từ chối khi cố gắng chạy chúng.

Quy trình được lưu trữ trong câu hỏi không có gì ngoại trừ chọn dữ liệu từ một bảng trong cùng một schma.

Tôi đã cố gắng tạo ra các thủ tục lưu trữ có và không có dòng:

WITH EXECUTE AS OWNER 

này không thực hiện bất kỳ sự khác biệt.

Tôi nghi ngờ rằng mình đã tạo ra lỗi khi tạo giản đồ của mình hoặc có vấn đề về quyền sở hữu ở đâu đó, nhưng tôi thực sự đang gặp khó khăn để làm việc gì đó.

Cách duy nhất tôi đã quản lý thành công để thực hiện các thủ tục được lưu trữ là cấp quyền kiểm soát cho vai trò cũng như thực thi, nhưng tôi không tin đây là cách chính xác, an toàn để tiếp tục.

Mọi đề xuất/nhận xét sẽ thực sự được đánh giá cao.

Cảm ơn.

+0

Bạn có cấp quyền thực thi cho người dùng mà bạn đã tạo cho Sproc không? –

Trả lời

4

Có một số vấn đề mà tôi có thể thấy trong trường hợp của bạn.

Trước hết, bạn cần có Định nghĩa xem được cấp để bạn có thể xem các đối tượng trong studio Quản lý.

Tôi muốn giới thiệu này nếu bạn muốn vai trò để có tất cả các quyền,

GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, VIEW DEFINITION 
    ON Schema::SchemaName TO [RoleName/LoginName] 

Ngoài ra hãy chắc chắn rằng các chủ sở hữu của giản đồ người dùng định nghĩa của bạn là "dbo".

+1

GRANT XEM BẤT K D ĐỊNH NGH TOA VỚI [người dùng] CẤP XEM NHÀ MÁY MÁY CHỦ CHO [người dùng]/* Đây là 2 quyền khác để cung cấp cho "chỉ đọc" mọi thứ * / – granadaCoder