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

SQL Server chạy các phiên bản cũ của các thủ tục được lưu trữ

Dựa trên mã Proc được lưu trữ và thông tin bổ sung mà chúng tôi thấy trong EDIT2 chúng tôi biết rằng:

  1. BULK INSERT đang được gọi
  2. "người dùng vẫn gặp lỗi khi không có quyền truy cập vào BULK INSERT nhưng những người khác đều gặp lỗi mà chúng tôi đang nêu ra"

Một số hàm T-SQL nhất định (ví dụ:OPENQUERY, OPENROWSET, CHÈN SỐ LƯỢNG LỚN , v.v.) thực hiện xác thực trước về bảo mật. Người dùng phải có quyền CHÈN VÀ QUẢN TRỊ HOẠT ĐỘNG SỐ LƯỢNG LỚN, và trong một số trường hợp, BẢNG BÁO CÁO, để thực hiện CHÈN SỐ LƯỢNG LỚN. Ngoài ra, các quyền NTFS / Active Directory cho Người dùng (nếu sử dụng Xác thực Windows) hoặc Tài khoản "Đăng nhập dưới dạng" của Dịch vụ SQL Server (nếu sử dụng Xác thực SQL Server) sẽ được xác thực để đảm bảo rằng tệp có thể đọc được.

Xác thực trước (hoặc ít nhất là cái mà tôi đang gọi là "xác thực trước") xảy ra khi Stored Proc (hoặc Hàm, v.v.) được gọi và không phải khi mỗi dòng được thực thi. Nếu lỗi xảy ra tại thời điểm này thì không có mã nào trong Proc của bạn sẽ được thực thi, kể cả RAISERROR hoặc INSERT vào bảng nhật ký.

Do đó, nguyên nhân có thể xảy ra nhất của hành vi mà bạn đang thấy là Người dùng gặp sự cố thiếu a) một hoặc nhiều quyền SQL Server được yêu cầu hoặc b) quyền NTFS thích hợp hoặc c) tất cả ở trên.

Cho rằng lỗi do không có quyền truy cập vào BULK INSERT, tôi đoán là người dùng cụ thể này đang thiếu một hoặc nhiều quyền của SQL Server.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ảnh chụp nhanh cơ sở dữ liệu SQL Server -3

  2. Tách hàng dựa trên giá trị cột

  3. Tại sao bạn tạo một Dạng xem trong cơ sở dữ liệu?

  4. SQL - sắp xếp theo thứ tự danh sách

  5. Dbo chính của SQL Server không tồn tại,