2009-06-26 25 views
7

Tôi đang sử dụng SQL Profiler để xem một số hoạt động cơ sở dữ liệu và tôi muốn xem "Quyền bị từ chối" cho các đối tượng khác nhau trong cơ sở dữ liệu. Có khoảng 50 mục khác nhau trong danh mục "Kiểm tra bảo mật", nhưng không có mục nào hiển thị "Quyền bị từ chối" cho một đối tượng. Tôi có thể thấy Đăng nhập thất bại và một số lỗi khác, nhưng không có gì ở cấp độ đối tượng.Trình phục vụ SQL Server - xem cho phép bị từ chối trên các đối tượng?

Ví dụ: Người dùng có quyền đối với cơ sở dữ liệu nhưng không được phép trên một bảng cụ thể. Khi họ cố gắng chọn từ bảng đó, họ sẽ nhận được lỗi - tôi có thể xem hồ sơ cho các lỗi này không?

Trả lời

14

Bạn muốn nắm bắt sự kiện "Thông báo lỗi người dùng" trong phần "Lỗi và cảnh báo". Bạn có thể lọc cột Lỗi khi thấy phù hợp. Lỗi 229 là cho phép từ chối

+0

Rất tốt. thật dễ dàng ... – gbn

+0

Điều này thật ngoạn mục. Tôi đã phải lọc các sự kiện của chúng tôi 5701 và 5703, dường như chỉ là thông điệp mang tính thông tin về việc thiết lập ngôn ngữ. Sau khi tôi lọc chúng ra, điều này đã trở thành chính xác những gì tôi đang tìm kiếm! – SqlRyan

2

Điều này có thể đạt được như vậy:

Trở lại trong SQL 2000, bạn có thể sửa đổi thông báo lỗi 229 như vậy "cho phép từ chối" được ghi vào nhật ký lỗi SQL.

EXEC dbo.sp_altermessage 229, 'WITH_LOG', 'true' 

Tôi không biết nếu/cách làm việc này cho SQL 2005 + probably not, says Connect nhưng maybe we can now says Tibor Karaszi. Tôi không thể kiểm tra bản thân mình, xin lỗi.

Chỉnh sửa: Điều này có lợi thế là bạn không cần profiler hoặc chạy theo dõi ...

+0

Mặc dù đây không phải là những gì tôi đang tìm kiếm, tôi rất vui khi biết điều đó ngay bây giờ - cảm ơn! – SqlRyan

+1

Nó vẫn hoạt động trên 2008R2 –

+1

Cũng hoạt động trên 2012 SP1 – StuartQ

Các vấn đề liên quan