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

Có nên cấp quyền CONTROL cho một Thủ tục đã Lưu trữ trong SQL Server 2005 không?

Nếu thủ tục được lưu trữ được tạo bằng EXECUTE AS CALLER (mà tôi tin là mặc định), thì người gọi phải có tất cả các quyền cần thiết để thực hiện bất kỳ điều gì mà thủ tục được lưu trữ thực hiện ngoài việc EXECUTE trên thủ tục.

Từ tài liệu SQL Server cho EXECUTE AS:

Lưu ý rằng do cách SQL Server xử lý kiểm tra quyền sử dụng chuỗi quyền sở hữu, điều này không phải lúc nào cũng đúng và tôi đoán rằng việc cấp CONTROL trên quy trình (quy định trạng thái quyền sở hữu cho người được cấp) đang gây ra các kiểm tra quyền này bỏ qua.

Nếu bạn tạo quy trình với EXECUTE AS OWNER, thì bạn không cần phải cấp bất kỳ quyền nào ngoài EXECUTE trên quy trình.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL CASE với so sánh if trong câu lệnh SELECT

  2. Tìm khóa chính từ một bảng trong danh sách được phân tách bằng dấu phẩy

  3. Mã này có ngăn chặn việc đưa vào SQL không?

  4. Cách nhận các hàng có tổng bằng giá trị đã cho

  5. Vui vẻ với BULK INSERT SQL SERVER - nhập ký tự không khớp hoặc không hợp lệ cho bộ mã được chỉ định