Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Quyền cấp SQL thực thi trên nhiều đối tượng

Bạn không thể sử dụng ký tự đại diện - bạn phải cấp cho tất cả các đối tượng (hoặc tất cả các đối tượng trong một lược đồ) - hoặc sau đó bạn phải liệt kê tất cả các đối tượng một.

Những gì bạn có thể làm là như thế này - hãy yêu cầu SQL Server tạo các câu lệnh đó cho bạn:

SELECT
   p.Name,
   GrantCmd = 'GRANT EXECUTE ON OBJECT::' + p.name + ' TO [domain\user]'
FROM sys.procedures p
WHERE p.Name LIKE 'XU%'

Truy vấn này sẽ liệt kê tất cả các thủ tục bắt đầu bằng XU và tạo một cột có chứa GRANT EXECUTE ON .... tuyên bố cho thủ tục đó.

Chạy điều này trong SQL Server Management Studio, sau đó chỉ cần sao chép GrantCmd kết quả , dán nó vào một cửa sổ mới và thực thi nó ở đó.

Và nếu bạn thực sự muốn tự động hóa điều này, bạn cũng có thể biến truy vấn này thành một con trỏ và sau đó sử dụng SQL động để tự động thực thi những kết quả GrantCmd tuyên bố ....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một bảng được phân vùng trong SQL Server (T-SQL)

  2. Phiên bản tiêu chuẩn nén sao lưu SQL Server 2008

  3. Phân tích cú pháp ngày giờ với thời gian bù đắp trong T-SQL

  4. Cách gỡ cài đặt SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 23.1

  5. Chuyển bảng dưới dạng tham số vào UDF máy chủ sql