MSDN에 따르면 간단한 선택으로 구성된보기가 자동으로 테이블에 삽입/업데이트/삭제 문을 사용할 수 있습니다. 이 문제를 방지 할 수있는 방법이 있습니까? SQL Server에보기가 읽기 전용이며 테이블을 수정하는 데 사용할 수 없다는 것을 Sql Server에 알리는 방법이 있습니까?SQL Server에서 읽기 전용보기 만들기
7
A
답변
12
가장 좋은 방법은보기에서 UPDATE/DELETE/INSERT
권한을 제거하는 것입니다.
이외에도 업데이트를 자동으로하지 못하도록하는 아무것도 수행하지 않는 INSTEAD OF
트리거를 만들거나 quite a few constructs that make views non updatable이있을 수 있습니다. 따라서 의미 또는 효율성을 변경하지 않고이를 위반할 수 있습니다.
편집 : 다음은 청구서에 맞는 것 같습니다.
는CREATE VIEW Bar
AS
SELECT TOP 100 PERCENT x
FROM foo
WITH CHECK OPTION
7
당신은 /를 INSERT/UPDATE 동안 실패 SQL 서버 만들기 위해에 UNION
연산자를 지정할과 같이 작업을 삭제할 수 :
create view SampleView
as
select ID, value from table
union all
select 0, '0' where 1=0
마지막 쿼리가 행을 반환하지 않습니다 하지만 UNION
을 안전하게 사용하려면 첫 번째 쿼리와 동일한 데이터 유형의 필드가 같아야합니다. 자세한 정보는 다음 링크를 참조하십시오. Different ways to make a table read only in a SQL Server database
+0
"UNION SELECT TOP 0 * FROM 테이블"(적어도 SQL Server 2014에서는)을 추가 할 수도 있습니다. – Christoph
관련 문제
- 1. 데이터베이스의 일관된 읽기 전용보기
- 2. 읽기 전용보기 편집
- 3. SQL2000 읽기 전용보기
- 4. Winform App에서 읽기 전용보기 구현
- 5. SQL Server에서 트리거 만들기
- 6. SQL Server에서 읽기 - CSV에서 읽어야합니다.
- 7. SQL Server에서 마스터 키 만들기
- 8. 외부 SQL Server에서 테이블 만들기
- 9. SQL Server에서 C#으로 VARBINARY (MAX) 읽기
- 10. SQL Server에서 읽기 용 행을 잠급니다?
- 11. SQL Server에서 int 값 읽기 및 증가
- 12. TRANSACTION ISOLATION LEVEL REPEATABLE SQL Server에서 읽기
- 13. SQL Server에서 트랜잭션의 데이터 읽기 비용
- 14. 네임 스페이스가있는 SQL Server에서 Xml 읽기
- 15. SQL Server에서 필드를 조작하는 트리거 만들기
- 16. SQL Server에서 INFORMATION_SCHEMA.VIEW_DEFINITION과 비슷한 테이블 만들기
- 17. FROM 전에 SQL Server에서 별칭 만들기?
- 18. SQL Server에서 유형을 나타내는 추가 열이있는보기 만들기
- 19. Ogr2ogr을 사용하여 SQL Server에서 셰이프 파일 만들기
- 20. SQL Server에서 트랜잭션 잠금
- 21. 편집보기에서 추가 읽기 전용보기 데이터를 표시하는 방법 MVC
- 22. WF4 - Rehosted Workflow Designer - Enabled PropertyInspectorView가있는 읽기 전용보기
- 23. SQL Server에서 XML을 더 빠르게 만들기 - 테이블로 변환 하시겠습니까?
- 24. 레일 전용보기 및 컨트롤러
- 25. SQL Server에서 With 절 사용
- 26. 큰 데이터 읽기 C#을 사용하는 SQL Server에서
- 27. C# - SQL Server에서 BLOB 읽기 및 그림 상자로 표시
- 28. SQL Server에서 테이블을 읽기 전용으로 만드는 방법은 무엇입니까?
- 29. SQL Server에서 읽기/쓰기 비율을 계산하는 방법은 무엇입니까?
- 30. SQL Server에서 일치하는 단어
+1 권한은 코드가 아닙니다. 하지만 만약 사람들이보기를 통해 글을 쓸 수 있다면베이스 테이블에 대한 사용 권한이 너무 의심 스럽습니다. – gbn
감사합니다, 매력과 같이 작동합니다. 이러한보기는 실제로 사용자가 액세스 할 수없는 다른 데이터베이스를 참조합니다. 사용자가 읽기 전용으로 만들어서 사용자가 액세스 권한이있는 데이터베이스의보기를 통해 액세스 할 수없는 데이터베이스를 수정할 수 없도록하려고합니다. 개체 별 권한 대신 데이터베이스 별 권한을 사용하여 작업을 단순하게 유지하고 권한 정의에서 위반 사항을 놓치지 않도록하십시오. –
끝에 코드를 추가하여 위험을 지적하겠습니다. 그것은 'WITH CHECK OPTION'에 달려있는 것 같습니다. SQL Server Management Studio로보기를 늦게 편집하면 'WITH CHECK OPTION'이 나타나지 않으며보기가 다시 읽고 쓸 수 있습니다. – BIBD