Tôi biết rằng tôi có thể truy vấn các quyền hiệu quả bằng cách sử dụng sys.fn_my_permissions
:
USE myDatabase;
SELECT * FROM fn_my_permissions('dbo.myTable', 'OBJECT')
entity_name | subentity_name | permission_name
------------------------------------------------
dbo.myTable | | SELECT
dbo.myTable | | UPDATE
...
Điều này cho tôi biết liệu người dùng hiện tại có quyền CHỌN, CHERTN, CẬP NHẬT, v.v. myTable
trong cơ sở dữ liệu hay không myDatabase
.
Có thể dễ dàng tìm ra lý do tại sao người dùng có các quyền này? Ví dụ: tôi muốn có một hàm fn_my_permissions_ex
tạo ra một reason
cột bổ sung :
USE myDatabase;
SELECT * FROM fn_my_permissions_ex('dbo.myTable', 'OBJECT')
entity_name | subentity_name | permission_name | reason
------------------------------------------------------------------------------------------------------------------------------------
dbo.myTable | | SELECT | granted to database role public
dbo.myTable | | UPDATE | member of group MYDOMAIN\Superusers, which belongs to database role db_datawriter
...
Thật không may, tôi không thể tìm thấy một chức năng như vậy trong tài liệu SQL Server. Có một công cụ hoặc tập lệnh cung cấp chức năng này?
fn_my_permission_ex
, vì vậy tôi không thể xuất được gì. Tôi đang hỏi nếu có một chức năng hoặc công cụ với chức năng đó .