Tôi có cơ sở dữ liệu Microsoft SQL Server 2008 r2. Một người dùng được gọi là marie được xác định, người có thể truy cập các bảng trên cơ sở dữ liệu chính; cái này hoạt động tốt Bây giờ, tôi muốn marie có thể thực hiện truy vấn này:
SELECT resource_type,spid,login_time,status,hostname,program_name,nt_domain,nt_username,loginame
FROM sys.dm_tran_locks dl
JOIN sys.sysprocesses sp on dl.request_session_id = sp.spid
Các bảng liên quan là các bảng tổng thể; Làm thế nào để tôi cho phép marie đọc từ họ? Tôi đã cố gắng thực hiện như sau dbo:
GRANT ALL on sys.dm_tran_locks TO marie
GRANT ALL on sys.sysprocesses TO marie
Tuy nhiên, khi marie cố gắng thực hiện truy vấn trên, lỗi là:
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
Tôi đang làm gì sai?
sys.dm_exec_requests
,sys.dm_exec_sessions
v.v.sysprocesses
là chế độ xem tương thích ngược và sẽ bị xóa khỏi sản phẩm tại một số điểm.