Theo MSDN, các khung nhìn bao gồm các lựa chọn đơn giản tự động cho phép bạn sử dụng các câu lệnh chèn/cập nhật/xóa trên bảng. Có cách nào để ngăn chặn điều này - để nói với Sql Server rằng khung nhìn là chỉ đọc, và bạn không thể sử dụng nó để sửa đổi bảng?Tạo chế độ xem chỉ đọc trong Sql Server
Trả lời
Cách tốt nhất là xóa UPDATE/DELETE/INSERT
quyền trên Chế độ xem.
Ngoài ra, bạn có thể tạo kích hoạt INSTEAD OF
trên chế độ xem chỉ đơn giản là không có gì để cập nhật không thành công hoặc có quite a few constructs that make views non updatable. Vì vậy, bạn có thể chọn một trong đó không thay đổi ngữ nghĩa hoặc hiệu quả và sau đó vi phạm nó.
Chỉnh sửa: Phần bên dưới dường như phù hợp với hóa đơn.
CREATE VIEW Bar
AS
SELECT TOP 100 PERCENT x
FROM foo
WITH CHECK OPTION
Bạn có thể chỉ định một nhà điều hành UNION
để làm cho SQL Server thất bại trong INSERT/UPDATE/DELETE hoạt động, như thế này:
create view SampleView
as
select ID, value from table
union all
select 0, '0' where 1=0
Truy vấn cuối cùng không trả lại bất kỳ hàng ở tất cả, nhưng phải có cùng số lượng trường có cùng loại dữ liệu với truy vấn đầu tiên, để sử dụng an toàn UNION
. Xem liên kết này để biết thêm thông tin: Different ways to make a table read only in a SQL Server database
Bạn cũng có thể thêm bảng "UNION SELECT TOP 0 * FROM" (ít nhất là trong SQLServer 2014). – Christoph
- 1. Chế độ xem chỉ mục SQL Server
- 2. Cách tạo trường chỉ đọc trong Chế độ xem
- 3. Tôi có thể chỉ định các loại cột khi tạo chế độ xem SQL Server không?
- 4. Cách tạo bảng Chỉ đọc trong SQL Server?
- 5. Tạo chế độ xem tạm thời từ bảng tạm thời trong SQL Server
- 6. Không thể tạo chỉ mục trên chế độ xem với chức năng do người dùng xác định trong SQL Server
- 7. kết nối mở sql ở chế độ chỉ đọc
- 8. Sử dụng chế độ xem trong SQL
- 9. Chế độ xem SQL trong mongodb
- 10. Chuyển đổi giữa chế độ xem chỉ đọc và chế độ xem chỉnh sửa trong xương sống js
- 11. Bạn có thể gọi các chế độ xem bên trong Chế độ xem trong sql
- 12. Có thể tạo một ID duy nhất trong Chế độ xem SQL Server sẽ vẫn giống nhau mỗi lần chế độ xem được gọi không?
- 13. Chế độ xem mất bao nhiêu không gian trong Microsoft SQL Server
- 14. Cách tạo Chế độ xem SQL với SQLAlchemy?
- 15. Cách tạo chế độ xem sql (TẠO XEM) trong sqlite (android) và truy vấn?
- 16. HIbernate InvalidDataAccessApiUsageException - chế độ chỉ đọc
- 17. Chế độ xem SQL có cột ID
- 18. Lỗi "Hết thời gian chờ", khi thực hiện chế độ xem trong SQL Server 2008
- 19. Cách xây dựng lại chế độ xem trong SQL Server 2008
- 20. NHibernate LINQ ở chế độ chỉ đọc
- 21. Tạo chế độ xem bằng cách sử dụng db Máy chủ được liên kết trong SQL Server
- 22. Tạo người dùng SQL Server có quyền đọc một chế độ xem và không có gì khác - nhưng anh ta có thể xem các chế độ xem và quy trình của hệ thống?
- 23. Số lượng cột tối đa được phép trong chế độ xem SQL Server 2008 là gì?
- 24. Hiển thị chế độ xem từ chế độ không xem/chế độ xem trong mvvmcross
- 25. vấn đề cử chỉ với chế độ xem bản đồ trong trang chế độ xem
- 26. Không thể tạo chỉ mục trên chế độ xem 'View_Table_Name' vì chế độ xem không phải là lược đồ bị ràng buộc
- 27. Chế độ xem chỉ đọc mạch lạc của cơ sở dữ liệu
- 28. Ẩn chế độ xem trong trình tạo giao diện khi có nhiều chế độ xem
- 29. Giảm tốc độ tại Chế độ xem chỉ mục cho SQL 2005
- 30. xem Updatable - SQL Server 2008
Quyền +1 sẽ ngăn không cho mã này không được mã. Nhưng nếu dân gian có thể viết thông qua xem thì tôi nghi ngờ có quyền trên các bảng cơ sở quá ... – gbn
Cảm ơn, hoạt động như một say mê. Các chế độ xem đó thực sự sẽ đề cập đến một cơ sở dữ liệu khác mà người dùng sẽ không có quyền truy cập. Tôi muốn làm cho họ chỉ đọc để người dùng sẽ không thể sửa đổi cơ sở dữ liệu mà anh ta không có quyền truy cập thông qua các khung nhìn trong cơ sở dữ liệu mà anh ta có quyền truy cập. Tôi muốn sử dụng quyền cho mỗi cơ sở dữ liệu thay vì quyền đối với mỗi đối tượng để giữ cho mọi thứ đơn giản và chắc chắn hơn rằng tôi không bỏ lỡ vi phạm trong định nghĩa quyền. –
Tôi sẽ chỉ ra một mối nguy hiểm với mã được nối vào cuối. Nó dường như xoay quanh 'WITH CHECK OPTION'. Nếu bạn quay lại và chỉnh sửa chế độ xem với SQL Server Management Studio, nó sẽ không bao gồm 'WITH CHECK OPTION' và khung nhìn sẽ được đọc/ghi lại. – BIBD